Parallel Programming CS 4353, CS6783

Fall 1997 Course Offering in
Computational Science and Engineering

Lecture TTR 12:30-1:50 PM

Course Description Discussion of languages and environments for programming parallel processors including program annotations, language extensions, and software tools. Discussion of shared and distributed memory paradigms, and homogeneous and heterogeneous parallel computing. Issues of vector and data parallel computing. Portability and performance evaluation, concepts and tools.

Prerequisites: CS 2503 or CS 2013, and Consent of Instructor. The course will have a balance of laboratories, projects, in-class exercises, and exams.


Course Outline:

  1. Review of Locks, semaphores, and monitors.
  2. Programming environments for shared memory architectures.
  3. Vector and data parallel computing.
  4. Review of sockets and communication mechanisms.
  5. Programming environments for distributed architectures.
  6. Hetereogeneous computing and environments.
  7. Evaluation of parallel programs.

Remarks:

Computer systems with multiprocessor systems have become readily available and are becoming common place. Scientific and engineering, and large scale applications computing is now expected to exploit multiprocessing. The characteristics of multiprocessor systems are fundamentally different from previously available computers. These characteristics have a significant impact in program performance.

This course will focus on the use of programming environments for the description of parallel algorithms. This course would serve as an introduction to programming vector and parallel processors. The main tools of this course will be MPI and PVM, some programming in Java and C++ will be expected.


For further information:
Instructor: J. C. Díaz
KEH U365, TU ext-2993
Diaz@utulsa.edu


J. C. Diaz