C pargap1.tex 1. Writing Parallel Programs in GAP Easily
I 1.0. ParGAP
S 1.1. Overview of ParGAP
I 1.1. MPI!standard
S 1.2. Choosing an MPI Library
S 1.3. Installing ParGAP
I 1.3. installation
S 1.4. Running ParGAP
S 1.5. Extended Example
I 1.5. example!Slave Listener
I 1.5. Slave Listener!example
S 1.6. Author
S 1.7. Invoking ParGAP with Remote Slaves (when using a system MPI library)
S 1.8. Invoking ParGAP with Remote Slaves (when using MPINU)
S 1.9. Problems Installing or Invoking ParGAP
S 1.10. Problems Running ParGAP with MPINU
S 1.11. Problems Running ParGAP with a System MPI Implementation
S 1.12. Problems with Passwords (Getting Around Security)
S 1.13. Modifying the GAP kernel
C pargap2.tex 2. Slave Listener
S 2.1. Slave Listener Commands
F 2.1. SendMsg
F 2.1. RecvMsg
F 2.1. GetLastMsgSource
F 2.1. GetLastMsgTag
F 2.1. SendRecvMsg
F 2.1. BroadcastMsg
F 2.1. IsMaster
F 2.1. FlushAllMsgs
F 2.1. PingSlave
F 2.1. ParEval
F 2.1. PrintToString
F 2.1. ParRead
F 2.1. ParReread
F 2.1. ParList
F 2.1. ProbeMsg
F 2.1. ProbeMsgNonBlocking
F 2.1. ParReset
F 2.1. ParBindGlobal
F 2.1. ParDeclareGlobalValue
F 2.1. ParDeclareGlobalFunction
F 2.1. ParInstallValue
F 2.1. ParInstallValue
F 2.1. ParInstallGlobalFunction
F 2.1. ParInstallGlobalFunction
C pargap3.tex 3. Basic Concepts for the TOP-C model (MasterSlave)
I 3.0. task
I 3.0. shared data
I 3.0. action
I 3.0. task!input
I 3.0. task!output
S 3.1. Basic TOP-C (Master-Slave) commands
I 3.1. TOP-C model
I 3.1. master slave model
F 3.1. MasterSlave
F 3.1. NOTASK
I 3.1. actions
F 3.1. NO_ACTION
F 3.1. UPDATE_ACTION
F 3.1. REDO_ACTION
F 3.1. CONTINUATION_ACTION
F 3.1. IsUpToDate
F 3.1. ParInstallTOPCGlobalFunction
F 3.1. ParInstallTOPCGlobalFunction
S 3.2. Other TOP-C Commands
I 3.2. SeqMasterSlave!simplified pseudo-code
S 3.3. Simple Usage of MasterSlave()
S 3.4. Efficient Parallelism in MasterSlave() using CheckTaskResult()
I 3.4. NO_ACTION!definition
I 3.4. UPDATE_ACTION!definition
I 3.4. REDO_ACTION!definition
S 3.5. Modifying Task Output or Input (a dirty trick)
S 3.6. The GOTO statement of the TOP-C model
F 3.6. CONTINUATION_ACTION!definition
S 3.7. Being nice to other users (Nice, Alarm and LimitRss)
F 3.7. UNIX_Nice!definition
F 3.7. UNIX_Alarm!definition
F 3.7. UNIX_LimitRss!definition
S 3.8. Converting legacy sequential code to the TOP-C model
C tutorial.tex 4. Tutorial
S 4.1. Trivial Parallelism
S 4.2. Using ParGAP interactively
S 4.3. Streaming
S 4.4. TOP-C model for non-trivial parallelism
C pargap4.tex 5. MasterSlave Tutorial
I 5.0. tutorial!TOP-C
I 5.0. tutorial!MasterSlave()
S 5.1. A simple example
S 5.2. ParSquare
S 5.3. ParInstallTOPCGlobalFunction() and TaskInputIterator() (ParSquare revisited)
I 5.3. ParInstallTOPCGlobalFunction!example
I 5.3. example!ParInstallTOPCGlobalFunction
I 5.3. TaskInputIterator!example
I 5.3. example!TaskInputIterator
F 5.3. ParInstallTOPCGlobalFunction!definition
F 5.3. TaskInputIterator
S 5.4. ParMultMat
I 5.4. example!SeqMultMat
I 5.4. example!ParMultMat
S 5.5. DefaultCheckTaskResult (as illustrated by ParSemiEchelonMatrix)
I 5.5. example!ParSemiEchelonMat
I 5.5. example!parallel Gaussian elimination
I 5.5. Gaussian elimination!parallel
S 5.6. Caching slave task outputs (ParSemiEchelonMat revisited)
I 5.6. example!ParSemiEchelonMat revisited
S 5.7. Agglomerating tasks for efficiency (ParSemiEchelonMat revisited again)
I 5.7. taskAgglom
I 5.7. agglomerating tasks
I 5.7. TaskAgglomIndex!context
I 5.7. example!taskAgglom
F 5.7. TaskAgglomIndex
I 5.7. example!ParSemiEchelonMat revisited again
S 5.8. Raw MasterSlave (ParMultMat revisited)
I 5.8. raw MasterSlave()!definition
I 5.8. MasterSlave()!raw
I 5.8. example!ParMultMat revisited
I 5.8. raw MasterSlave()!example
I 5.8. example!raw MasterSlave()
F 5.8. BeginRawMasterSlave
F 5.8. RawSubmitTaskInput
F 5.8. EndRawMasterSlave
C pargap5.tex 6. Advanced Concepts for TOP-C model (MasterSlave)
I 6.0. task
I 6.0. shared data
S 6.1. Tracing and Debugging
F 6.1. ParTrace
F 6.1. UNIX_FflushStdout!definition
F 6.1. SeqMasterSlave!definition
S 6.2. Efficiency Considerations
I 6.2. efficiency
F 6.2. MasterSlaveStats
S 6.3. Checkpointing in TOP-C
F 6.3. MasterSlavePendingTaskInputs
S 6.4. When Should a Slave Process be Considered Dead?
C pargap6.tex 7. MPI commands and UNIX system calls in ParGAP
S 7.1. Tutorial introduction to the MPI C library
I 7.1. MPI
I 7.1. Message Passing Interface
I 7.1. MPI model
I 7.1. tutorial!MPI
F 7.1. MPI_Init!example
F 7.1. MPI_Finalize!example
F 7.1. MPI_Comm_rank!example
F 7.1. MPI_Get_count!example
F 7.1. MPI_Get_source!example
F 7.1. MPI_Get_tag!example
F 7.1. MPI_Comm_size!example
F 7.1. MPI_Send!example
F 7.1. MPI_Recv!example
F 7.1. MPI_Probe!example
S 7.2. Other low level commands
I 7.2. MPI commands!All ParGAP bindings
I 7.2. UNIX system calls!All ParGAP bindings
I 7.2. UNIX functions
I 7.2. functions!UNIX
F 7.2. UNIX_MakeString
F 7.2. UNIX_DirectoryCurrent
F 7.2. UNIX_Chdir
F 7.2. UNIX_FflushStdout
F 7.2. UNIX_Catch
F 7.2. UNIX_Throw
F 7.2. UNIX_Getpid
F 7.2. UNIX_Hostname
F 7.2. UNIX_Alarm
F 7.2. UNIX_Realtime
F 7.2. UNIX_Nice
F 7.2. UNIX_LimitRss
I 7.2. MPI functions
I 7.2. functions!MPI
F 7.2. MPI_Init
F 7.2. MPI_Initialized
F 7.2. MPI_Finalize
F 7.2. MPI_Comm_rank
F 7.2. MPI_Get_count
F 7.2. MPI_Get_source
F 7.2. MPI_Get_tag
F 7.2. MPI_Comm_size
F 7.2. MPI_World_size
F 7.2. MPI_Error_string
F 7.2. MPI_Get_processor_name
F 7.2. MPI_Attr_get
F 7.2. MPI_Abort
F 7.2. MPI_Send
F 7.2. MPI_Recv
F 7.2. MPI_Probe
F 7.2. MPI_Iprobe
I 7.2. MPI global constants
I 7.2. constants!MPI, global
F 7.2. MPI_ANY_SOURCE
F 7.2. MPI_ANY_TAG
F 7.2. MPI_COMM_WORLD
F 7.2. MPI_TAG_UB
F 7.2. MPI_HOST
F 7.2. MPI_IO
C pargap7.tex 8. Comments?
