p12ab

Abstract. This paper outlines the design and performance of a system for executing occam programs on multiprogrammed shared memory multiprocessor workstations. In particular, a fast SMP scheduler that executes process code generated by the standard KRoC compiler (originally designed for uniprocessors) is described; new wait-free multiprocessor-safe algorithms for both committed and alternative CSP channel communication operations are presented; a technique for allowing surplus processors to idle altruistically under a multiprogrammed regime is outlined. The run-time performance of the system is measured under a range of process granularities on one to four processors, using a synthetic benchmark. The performance of two real applications, namely Quickersort and matrix multiplication, is then analysed in some detail. Finally, alternative scheduling strategies to further improve the scalability of the system under conditions of very fine process granularity are proposed.