MTCAMP is an extension to C/C++ for parallel processing on multiprocessors (PC servers and workstations). It allows programmers to express parallelism with a simple annotation to C/C++ programs. The runtime system manages parallelism and automatically distribute available parallelism onto a given, constant number of processors. MTCAMP therefore eliminates the need for one of the most intricate and error-prone tasks from developing programs on multiprocessor systems,
In addition, MTCAMP features an experimental debugging tool called dynamic dependence detector, which automatically detects synchronization errors in parallel programs.
MTCAMP consists of two components. One is frontend, which feeds MTCAMP programs (annotated C/C++ programs) and translates them into regular C/C++ code. The other is the runtime system, called StackThreads/MP. We are currently maintaining the frontend and the runtime system separately, hence in order to use MTCAMP, you must download both.
Frontend was developed by extending a commercial C++ frontend called EDG C++ frontend. Obeying non-disclosure agreement of EDG C++ frontend, we do not distribute the entire source code of the frontend. Instead, we distribute binary on some platforms and diffs on others. For non-commercial users, EDG distributes sources for free, subject to the non-disclosure agreement.
See StackThreads/MP home page for detailed requirements for StackThreads/MP runtime.
MTCAMP is currently avaiable on the following platforms.
- Pentium Linux
- Pentium Solaris
- Pentium Windows NT (experimental)
- SPARC Solaris
- Mips IRIX
- Alpha Digital UNIX
Downloadable packages for MTCAMP are now under preparation. They will be available in a binary form within a month. If you want to receive announcement when they are ready, please send me (either in English or Japanese, if you want to write anything at all. An empty mail is perfect.). See Section "Requirements" to know what you should download. Meantime, you can use StackThreads/MP standalone, which is a library that implements basic functionality of MTCAMP (in a less programmer-frindly syntax).
- Frontend
- Download binary (version xxx, built from EDG version xxx) for:
- Pentium Linux (kernel 2.2.14, libc 2.1.3)
- Pentium Windows NT
- Pentium Solaris 2.6
- SPARC Solaris 2.6
- MIPS IRIX 6.5
- Alpha Digital UNIX
- Download diffs to EDG source version:
- MTCAMP version xxx for EDG version xxx
- Go to EDG home page to download EDG C++ frontend
- Runtime
- Go to StackThreads/MP home page to download StackThreads/MP
This research project is conducted as a part of "Advanced Software
Enrichment Project" of Information-technology
Promotion Agency (IPA), Japan
Copyright (c) 1999 by Kenjiro Taura. All rights reserved.
Yonezawa Laboratory |