Henrique

Henrique Cota de Freitas received his BS in Computer Science (2000) and M.Sc. in Electrical Engineering (2003) from the Pontifícia Universidade Católica de Minas Gerais (PUC Minas), Belo Horizonte, Brazil, and Ph.D. in Computer Science  (2009) from the Universidade Federal do Rio Grande do Sul (UFRGS), Porto Alegre, Brazil. From 2011 to 2013, he was the Head of the Graduate Program in Informatics at PUC Minas. In 2015-2016, he was a visiting researcher at INRIA and Université Grenoble Alpes (GIANT campus), Grenoble, France, funded by the Brazilian Research Council (CNPq). He is a member of IEEE and SBC (Brazilian Computer Society), and since 2004, he is a professor at PUC Minas. 

Are you interested in pursuing a Master's or PhD degree? Contact me.

Parallel Computing
Undergraduate Program in Computer Science

Schedule

Week 1 - Introduction to Parallel Computing. Hands-on with remote machine.

Week 2 - Introduction to OpenMP.

Week 3 - Fork-join and map parallel patterns. Parallel architectures. Hands-on parallel programming with OpenMP.

Week 4 - Parallel architectures. Hands-on parallel programming with OpenMP.

Week 5 - Reduce parallel pattern, crictical section and workload balancing. Hands-on parallel programming with OpenMP.

Week 6 - Performance evaluation and scalability of parallel programs. Hands-on parallel programming with OpenMP.

Week 7 - Divide and conquer pattern. Hands-on parallel programming with OpenMP.

Week 8 - Complexity analysis. Design of Parallel Software (performance, scalability and energy). Hands-on parallel programming with OpenMP.

Week 9 - Vectorization. Design of Parallel Software (performance, scalability and energy). Hands-on parallel programming with OpenMP.

Week 10 - Introduction to GPU architectures.

Week 11 - Work presentations.

Week 12 - Hands-on parallel programming with OpenMP for GPUs.

Week 13 - Introduction to CUDA.

Week 14 - Reduce pattern with CUDA. Hands-on parallel programming with OpenMP for GPUs.

Week 15 - Scan pattern with CUDA. Hands-on parallel programming with OpenMP for GPUs.

Week 16 - Introduction to MPI.

Week 17 -  MPI point-to-point communication. Pipeline pattern with MPI. Hands-on parallel programming with MPI.

Week 18 - Collective communication (gather, scatter, broadcast) with MPI. Hands-on parallel programming with MPI.

Week 19 - Work presentations.

Week 20 - Final test.


Where: PUC Minas, Belo Horizonte, Brazil

When: Thursdays (inverted classroom)

Time: 08:50 AM - 10:30 AM


Books:


References:

Are you interested in pursuing a Master's or PhD degree?

Please, contact me.