How do we solve the large-scale problems of science quickly on modern computers? How do we measure the performance of new or existing simulation codes, and what things can we do to make them run faster? How can we best take advantage of features like multicore processors, vector units, and graphics co-processors? These are the types of questions we will address in CS 5220, Applications of Parallel Computers. Topics include:
- Single-processor architecture, caches, and serial performance tuning
- Basics of parallel machine organization
- Distributed memory programming with MPI
- Shared memory programming with OpenMP
- Parallel patterns: data partitioning, synchronization, and load balancing
- Examples of parallel numerical algorithms
- Applications from science and engineering
Because our examples will be drawn primarily from engineering and scientific computations, we will assume some prior exposure to numerical methods. Students should also be able to read and write serial programs written in C or a related language like C++ or Java. Prior exposure to parallel programming is not required, and non-CS students from fields involving simulation are particularly welcome!
11 Sep 2015 » News blurb on CS 5220
Cornell Chronicle: “Donations help create ‘supercomputer’ for students”.
10 Sep 2015 » State of the class, week 3
Two things happened this week that should significantly decrease the logistical issues in the weeks to come. First, the cluster software and hardware configurations finally appear to be running smoothly (huzzah!). And second, the add/drop deadline has passed; and while some people will undoubtedly still drop, my level of uncertainty about who is in the class has significantly decreased.
31 Aug 2015 » State of the class, week 2
Welcome to week 2 of CS 5220! The class is now at 114 students, representing a wide array of disciplines and backgrounds. Only 75 of you have submitted HW0; for those who have not submitted, please do submit! Note that we’re using CMS for just this homework so that there’s no issues with linking netids to GitHub IDs for those of you who value your privacy.
31 Aug 2015 » Using Git and GitHub
There were some questions in class yesterday on how to use git and GitHub. This post will attempt to clarify that process. This is not a complete overview of all possible functionality, just what you need to know for this class.
25 Aug 2015 » Intel Free Student Tools
Intel has a free software for students program with which you can get personal access to Intel Parallel Studio. This may be useful if you want to develop on your own machines (we have an academic version of Parallel Studio installed on the totient cluster).
25 Aug 2015 » First class!
We had 110 students in the first class of the semester! There’s homework up for the second class:
10 Aug 2015 » Performance analysis basics
Performance analysis is a rich area that combines experiment, theory, and engineering. In this class, we will explore all three. The purpose of this note is to set the stage; more specifically, we want to
03 Aug 2015 » Recommended software for CS 5220
Most of the class work will be done on the Xeon Phi cluster, but it is likely that you will also want to do some development work on your own machine. You will at the minimum need
01 Aug 2015 » Rationale for class Git workflows
We will use Git and GitHub extensively in CS 5220: for version control (of course) across multiple machines, for collaborative work, for peer review, and for submitting homework and projects. This post serves mostly to document the rationale behind the Git workflow we’ll use in class. Some parts of this process match my standard workflow; see, for example, my repository for CS 4220 in Spring 2015. Other parts of the process – specifically, using pull requests to manage homework – are new to me. I will document my thoughts on what worked well and what didn’t at the end of the semester, but for now let’s start with the plan.
27 Jul 2015 » Flipping a graduate classroom
Past instances of CS 5220 have revolved around a lecture format, but starting this semester, we will use a flipped classroom approach in which students read out of class and spend the lecture period working together on reading discussions, performance modeling exercises, and practice through pair programming.All posts »