Parallel Computing: Models,
Languages & Architectures
CLA CS551 -- Fall Semester (alternate years) --
A. Bestavros
Over the last few years, the emergence of radically different parallel
computer architectures has prompted the development of various programming
models such as data flow, shared memory, message passing, systolic, and
data parallel, all of which are architecture-dependent models. The rapidly
changing grounds of parallel architectures, however, suggest that
architecture-independent models such as Unity be used, thus leaving the
task of tailoring a given program to a particular architecture to an
optimizing compiler.
This course aims at exploring these two alternatives by introducing a
palette of programming models and contrasting their suitability for
different architectures and applications. The material covered will
encompass topics in parallel computer architectures, parallel programming
models, and languages. Appropriate examples for existing or proposed
parallel architectures will be surveyed. Alongside, students will have the
opportunity to gain hands-on experience with a host of architecture
dependent/independent parallel programming languages, such as Unity, Id,
Linda, C*, C-Paris, CM-Fortran, and MPL.