TOMPI Releases
See also the main TOMPI page.
All distributions are in gzip'd tar format.
- 0.1.1 (3/20/1998)
- By request, mpicc now has a
-quiet
option, which suppresses
progress reports.
- Fixed g2tsd preprocessor (used in the mpicc script) in several ways.
- Correctly determines function prototypes versus function-pointer
variables (important since only the latter are global and must be
converted).
- Types for external keys are correctly declared now, fixing
type-mismatch errors when you had both the external declaration and the
actual data in one file.
- Fixed an infinite loop caused by falsely detecting type casts as
type declarations in certain cases.
- 0.1.0 (02/19/1998)
- Added support for two new user-level threads packages:
- RT threads
(real-time threads), which supports
AIX (although there seem to be problems), SunOS 4/5, FreeBSD, and
WindowsNT.
- Cthreads, which supports SunOS 4/5, IRIX 4/5/6, KSR1, KSROS, AIX 3, and Linux
- New MPI features:
- Better support for collective communication: MPI_Reduce and
MPI_Allreduce (but only MPI_Op so far is MPI_SUM; let me know if you
want more).
- Better support for communicators: MPI_Comm_dup, MPI_Comm_compare.
- Better support for groups: MPI_Group_rank, MPI_Group_size,
MPI_Group_translate_ranks, MPI_Comm_group, and MPI_Group_compare.
- MPI_PROC_NULL, MPI_COMM_NULL, and MPI_GROUP_NULL exist and are
checked for (all except MPI_PROC_NULL causing errors).
- Profiling libraries are fully supported.
- All C built-in types are supported (floating-point ones were missing
for some reason).
- MPI_Initialized, which is important for thread-specific data.
- MPI_Init no longer requires
argc
and argv
;
options can now be specified in the environment (coming soon:
an mpirun
script).
- MPI_Datatype's are now integers, and the built-in ones are
constants, following MPI 1.1. This simplifies writting MPI_Op's.
- MPI_Init was cleaned up significantly. As a result:
- Removed a race condition in the startup process.
- The more portable (i.e., less unlikely to be used otherwise)
option
-nthread
replaces the old -num_proc
.
- There is a new option
-threadinfo
which describes
the compiled-in thread system. This is useful because I often
forget or am not convinced that I changed it.
- All command-line options can be specified as environment
variables.
TOMPI_NTHREAD
can be set to the number
of desired threads (MPI processes), and TOMPI_THREADINFO
can be set (to anything) to give information about the thread system.
- Pretty much any thread can be the "master" (starting
up all the other threads). This is important for all but RT threads
(including the previously supported POSIX and Solaris threads),
where the original thread can't actually be an MPI process; it has
to create and then wait for all the threads to finish. Otherwise,
when the original thread exits, the whole program exits!
- Bug fixes and general cleanup:
- The g2tsd preprocessor (used in mpicc) has several changes. It
is now reasonably tested, and works on everything I've tried it on.
In particular, the following problems were fixed:
- Added support for accessing (preprocessed) global variables before
MPI_Init is called, that is, before the threads package is even
initialized. This was tricky, because we don't know the
number of threads before initializing!
- Now handles global arrays correctly. Before it replaced any
references to an array
a
with *a
, that
is, the first element of the array. The type was also wrong and
is now fixed.
- Supports old K&R-style declarations of function arguments (in
between the argument list and the open brace). You'd be surprised
how much code uses this style; hence, it's important to support it.
- Supports functions without a return type specified.
- The mpicc script returns an error code if the compilation did.
- Collective communication can no longer conflict with point-to-point
communication, by using special tags.
- Included
<stdio.h>
for definition of
NULL
.
- 0.0.1 (08/23/1997)
- The first official version.