@InProceedings{DebbageHill91, title = "{A} general-purpose parallel programming environment", author= "Debbage, Mark and Hill, Mark and Nicole, Denis A.", editor= "Edwards, Janet", pages = "123--132", booktitle= "{P}roceedings of {W}o{TUG}-14: {O}ccam and the {T}ransputer-{C}urrent {D}evelopments", isbn= "90 5199 063 4", year= "1991", month= "sep", abstract= "A parallel programming environment has been developed which is superior to many available systems on current generation transputers. The core of the package is a packet router which delivers asynchronous datagrams around arbitrary networks. The router is guaranteed not to deadlock provided that higher levels do not violate the eager-readership edict. This eager0readership can be guaranteed by the use of communication protocols which ensure that packets are never sent to a destination which has insufficient buffer space available. The router has been implemented in C and is applicable to a wide number of loosely coupled multiprocessing architectures. The current implementation has been optimised for transputer networks, on which it achieves impressive communications performance. The implementation of a virtual channel protocol within occam semantics on such a router is discussed. This forms the basis of version 2.0 of the popular Virtual Channel Router (VCR) package. The user interface to these channels is the conventional occam syntax for communications but with the configuration restriction of four channel-pairs per processor eliminated. The virtual channels provided by this package can be exploited from other languages through the appropriate Inmos Toolset." }