OCCAM- and C-Based Multiprocessor Environments for UNIX Cluster

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.