Propostas submetidas

DEI - FCTUC
Gerado a 2024-12-12 13:23:48 (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

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

17 Sep - 31 Oct
Review of the most recent approaches to this problem in the state of the art. Identification of the biggest challenges on this area.
1 Nov - 31 Nov
Approach - Definition of the requirements and work plan. Definition of the APIs provided by the system.
1 Dez - 31 Dez
Study of the several backends available in Julia.
1 Jan - 28 Jan
Writing and reviewing of the first semester report.

Plano de Trabalhos - Semestre 2

15 Feb - 8 Mar
Implementation of a backend-agnostic layer.
9 Mar - 31 Mar
Evaluation of overhead/gains of running on top of the compatibility layer instead of the backends.
1 Apr - 30 Apr
Implementation of algorithms for automatically distributing loads across the devices.
1 May - 31 May
Evaluation of the platform running several parallel programs on different runtimes.
1 Jun - 28 Jun
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 📩