This is version 2.2.0 of Task Oriented Parallel C/C++ (`TOP-C'). The documentation and latest release can be found on @url{ftp://ftp.ccs.neu.edu/pub/people/gene/topc/}. Gene Cooperman @email{gene@ccs.neu.edu}
It has been tested and works in my environment on several workstation architectures. It provides task-oriented parallelism to the end user. The same application source code (or object code) can be executed (or linked) with any of the following communication libraries using the topcc command (a substitute for cc): (a) a distributed memory library using MPI (MPI subset, mpinu, included in distribution); or (b) a shared memory library using threads; or (c) a single-process sequential library (useful for development and debugging). The `TOP-C' model has been successfully used for some very large computations. See @url{http://www.ccs.neu.edu/home/gene/topc.html} for general information on obtaining source, overview slides of `TOP-C', previous `TOP-C' applications, etc.
To unpack:
gunzip -dc topc.tar.gz tar xvf topc.tar cd topc ./configure make
If you are impatient, you can immediately do:
cd bin make parfactor
and see a demonstration for factoring numbers by a Euclidean sieve.
Then try: ./a.out YOUR_NUMBER
Read bin/Makefile for an example of compiling a `TOP-C' program.
If you want to use more or different slave processes, modify bin/procgroup . Then, again:
cd bin ./a.out YOUR_NUMBER
And compare with your results using a single slave process:
./a.out --TOPC-num-slaves=1 YOUR_NUMBER
Or investigate what other command-line TOP-C options are available for a.out.
./a.out --TOPC-help
Other examples are in the directory `../examples'. For example, if you would like to try `parquicksort.c', then from the `bin' directory, try:
make test TEST_FILE=parquicksort
If you have your own `TOP-C' application, `app.c', make sure that it
contains #include <topc.h>
at the top, and that you have
a procgroup file in the current directory, and then:
bin/topcc --mpi -o app app.c # or else: bin/topc++ --mpi -o app app.cc ./app
[NOTE: bin/topcc --help
and bin/topc++ --help
both work
and `doc/topcc.1' exists ]
If you prefer a further quick introduction before reading the manual, see section Summary of `TOP-C' Commands, for a list of the `TOP-C' commands. See section Example `TOP-C' Application, for a simple `TOP-C' example application involving only trivial parallelism. The `examples' subdirectory provides more detailed examples, AND THERE SHOULD SOON BE A TUTORIAL FOR TOP-C.
Finally, if you want to install `TOP-C' permanently, type
make install
By default, `TOP-C' will install in `/usr/local', requiring root privilege. To install in your home directory, type:
./configure --prefix=$HOME make install
and `TOP-C' will create file in `$HOME/bin', `$HOME/lib',
`$HOME/include', `$HOME/man' and `$HOME/info'.
If you want to make `TOP-C' with cc
instead of gcc
, type:
env CC=cc ./configure --cache-file=/dev/null
You can also substitute values for CFLAGS
, CXX
and
CXXFLAGS
. CFLAGS
and CXXFLAGS
affect only
the `TOP-C' libraries and not the options used by topcc
.
To see other configuration options, type:
./configure --help
Please write the author, Gene Cooperman (@email{gene@ccs.neu.edu}), if there are any questions.
Go to the first, previous, next, last section, table of contents.