List of Topics:
I. Foundations:
Multiprocessor architectures
(shared memory and distributed shared memory machines),
cache-coherence protocols,
inter-process communication,
data sharing,
synchronous and asynchronous parallelism.
Multicomputer architectures,
routing techniques,
message passing paradigms,
data partitioning and scheduling.
Cluster computing,
network architectures,
currently available networks.
Performance models of application/machine pairs,
scalability analysis,
communication models.
Elements of parallel algorithm design.
II. Parallel Programming (programming paradigms):
Message passing (Message Passing Interface, PVM).
Shared memory programming:
programming symmetric multiprocessors using threads (POSIX threads,
Java threads) and processes.
Data parallel programming (high performance Fortran, HPC, HPC++).
Programming environments,
performance evaluation tools,
libraries (MIP, PICL, Ariadne, Bond, TotalView, Adaptor, PGI, NAS, DEC).
III. Parallel Libraries and Problem-Solving Environments
(parallel libraries for kernels of parallel numerical algorithms):
Basic linear algebra sub-programs for dense and sparse
data structures (P-BLAS).
Data partitioning (Chaco 2.0, Metis, Parallel ELLPACK).
Linear algebra (ScalPACK, sparsekit, mpcg, NAG).
Partial differential equations-based modeling (//ELLPACK, VECFEM, NPARC).
Molecular dynamics simulation (CHARMM, MDScope, EulerGROMOS).
Discrete event simulation.
Graphics and Visualization.
IV. Case Studies
(scientific computing, computational prototyping, biomolecular
computing, computational vision, discrete simulation, financial
computing):
Sparse preconditioned iterative solvers for finite element and
finite difference methods (structures, fluid flows, electromagnetics,
etc.).
Sparse factorization techniques.
Particle dynamics and hierarchical methods for molecular dynamics,
astrophysics, and vortex flow methods.
Fast Fourier Transforms and Toeplitz matrix methods for signal processing.
Discrete event simulations (conservative, optimistic, and hybrid
techniques) for circuit, battlefield simulation.
Feature extraction,
feature matching,
scene labeling for computational vision.
Volume rendering and ray tracing for graphics and visualization.
Monte-Carlo methods for financial modeling.
Data warehousing and data mining for business applications.