Part 1: Introduction to Parallel Programming
Notes on the SGI Power Challenge
Introduction to parallel programming
Process management and parallel programming
Process management in Unix
Environment of a Unix process
Performance of parallel computations
Part 2: Process Interaction
Controlling process execution in Unix
Process interaction by file locking
Process interaction by pipes
Process interaction by sending and receiving signals
Light process creation under Unix (ps)
Light process creation under Unix (pdf)
Example of sproc() usage (ps)
Example of sproc() usage (pdf)
Unix V IPC Resources (ps)
Unix V IPC Resources (pdf)
Unix V IPC Resources: Semaphores
Unix V IPC Resources: Message Queue
Unix V IPC Resources: Shared Memory
Process scheduling for execution
Part 3: Models of Parallel Programs
Structure of parallel programs (the model)
Parallel programming under UNIX - A Critical Review
Posix Threads
Thread synchronization
Part 4: Network Programming
Introduction to process communication by sockets
Process communication by connection oriented sockets
Process communication by connectionless sockets
Coordinating socket activities
Part 5: Distributed Programming
Remote procedure call: command execution
Remote procedure call: function execution
Using rpcgen to generate templates and makefile
Summary on remote procedure call
Example of rpcgen usage
Getting familiar with distributed systems
CORBA Client/Server architecture
Interface Definition Language
Building a CORBA Application
Part 6: Parallel Programming Using Coordination Languages
Introduction to MPI programming
MPI programming on SGI
Running MPI programs on silicon
Determinism of MPI programs
MPI Collective Communication Operations
MPI Data Grouping Operations
MPI Communicator and Topology Management Operations
MPI Asynchronous Operations
Performance of MPI pograms