BU CLA CS 512: Parallel Algorithms and Programs
Computer Science Department
workshop on Interdisciplinary Curriculum in
Massively Parallel Computing for Undergraduates, BU, May 25-27,
The talk aims at elucidating how algorithms and programs can be taught
profitably together, in order to develop in the student a
sophisticated appreciation of the difficulty and pay-off of
Develop PRAM algorithms, write SPMD shared-memory programs, and
study the feasibility of general purpose parallel computing.
Contrast algorithmic complexity analysis with program performance
Parallel algorithm complexity and program performance.
Synchronization requirements of algorithms: synchronous and
asynchronous iterative methods.
PRAM shared-memory algorithms.
Executing PRAM algorithms on real machines.
Split-C: a language that supports SPMD distributed
shared-memory (XPRAM) progams.
Describe a simple centralized shared-memory implementation, and
Split-C's support for distributed shared-memory.
Homeworks and Mini-projects:
Examples include: theoretical and
hands-on comparison of different
sorting routines, analysis of communication pattern induced by
different data partitionings for FFT.
Motivating interdisciplinary work by students was
Although the lab-seminar provided exposure, and influenced
the discussion in class, students were not enthusiastic
enough to pursue joint projects.