|
|
|
|
|
William D. Shoaff
Students will learn SPMD (single program multiple data) programming using the MPI (Message Passing Interface) on Florida Tech's 48-node Beowulf cluster. Design, coding, performance analysis, debugging and other aspects of parallel algorithm development will be covered.
Students will be expected to:
Students will learn to write, compile, execute, and collect statistics on runs of elementary parallel programs. MPI will be used to write code. Examples will be given in C, but FORTRAN 77 examples are also available. The Portland Group compilers are available and are optimized for compiling parallel programs on the Beowulf computer. GNU compiler are also available.
Various MPI interprocessor communication functions (protocols) will be studied. Some examples are MPI_Send, MPI_Recv, MPI_Reduce, MPI_Broadcast, MPI_Sum, MPI_Gather, MPI_Scatter, MPI_Allgather, and MPI_Allreduce. Sample codes to be studied include:
A general discussion of parallel computers architecture. Performance Analysis: communication time, computation time, speed-up measures, scalability, load-Balancing, and Amdahl's Law. Debugging techniques and debuggers.
Reference material on these subjects can be found in [Pacheco(1997)] Chapters 2, 9, and 11 and [Wilkinson and Allen(1999)] chapters 1 and 2.
Some implementations of significant parallel codes for specific purposes in (i) numerical linear algebra (Gaussian Elimination, QR factorizations) (ii) sorting algorithms (iii) image processing algorithms (iv) searching and optimization.
Reference material on these subjects can be found in chapters 10, and 14 of [Pacheco(1997)] and chapter 9, 10, 11, and 12 of [Wilkinson and Allen(1999)].
CSE 4082 Parallel and Real-Time Algorithms (3 credits) The course introduces models of computation for parallel systems. Algorithms for parallel sorting, searching, and matrix operations, and numerical computations are presented and analyzed. Real-time constraints and real-time scheduling algorithms are also discussed. (Prerequisite: CSE 4081.)
CSE 5250 Parallel Processing (3 credits) Architectures for parallel computers and parallel algorithms for computational problems are investigated. Performance evaluation metrics for the performance of parallel processing are discussed. (Prerequisites: CSE 5100 and 5220.)
A collection of class lecture notes is available.
An annotated collection of programs has been developed for the class. Pacheco's examples in C and FORTRAN, are also available.
A collection of interactive quizzes. (will be) available for you to assess your understanding of material presented in the class.
The class meet each Tuesday and Thursday from 3:30 p.m. to 4:45 p.m. in Q-18.
Online information for this class can be found at the URL
A mailing list for questions, answers, and discussions is available. To join the list, start at
and follow the link from Computer Sciences to cse4082.
Programming assignments are to be turned in using the department's submit server.
As part of the course, students will periodically and randomly demonstrate programs that they have written.
Projects are provided to exercise your skills so you can master parallel programming applications. These exercises can often best be accomplished by working with others. You may pair with one other person to develop the projects, but the pair must following the extreme programming paradigm for how two people develop programs as a pair.
Interactive quizzes are provided for topics in the course. Although they are graded automatically, no scores are recorded. Use these to assess your knowledge of parallel programming. Absolutely no collaboration is allowed on the final exam.
Plagiarism and other anti-intellectual behavior will not be tolerated. Refer to the department code of honor and the university policy on academic dishonesty.
Grades are based on scores obtained on programming projects, presentations, and the final examination.
Letter grades will be assigned based on percentage of total points.
Review this class anonymously at TeacherReviews.com.
Florida Institute of Technology