Two new multiprocessor environments, OCCNIX and CNIX, are described in this paper. These are scalable modular software systems that enable parallel programs to run on clusters of UNIX workstations. The environments unite the paradigms of multiprocessing and multithreading into a single programming model. OCCNIX executes OCCAM programs, using linked binary level interpreters to form a virtual Transputer network. This is based around the TCP/IP client-server model and, like JAVA, provides hardware-independent multiple platform access. CNIX is a derivative of OCCNIX that migrates the major architectural features of the Transputer, along with selected OCCAM and Transputer assembler (TASM) instructions, to C++ libraries. The CNIX libraries provide C++ with a multithreaded, multiprocessor environment and a set of simple OCCAM/TASM-based parallel processing commands. Results confirm that OCCNIX can execute OCCAM/Transputer binaries over groups of UNIX workstations and has the ability to run development tools such as the ISPY network debugger. Performance tests of CNIX show a multiprocessor speed-up, compared with the ideal case, of 93% and, using 16 workstations, have achieved execution times that are 15 times faster than a sequential C++ program.
[1]
Kneale J Rothwell,et al.
Porting the INMOS occam compiler to the SPARC architecture
,
1995
.
[2]
David May,et al.
Compiling Occam into silicon
,
1991
.
[3]
W. Richard Stevens,et al.
Unix network programming
,
1990,
CCRV.
[4]
David May,et al.
Occam and the transputer
,
1988,
European Workshop on Applications and Theory in Petri Nets.
[5]
Devang Shah,et al.
Programming with threads
,
1996
.
[6]
Denis A. Nicole,et al.
Southampton's Portable Occam Compiler (SPOC)
,
1994
.
[7]
C. Q. Lee,et al.
The Computer Journal
,
1958,
Nature.
[8]
D J Evans,et al.
Parallel processing
,
1986
.
[9]
David May,et al.
A Tutorial Introduction To Occam Programming
,
1987
.
[10]
David E. Goldberg,et al.
Genetic Algorithms in Search Optimization and Machine Learning
,
1988
.