C S 377 - Principles and Applications of Parallel Programming
Spring – Instructor: J. C. Browne
Parallel programming is broadening from its traditional applications in engineering and scientific computation to data intensive and time-critical applications. The rise of the Internet and the Grid has opened new opportunities for exploitation of parallelism.
This class will introduce principles, methods and techniques for design, implementation and use of parallel programming systems. The target audience are those interested in developing parallel and distributed applications and those interested in developing tools and methods for programming parallel and distributed applications.
We will use a broad range of parallel execution environments ranging from small multiprocessors to the 252 processor SP2 operated by TACC to the Internet.
The lecture topics to be covered will include:
Reference materials for the course will be selected papers from the classical and recent literature, copies of class notes and selected parallel programming systems available from parallel programming research groups.
The instructor is currently evaluating possible textbooks.
CS377 combines concepts and applications. There will be outside assignments based on the lectures and a project where class participants will develop a parallel program and measure and analyze the execution properties of the parallel program..
a) Programming Project – Each participant will create a substantive parallel program in an area of interest, probably in the language system they analyzed. Each participant can propose a project or the instructor will assign projects for those who do not have a project they wish to pursue. Projects may span from numerical computations on multiprocessors to web-based collaboration systems. Program design and development will follow good practice. Programs will be analyzed for its properties such as speed-up and scalability and the execution behavior of the programmed measured and modeled.. Each participant will give a presentation and prepare a report on the project and the resulting program.
b) Examinations - There will be two examinations, a mid-term and a final exam. Examinations are open book and open notes and may scheduled for an evening.
c) Grades - Grades will be 40% on the projects and 40% on the examinations and 20% on the outside assignments.