Randal Burns

Storage and Database Systems for Science and Engineering

  • Increase font size
  • Default font size
  • Decrease font size
Home Teaching

Courses

Current Course EN 600.[3|4]20 Parallel Programming

Description: This course prepares the programmer to tackle the massive data sets and huge problem size of modern scientific and enterprise computing. Google and IBM have commented that undergraduate CS majors are unable to ”break the single server mindset.” Students taking this course will abandon the comfort of serial algorithmic thinking and learn to harness the power of cutting-edge software and hardware technologies. The issue of parallelism spans many architectural levels. Even ``single server'' systems must parallelize computation in order to exploit the inherent parallelism of recent multi-core processors. The course will examine different forms of parallelism in four sections. These are: (1) massive data-parallel computations with Hadoop!; (2) programming compute clusters with MPI; (3) thread-level parallelism in Java; and, (4) GPGPU parallel programming with NVIDIA's Cuda. Each section will be approximately 3 weeks and each section will involve a programming project. The course is also suitable for second-year undergraduate CS majors and undergraduate and graduate students from other science and engineering disciplines that have prior programming experience. [Systems]

Prerequisite: EN 600.120 Intermediate Programming or equivalent.

Website: Parallel Programming

Schedule: Fall 2009, MW 4:30-5:45 PM, Shaffer 303

Mailing list: TBA

Class Schedule and Assignments: Schedule

All Courses (some pages may be stale)

Last Updated on Wednesday, 02 September 2009 19:16