80 likes | 203 Views
NSF/TCPP Curriculum Planning workshop. Behrooz Shirazi Washington State University February 2010. Introductory Course on Parallel Computation (version 1). Senior/first year grad level course Course is taught in Spring 2010
E N D
NSF/TCPP Curriculum Planning workshop Behrooz Shirazi Washington State University February 2010
Introductory Course on Parallel Computation (version 1) • Senior/first year grad level course • Course is taught in Spring 2010 • Course taught by adjunct prof. (John Feo) – senior technical staff at Pacific Northwest National Lab (PNNL) • PNNL is heavily involved in both compute-intensive and data-intensive HPC • Very practical and application oriented
Introductory Course on Parallel Computation (version 1) • Programming model using task parallelism with message passing. • Move from focus on data distribution to parallelism. • Think parallel, and optimize for performance and scalability. • Course based on Cray XMT, a shared-memory, multithreaded computer system. • On the Cray XMT, performance is only a function of parallelism (supporting all parallel models including data, task, recursion, and dataflow). • Course require team work to prepare 3 papers that include algorithm development and implementation.
Introductory Course on Parallel Computation (version 1) • Topics: • General concepts • Cray XMT architecture • Cray XMT programming model • Cray XMT programming tools • Reasoning about performance on the Cray XMT • Data parallelism • Task parallelism • Using and optimizing recursive algorithms • Dataflow • Graph algorithms • Other cool algorithms
Introductory Course on Parallel Computation (version 2) • Course Taught: Spring, 2009 by a CS faculty (KC Wang) • Based on class notes • Recommended reading: • Highly Parallel Computing, G.S. Almasi & A. Gottlieb, Benjamin/Cummings, 1989/1994 • Introduction to Parallel Computing, 2nd Edition, Grama/Gupta/Karypis/Kumar, Addison Wesley,2003 • Computer Architecture and Parallel Processing, K. Hwang & F.A. Briggs, McGraw-Hill, 1990 • The Art of Parallel Programming, B. Lester, 1stWorld Publishing, 2006 • Journal Articles
Introductory Course on Parallel Computation (version 2) • Class Notes/Topics: • Introduction to Parallel Computing • Multicore Processors • POSIX pthreads Programming • Pthreads • Cache memory and Cache Coherence in MP • Finite field GF(2) and Applications • Interconnect Networks for MP • Multicomputers • How to get MPI • MPI Programming • Parallel Pi using MPI • Parallel Pi using Monte-Carlo Method • Diffusion, MPI code, etc • Shortest Path Algorithm • Fast Fourier Transform (FFT) • Current Supercomputers
Introductory Course on Parallel Computation (version 2) • Assignments: • Multi-threading • Mutex-semaphore-thread_join for MTX • Pthreads Programming • HELP : Gaussian Elimination by Threads • Parallel Quicksort
Introductory Course on Parallel Computation (version 3) • Semester Taught: Spring, 2007 by CS faculty Murali Medidi • Books used: • An introduction to Parallel Algorithms (Joseph Jaja) • Parallel Computation Models and Methods (Selim G. Akl) • Topics • MPI tutorial • Parallel Algorithms • sorting algorithm • Minimum spanning tree • shortest path • matrix manipulation • sorting networks • Super computer architecture. • Mesh • Cube • PRAM model CRCW, CREW, ERCW, etc. • Projects/1 term paper/5 homeworks/ 2 closed-book exams