[Note: this webpage last modified Tuesday, 26-Feb-2013 09:03:21 EST]
This web-page will be kept up to date with the required reading to perform before each lecture.
I will assign some readings from appropriate online sources. You should also consider the in-class code that is typed during class as part of your assigned reading -- after class and before the next class, you should download the code, run it, and understand it fully.
C Programming. Here are a few additional references where you can look up more details or maybe different explanations of what we have talked about in class.
And here is a nice reference of all the different keywords and operators available in C: C Programming/Reference Tables.
Things from 458/558: These are things you already know from the last course: dynamic programming, greedy algorithms, divide and conquer, fundamental data structures, sorting, searching shortest path, minimum spanning tree, graph coloring, bzip compression / huffman coding, evaluating infix arithmetic expressions. And you already know C programming.
Texts/Online sources for parallel/concurrent programming. We will take readings from these sources.
Here I will post the readings and perhaps some brief descriptions of what is covered each day in class.
Week | Topics |
---|---|
Jan 8, 10 | Course overview, syllabus, models of parallel programming (threads, processes, distributed, ...), OpenMP, factoring. Watch video: installing putty, logging into CS, handing in HW, Note well: if you are not a decent programmer, you will fail this class. Reading: Cornell review of C programming (link above, look through all the slides), Introduction to OpenMP, wikipedia article on parallel programming (link above), PPM chs 1-4. Do these readings over the next week or two. |
Jan 15, 17 | pthreads, MPI. |
Jan 22, 24 | More examples using OpenMP, pthreads, MPI. Reading. Chs. on message passing, MPI in PPM. |
Jan 29, 31 | GPU programming - OpenCL. Reading. OpenCL Tutorial, AMD, OpenCL by examples slides, OpenCL documentation at khronos.org (look at version 1.1), OpenCL 1.1 quick reference |
Feb 5, 7 | GPU programming - OpenCL. |
Feb 12, 14 | First exam Feb 12 |
Feb 19, 21 | Other tools for parallel programming - R. |
Feb 26, 28 | Other tools for parallel programming - Map Reduce. Reading. Map Reduce (wikipedia) |
Mar 5, 7 | Other tools for parellel programming - Hadoop. |
Mar 12, 14 | Spring break -- no classes |
Mar 19, 21 | SETI and other similar projects. |
Mar 26, 28 | Second exam Mar 26 |
Apr 2, 4 | Rest of the semester - catchup and/or "to be determined" based on how the first half goes. |
Apr 9, 11 |
|
Apr 16, 18 | |
Apr 23, 25 | |
Apr 29-May 3 | Exam week, projects due by May 3 |