Course Schedule

[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.

Readings/Topics Schedule

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