CSE613 - Parallel Programming - Spr2008 11Apr08 v9

Lectures: 1441 CompSci; Tue, Thu 15:50-17:10 (3:50-5:10pm)
Professor:
Larry Wittie Office meetings: 1308 Comp Sci Bldg
Email:
lw@ic.sunysb.edu Office hours: 2-3:30 PM and afterclass
Phone:
(NetLab 1308) 2-8750 Web: http://www.cs.sunysb.edu/~cse613

Recommended Texts (for shared-memory and distributed-memory programming):
                   "Patterns for Parallel Programming" by Timothy Mattson, B. Sanders, B. Massingill; Addison Wesley, 2005, ISBN: 0321228111, $55 ($42 Amazon). A practical modern overview.  
                  "Using OpenMP - Portable Shared Memory Parallel Programming" by Barbara Chapman, G. Jost, R. van der Pas, D. Kuck; MIT Press, 2007, ISBN: 0262533022, $31. 
                  "Using MPI_2nd Ed_Two Volume Set = MPI_2ndEd - Portable Parallel Programming with the Message Passing Interface + Using MPI-2" by William Gropp, E. Lusk, A. Skjellum, R. Thakur; MIT Press, 1999, ISBN:  026257134X, $85 ($56 Amazon.ca) {volumes available separately for $38 (MPI, $30 used) and $34 (MPI-2, new A1books)}.

Recommended References:
                  "The Sourcebook of Parallel Computing" by Jack Dongarra, I. Foster, G. Fox, W. Gropp, K. Kennedy, L. Torczon, A. White; Morgan-Kaufmann, 2002, ISBN: 1558608710, $62.
                  "C: A Reference Manual" - 5th Ed by S.P. Harbison, G. Steele,Jr; Prentice-Hall, 2002, ISBN: 013089592X, $32 (4th ed. used $9)

On-line sources:
                  Extensive slides for Berkeley’s Applications of Parallel Computing course
http://www.cs.berkeley.edu/~yelick/cs267/  Lots of modern applications.

                  Documents and tools for programming Sun’s multicore servers, like our T1000s
http://developers.sun.com/sunstudio/index.jsp  Top of the Sun docs and tools tree
http://developers.sun.com/solaris/articles/studio_t1.html  Overview for multicore servers
http://developers.sun.com/sunstudio/documentation/index.jsp  Top of the Sun docs and tutorials tree
http://docs.sun.com/app/docs/doc/819-5265   Sun Studio 12 (2007) C User's Guide (402 pages) with more than 100 pages on Sun cc compiler options (Appendices A, B)
http://docs.sun.com  Top of the Sun documents tree

                  Ian Foster’s 1995 web_book, "Designing and Building Parallel Programs"
http://www-unix.mcs.anl.gov/dbpp/   A good, but dated overview.

The previous 1998 text for cse613 was: "Parallel Computer Architecture: A Hardware/Software Approach" by David Culler, J.P. Singh and A. Gupta, Morgan-Kaufman, 1998 $109 ($71 used) (Chapter1.pdf was on the web.)

Good News:  We have received several Sun T1000 multicore parallel computers for use in CSE613 and research projects.  Each has an 8-core Niagara UltraSparc T1 CPU chip, which supports 32 threads. The emphasis in CSE613 this semester will be on writing efficient parallel programs for shared memory multicore systems.  Single chip multicore parallel processors are under development by all major CPU chip companies.  Parallel programming is a hot new job skill for the coming decade.

Formal Catalog Description:  Algorithms and technique for programming highly parallel computers. 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.              Prerequisite: CSE 502 or consent of instructor                   3 credits, ABCF grading                    {You are also assumed to have the ability to understand and to write complex C programs.}

Objectives:  CSE613 is an software-oriented parallel computer course. 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 multicore shared-memory parallel computers allow efficient implementations of a wider class of application algorithms than distributed-memory 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 and a problem-oriented midterm but mainly programming exercises and a final large parallel programming project.

Organization:  I plan three or four homeworks - part problems to solve, part programming exercises on both shared memory (multicore) and distributed memory (grid) parallel computer systems.  The problems will be much less time-consuming than those in CSE502 and CSE320. There will be an in-class midterm and a final project, but no final exam.  One or more project choices may involve coding massively parallel brain simulation systems for the SBU/BNL IBM BlueGene/L for people with accounts on that supercomputer.

Project:  There will be one 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 problems and programming exercises every two weeks, all to be done personally.

Grading:  Project 60%                   Midterm 20%                   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.

Lectures (new before each lecture)    Assignments (updated 4/11/08) (most recent first)    Projects    Syllabus

NOTICES (most recent first)

====================================================

Whether registered or not, if you want to take cse613 this semester:

  1. Come to the first class meeting !!
  2. Please send me a short email telling me your:

name, email address, dept, status at StonyBrook (example, CSE 2nd yr grad), registration status for CSE613 (example, NOT Registered)

when and where you took a computer architecture course (like our cse502 or cse320 or cse345) covering instruction pipelines & memory caches, what course, your grade, max possible grade

Any comments you wish to make about your preparation and expectations for this course.

====================================================

All CSE613 Web Files

 

=============