CS620: Topics in Programming Languages
Course Home Page
Overview
The goal of this graduate seminar course is to learn more about how to do research in general and in programming languages for high performance computing specifically. In this course, we will read and review papers about parallel programming models in general and how to evaluate such models. A major component of the course is a research project. The course will also include writing reviews for each of the papers read and presenting papers to the class. This course does not involve a textbook or any exams, but there will be reading quizzes.
Research Project
The projects will involve working with a scientist on campus with a sample of their code that is around 1000 lines of code and performs an important computation for them. Each student will rewrite the sample in two to three different parallel programming models and compare the parallel programming models based on what we have learned by reading papers in the class and in the context of the case study sample program.
Thus for the project, you will be expected to learn on your own how to use two to three different programming models in enough detail to implement the case study. Some candidates include Julia, Chapel, X10, TBB, Cilk++, OpenMP, OpenCL, OpenACC, MPI.
Pre-requisites
Suggested pre-requisites for this course include an undergraduate programming languages course, parallel programming course, or compilers course. One of the three should be sufficient.