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: On-line
sources: 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: 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. ==================================================== =============
"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)
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.