[Top] [Contents] [Index] [ ? ]

TOP-C (Task Oriented Parallel C/C++)

This documents version 2.5.0 of
`TOP-C' (Task Oriented Parallel C/C++),
last updated September, 2004.

1. `TOP-C' Copying Conditions  
2. Quick Start: Installation and Test Run  
3. Overview of `TOP-C/C++'  
4. Writing `TOP-C' Applications  
5. Compiling and Invoking `TOP-C' Applications  
6. Debugging and Tracing  
7. Performance and Long Jobs  
8. Advanced Features of `TOP-C'  
9. `TOP-C' Raw Interface for Parallelizing Sequential Code  
10. Acknowledgements  
A. Summary of `TOP-C' Commands  
B. Example `TOP-C' Application  
C. Using a Different `MPI' with TOP-C  
Function Index  
Variable Index  
Concept Index  

 -- The Detailed Node Listing ---

Overview of `TOP-C/C++'

3.1 Programmer's Model  
3.2 Three Key Concepts for TOP-C  
3.3 Distributed and Shared Memory Models  

Programmer's Model

3.1.1 Structure of a TOP-C Program  
3.1.2 Four Callback Functions  
3.1.3 Task Input and Task Output Buffers  
3.1.4 The `TOP-C' Algorithm  

Task Input and Task Output Buffers

Defining Application Task Buffers  
Marshaling (Serialization) and Heterogeneous Architectures  

Writing `TOP-C' Applications

4.1 The Main TOP-C Library Calls  
4.2 Callback Functions for TOPC_master_slave()  
4.3 Actions Returned by CheckTaskResult()  
4.4 TOP-C Utilities  

Compiling and Invoking `TOP-C' Applications

5.1 Compiling TOP-C Applications  
5.2 Command Line Options in TOP-C Applications  
5.3 Invoking a TOP-C Application in Sequential Memory  
5.4 Invoking a TOP-C Application in Distributed Memory  
5.5 Invoking a TOP-C Application in Shared Memory  

Invoking a TOP-C Application in Distributed Memory

5.4.1 Writing Procgroup Files for `MPINU'  
5.4.2 If Slaves Fail to Start  

Debugging and Tracing

6.1 Debugging by Limiting the Parallelism  
6.2 Debugging with `--TOPC-safety'  
6.3 TOP-C and POSIX signals  
6.4 Tracing Messages  
6.5 Stepping Through a Slave Process with `gdb'  
6.6 Segmentation faults and other memory problems  

Performance and Long Jobs

7.2 Strategies for Greater Concurrency  
7.3 Improving Performance  
7.4 Long Jobs and Courtesy to Others  

Advanced Features of `TOP-C'

8.1 Testing for Task Continuations and Redos  
8.2 Aborting Tasks  
8.3 Memory Allocation for Task Buffers  
8.4 Optimizing TOP-C Code for the Shared Memory Model  
8.5 Modifying TOP-C Code for the Sequential Memory Model  
8.6 Caveats  

Memory Allocation for Task Buffers

8.3.1 Avoiding malloc and new with Task Buffers  
8.3.2 Using TOPC_MSG_PTR() to Avoid Copying Large Buffers  
8.3.3 Allocation and Freeing of Task Buffers for TOPC_MSG_PTR()  
8.3.4 Marshaling Complex Data Structures into `TOP-C' Task Buffers  

Optimizing TOP-C Code for the Shared Memory Model

8.4.1 Reader-Writer Synchronization  
8.4.2 Thread-Private Global Variables  
8.4.3 Sharing Variables between Master and Slave and Volatile Variables  
8.4.4 SMP Performance  

`TOP-C' Raw Interface for Parallelizing Sequential Code

9.1 `TOP-C' raw functions  
9.2 Parallelizing `for' Loops  
9.3 Parallelizing `while' Loops  



This document was generated by Gene Cooperman on October, 6 2004 using texi2html