Titulo Estágio
Par Language
Áreas de especialidade
Engenharia de Software
Sistemas Inteligentes
Local do Estágio
DEI
Enquadramento
Nowadays most computers are built on multicore processors. Multicore processors scale from high-end servers with 32 hardware threads to pocket-size quad-core smartphones. Thus, programmers must write parallel programs to speed up their programs.
Writing parallel programs is error-prone, especially when there are synchronization requirements for the program. Most common approaches use libraries and toolkits like OpenMPI that require the program to manually tune the parallelism.
There are a few languages like X10, Chappel that are parallel by default, but they are still low level and limited in terms of synchronization.
Objetivo
The goal of this thesis is to develop a new model for automatic parallelization from dependent types. This model will be applied in a new programming language, Par, that uses dependent-types for understanding the side effects of AST nodes. With that information, parallelization transformations can be applied to generate more efficient programs that leverage multicore CPUs.
It is also a part of the thesis to evaluate the approach and compare it with other solutions, both in terms of programmer efficiency and execution time.
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 language grammar.
1 Dez - 31 Dez
Lexer and Parser implementation
1 Jan - 28 Jan
Writing and reviewing of the first semester report.
Plano de Trabalhos - Semestre 2
15 Feb - 31 Mar
Generation of the Parallel Code for CPU and GPU
1 Apr - 30 Apr
Evaluation and Tuning of the Performance of Programs
1 May - 31 May
Evaluation and Tuning of Programmers Efficiency with the language.
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 the 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 📩