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.