Syllabus CSE613 - Parallel Programming - Fall2003 v1 8Sep03

Lectures: 2129 Computer Science; Mon, Wed 17:20-18:40 (5:20-6:40 pm)

Professor: Larry Wittie Office meetings : 1308 Comp Sci Bldg
Email: ldw@cs.sunysb.edu Office hours: MW 6:40-7:00 pm (classroom), 7:00-7:40 pm (1308)
Phones:(Messages only)2-8456 (NetLab 1308)2-8750 Web: http://www.cs.sunysb.edu/~cse613

Required Text: "Parallel Computer Architecture: A Hardware/Software Approach"
David Culler, J.P. Singh and Anoop Gupta, Morgan-Kaufman, 1998 $98

Plus papers on systems software for GRID network computers as the NetLab GRID progresses this fall.

Useful Reference: "C: A Reference Manual" S.P. Harbison, G. Steele,Jr, Prentice-Hall

Objectives: CSE613 is an software-oriented parallel computering course. It covers algorithms and techniques for programming highly parallel computers. Topics covered in depth include trends in parallel and distributed computing; shared address space and message passing architectures; design issues for parallel algorithms; converting sequential algorithms into equivalent parallel algorithms; synchronization and data sharing; improving performance of parallel algorithms; interconnection network topologies, routing, and flow control; latency limits on speedup of algorithms by parallel implementations.
It will teach you how to convert sequential programs for single processor computers into faster working programs that give the same results when run on parallel computers, especially those with globally shared address spaces. Present-day parallel computers allow efficient implementations of a wider class of application algorithms than distributed grid computers. Software methods for grid computers and the fundamental limits on parallel program speedup will be covered as well. The course will involve some homework but mainly programming exercises and a final large parallel programming project.

Roughly 80% of the course material will come from the required text, especially chapters 1, 2, 3 and 10; the rest from newer articles and my own research.

Prerequisites: CSE502 or equivalent experience in Computer Architecture and permission of professor plus ability to understand and to write complex C programs.

Project: There will be 1 large parallel programming project per person. The project will require working code, validated results, and a clearly written report covering design alternatives and estimated performance on other parallel or distributed computers.

Homework: You will usually be assigned homework or programming exercises every week or two, all to be done personally.

Grading:    Project 80%    Homeworks 10%    Class interaction 10%    (Instructor's Option: +2%)

Special Needs: If you have any condition, such as a physical or mental disability, which will make it difficult for you to carry out the work as I have outlined it or which will cause you to need extra time on examinations, please notify me in the first two weeks of the course so that we may make appropriate arrangements.

Tentative Schedule - Subject to Change

Week Mon,Wed               Text Chapter
1             3 Sep                         Course overview
2         8,10 Sep                 Chap 1 (Intro, Trends in parallel computing)

                    {Tue 16 Sep. Last day to drop a course without petitioning -
                from http://naples.cc.sunysb.edu/Prov/newregweb.nsf/pages/acadcal }
MORE DETAILS SOON