Latest news:

Stéfano got his Master!

ERAD 2010 in Passo Fundo.

Mission in Berlin.

João Lima has been accepted in PhD.




I have been hired as Junior Professor in the Computer Science Institute of the UFRGS in March 2005. In Brazil, the universities have three missions: teaching, research and what we call “extension” (whatever activity related to the society generally speaking). For that reason, I dedicate a good part of my time to teaching, both in undergraduate courses (Computer Science and Computer Engineering) and in Master/PhD lectures.

Special lecture at the Technische Universität Berlin, 2008/10

  1. The pdf slides of the first lecture on Parallel Programming for High-Performance (Oct., 13th 2008).
  2. The pdf slides of the second lecture on Parallel Programming (Oct., 14th 2008), about PRAM complexity.
  3. The pdf slides of the third lecture on Parallel Programming (Oct., 15th 2008), about PRAM complexity of a few linear algebra algorithms.
  4. The pdf slides of the fourth lecture on Parallel Programming (Oct., 16th 2008), about models with communication costs, and domain decomposition.
  5. The pdf slides of the fifth lecture on Parallel Programming (Oct., 20th 2008), about the Message Passing Interface (MPI).
  6. The pdf specification and code of the sixth lecture on Parallel Programming (Oct., 20th 2008), which is a practical session. It will be in the room TEL 206. The TEL building is the high rise at Ernst-Reuter-Platz.

Undergraduate studies: Compilers and Operating Systems

  1. I am in charge, since the first semester of 2006, of the lecture in Compilers (60 hours / semester). Since it is the unique lecture in this area that we provide in our courses, it is somewhat extensive and includes lexical analysis, parsing (top-down and bottom-up), semantic analysis, code generation and optimization (it is common to find a separate course for this last part). Since 2008/2, I have complemented the theoretical lectures with a project, made up of 7 2 weeks steps, each one leading the students to build a small compiler.

    This lecture is really trying, for the students and for the teacher. But it is thrilling, too. It fits with a good part of my research interests, since High-Performance Computing starts with the good use of compilers.

    Here are some slides and podcasts of my lectures in Compilers.
  2. I have lectured, during 6 semesters, in Operating Systems I, together with my colleague Prof. Carissimi. The course, of 60 hours / semester, is an introduction to the three main functions of a kernel: handling processes and threads, schedule them into the CPU; manage virtual memory; and organizing the data in file systems.

    Although this lecture had a lot to deal with my research (parallel programming in shared-memory systems, and distributed platforms / MPI), I have chosen in June 2008, to dedicate myself more to Compilers and graduate lectures.

Graduate Lectures: Parallel Programming for HPC (Master and PhD)

  1. I give a series of lecture called “Parallel Programming for High-Performance Computing” each first semester of the year. Its introduces the classical tools: OpenMP, Posix Threads, MPI, UPC, Cilk, etc. It is a practical oriented course of 60 hours (4h pro week, during 15 weeks).

    I have left here some slides on MPI and OpenMP, with a few simple examples.

  2. In the second semester of each year, I provide a companion lecture called “Design of Parallel Algorithms”, which is much more theoretical. This time, we treat parallel models to determine the complexity of an algorithm: PRAM, BSP and LogP are the main models that are studied. At this point, I can not help citing my former PhD advisor, now colleague and friend, Jean-Louis Roch, as an inspiring source for this lecture.

Fri Apr 02 16:48:12 -0300 2010