\chapcontents {1}{Writing Parallel Programs in GAP Easily}{5}
\seccontents {1.1}{Overview of ParGAP} {5}
\seccontents {1.2}{Installing ParGAP} {7}
\seccontents {1.3}{Running ParGAP} {8}
\seccontents {1.4}{Extended Example} {9}
\seccontents {1.5}{Author} {13}
\seccontents {1.6}{Invoking ParGAP with Remote Slaves} {13}
\seccontents {1.7}{Problems with Installation} {14}
\seccontents {1.8}{Problems with Hosts on Multiple Networks} {16}
\seccontents {1.9}{Problems with Passwords (Getting Around Security)} {16}
\seccontents {1.10}{Modifying the GAP kernel} {17}
\chapcontents {2}{Slave Listener}{18}
\seccontents {2.1}{Slave Listener Commands} {18}
\chapcontents {3}{Basic Concepts for the TOP-C model (MasterSlave)}{22}
\seccontents {3.1}{Basic TOP-C (Master-Slave) commands} {22}
\seccontents {3.2}{Other TOP-C Commands} {23}
\seccontents {3.3}{Simple Usage of MasterSlave()} {25}
\seccontents {3.4}{Efficient Parallelism in MasterSlave() using CheckTaskResult()} {25}
\seccontents {3.5}{Modifying Task Output or Input (a dirty trick)} {26}
\seccontents {3.6}{The GOTO statement of the TOP-C model} {27}
\seccontents {3.7}{Being nice to other users (Nice, Alarm and LimitRss)} {27}
\seccontents {3.8}{Converting legacy sequential code to the TOP-C model} {28}
\chapcontents {4}{Tutorial}{29}
\seccontents {4.1}{Trivial Parallelism} {29}
\seccontents {4.2}{Using ParGAP interactively} {30}
\seccontents {4.3}{Streaming} {32}
\seccontents {4.4}{TOP-C model for non-trivial parallelism} {33}
\chapcontents {5}{MasterSlave Tutorial}{36}
\seccontents {5.1}{A simple example} {36}
\seccontents {5.2}{ParSquare} {37}
\seccontents {5.3}{ParInstallTOPCGlobalFunction() and TaskInputIterator() (ParSquare revisited)} {37}
\seccontents {5.4}{ParMultMat} {38}
\seccontents {5.5}{DefaultCheckTaskResult (as illustrated by ParSemiEchelonMatrix)} {39}
\seccontents {5.6}{Caching slave task outputs (ParSemiEchelonMat revisited)} {42}
\seccontents {5.7}{Agglomerating tasks for efficiency (ParSemiEchelonMat revisited again)} {43}
\seccontents {5.8}{Raw MasterSlave (ParMultMat revisited)} {46}
\chapcontents {6}{Advanced Concepts for TOP-C model (MasterSlave)}{48}
\seccontents {6.1}{Tracing and Debugging} {48}
\seccontents {6.2}{Efficiency Considerations} {50}
\seccontents {6.3}{Checkpointing in TOP-C} {51}
\seccontents {6.4}{When Should a Slave Process be Considered Dead?} {51}
\chapcontents {7}{MPI commands and UNIX system calls in ParGAP}{53}
\seccontents {7.1}{Tutorial introduction to the MPI C library} {53}
\seccontents {7.2}{Other low level commands} {56}
\chapcontents {8}{Comments?}{58}
\chapcontents {}{Bibliography}{59}
