Propostas Submetidas

DEI - FCTUC
Gerado a 2024-12-04 09:32:53 (Europe/Lisbon).
Voltar

Titulo Estágio

Julia Automatic Parallel Load-Balancer for CPU and GPUs

Áreas de especialidade

Engenharia de Software

Sistemas Inteligentes

Local do Estágio

DEI-FCTUC

Enquadramento

Julia is a programming language for numeric computing.
Julia is compiled to LLVM and creates functions at runtime, based on the invoked types.
There are some projects for GPU programming in Julia (https://github.com/JuliaGPU/), but the APIs are very low-level and backend specific (Cuda, OpenCL, Vulkan)

Objetivo

We propose a map-reduce framework for Julia that only deals with higher-order functions and automatically uses the best backend available.
Furthermore, the framework should automatically divide work across GPU and the several CPU cores available in order to optimize the execution time. The resulting algorithm should work on any GPU-CPU combination.

Plano de Trabalhos - Semestre 1

5 Feb - 31 Mar
Review of the most recent approaches to this problem in the state of the art. Identification of the biggest challenges on this area.
1 Apr - 31 Apr
Approach - Definition of the requirements and work plan. Definition of the APIs provided by the system.
1 May - 31 May
Study of the several backends available in Julia.
1 Jun - 28 Jun
Writing and reviewing of the first semester report.

Plano de Trabalhos - Semestre 2

15 Sep - 8 Oct
Implementation of a backend-agnostic layer.
9 Oct - 31 Oct
Evaluation of overhead/gains of running on top of the compatibility layer instead of the backends.
1 Nov - 30 Nov
Implementation of algorithms for automatically distributing loads across the devices.
1 Dec - 31 Dec
Evaluation of the platform running several parallel programs on different runtimes.
1 Jan - XX Jan
Writing and reviewing of the dissertation.

Condições

The proposed work plan will be performed in the Systems and Software Engineering group of CISUC, where the student will be given access to required work conditions.

Observações

We are looking for a T-shaped student: he or she should be highly competent in systems programming in C, but should also be acquainted with higher level languages. A good understanding of parallel and concurrent programming is also desirable.

Este trabalho será co-orientado pelo Doutor Alcides Fonseca da Universidade de Lisboa.

Orientador

Bruno Cabral
bcabral@dei.uc.pt 📩