@InProceedings{Shepherd87, title = "{S}ecurity aspects of occam 2", author= "Shepherd, Roger", editor= "Muntean, Traian", pages = "1--8", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{ONeil87, title = "{T}he {TDS} occam 2 debugging system", author= "O'Neil, C.", editor= "Muntean, Traian", pages = "9--14", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Jones87, title = "{O}n guards", author= "Jones, Geraint", editor= "Muntean, Traian", pages = "15--24", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Pritchard87, title = "{M}athmatical models of distributing computation", author= "Pritchard, D.", editor= "Muntean, Traian", pages = "25--36", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Goldsmith87, title = "{O}ccam transformation at {O}xford", author= "Goldsmith, Michael", editor= "Muntean, Traian", pages = "37--54", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Roscoe87, title = "{R}outing messages through networks: {A}n exerecise in deadlock avoidance", author= "Roscoe, A. W.", editor= "Muntean, Traian", pages = "55--79", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{CrookesMilligan87, title = "{LATIN} -- {A} language for transputer networks", author= "Crookes, D. and Milligan, P. and Scott, N. S. and Kilpatrick, P. L. and Morrow, Philip J.", editor= "Muntean, Traian", pages = "80--95", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{McBurneySleep87, title = "{E}xperiments with a transputer-based diffusion architecture", author= "McBurney, D. and Sleep, M. R.", editor= "Muntean, Traian", pages = "96--107", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Dodd87, title = "{M}ultilayer perceptrons on transputer networks", author= "Dodd, N.", editor= "Muntean, Traian", pages = "108--119", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{JohannetLoheac87, title = "{A} transputer based neurocomputer", author= "Johannet, A. and Loheac, G. and Personnaz, L. and Guyon, I. and Dreyfus, G.", editor= "Muntean, Traian", pages = "120--127", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{MartoranaMigliore87, title = "{P}arallel implementations of a molecular dynamics program for {L}ennard-{J}ones particles on transputer network", author= "Martorana, V. and Migliore, M. and Fornilli, S. L.", editor= "Muntean, Traian", pages = "128--134", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Welch87, title = "{M}anaging real-time demands on transputers", author= "Welch, Peter H.", editor= "Muntean, Traian", pages = "135--145", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Burns87, title = "{O}ccam's priority model and deadline scheduling", author= "Burns, A.", editor= "Muntean, Traian", pages = "146--159", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{CaponWest87, title = "{M}onitoring occam channels by program transformation", author= "Capon, Peter C. and West, Adrian J.", editor= "Muntean, Traian", pages = "160--169", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{MunteanTricot87, title = "{O}perating models for (reconfigurable) transputer networks", author= "Muntean, Traian and Tricot, C.", editor= "Muntean, Traian", pages = "170--185", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{MeierWespi87, title = "{A}n analysis and reconfiguration tool for mapping parallel programs onto transputer networks", author= "Meier, D. Ch. and Wespi, A. and Boillat, J. E. and Kropf, P. G.", editor= "Muntean, Traian", pages = "186--194", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{BartonEdwards87, title = "{A}n occam architecture for reconfigurable systems", author= "Barton, M. H. and Edwards, N. J.", editor= "Muntean, Traian", pages = "195--209", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{MevenkampStreitz87, title = "{T}ransputer and parallel computation at the {GMD}", author= "Mevenkamp, M. and Streitz, S.", editor= "Muntean, Traian", pages = "210--220", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Reynolds87, title = "{T}ransputers and parallel prolog", author= "Reynolds, J.", editor= "Muntean, Traian", pages = "221--228", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{BosleyMortimer87, title = "{A} real time prolog compiler for multi- transputer architectures for knowledge based systems applications", author= "Bosley, D. and Mortimer, J.", editor= "Muntean, Traian", pages = "229--238", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Dixon87, title = "{D}ata structures for parallel architectures in artificial intelligence", author= "Dixon, A.", editor= "Muntean, Traian", pages = "239--251", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{HarpWebber87, title = "{I}mage processing on the reconfigurable transputer processor", author= "Harp, J. G. and Webber, H. C.", editor= "Muntean, Traian", pages = "252--260", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Kerridge87, title = "{DRAT} -- {A} proposal for a dynamic reconfigurable array of transputers to support database applications", author= "Kerridge, Jon", editor= "Muntean, Traian", pages = "261--271", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{StepneyGRAIL87, title = "{GRAIL} -- {G}raphical representation of activity, interconnection and loading", author= "Stepney, S. and GRAIL, ", editor= "Muntean, Traian", pages = "272--280", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{KermarrecRannou87, title = "{A} transputer network simulator", author= "Kermarrec, Y. and Rannou, R.", editor= "Muntean, Traian", pages = "281--296", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{MeriauxAtamenia87, title = "{A} transputer-based architecture for graphics", author= "Meriaux, M. and Atamenia, A. and Lepretre, E.", editor= "Muntean, Traian", pages = "297--306", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Gorton87, title = "{A} distributed architecture for simulating microprocessor systems", author= "Gorton, I.", editor= "Muntean, Traian", pages = "307--317", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{BakkersRooij87, title = "{D}esign of a real-time operating system ({RTOS}) for robot control", author= "Bakkers, Andr\`{e} W. P. and Rooij, R. Van and James, L.", editor= "Muntean, Traian", pages = "318--327", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{TianXu87, title = "{U}se of occam and the transputer architecture for matrix inversion", author= "Tian, S. and Xu, G. and Pao, Y-H. and Schultz, W. L.", editor= "Muntean, Traian", pages = "328--338", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{MicheauxMaurin87, title = "{C}omputational statistics on a multi-transputer architecture", author= "Micheaux, D. Lafaye de and Maurin, A.", editor= "Muntean, Traian", pages = "339--364", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{FavreCoray87, title = "{A} parallel processing architecture for {ODE}s", author= "Favre, J. M. and Coray, C. S.", editor= "Muntean, Traian", pages = "365--377", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{CosnuauPoirel87, title = "{S}ome numerical experiments on transputer networks", author= "Cosnuau, A. and Poirel, O.", editor= "Muntean, Traian", pages = "378--388", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{AlvesOwen87, title = "{U}sing transputers in finite elements calculations: {A} first approach", author= "Alves, J. S. R. Filho and Owen, D. R. J.", editor= "Muntean, Traian", pages = "389--401", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{WybransKurver87, title = "{T}he development of a parallel {C} compiler", author= "Wybrans, K. and Kurver, R.", editor= "Muntean, Traian", pages = "402--410", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Garnett87, title = "{HELIOS} -- {A}n operating system for the transputer", author= "Garnett, N. H.", editor= "Muntean, Traian", pages = "411--419", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Hilhorst87, title = "{P}arallelisation of computational algorithms for a transputer network: {A}n approach", author= "Hilhorst, R.", editor= "Muntean, Traian", pages = "420--424", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{NiarGoncalves87, title = "{T}he occam process of the {N}-{ARCH} {K}ernel", author= "Niar, S. and Goncalves, G. and Lecouffe, M. P. and Toursel, B.", editor= "Muntean, Traian", pages = "425--432", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Patry87, title = "{O}ptical character recognition on a network of transputers", author= "Patry, P.", editor= "Muntean, Traian", pages = "433--448", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Call87, title = "{T}he knapsack solver: {A} benchmark for parallel computing systems", author= "Call, D.", editor= "Muntean, Traian", pages = "449--466", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{GasilloudMignot87, title = "{R}ay-tracing on super-node", author= "Gasilloud, D. and Mignot, B.", editor= "Muntean, Traian", pages = "467--472", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{AnsadeCornuEmie87, title = "{S}imulation fonctionnelle d'une architecture parallele en occam", author= "Ansade, Y. and Cornu-Emieux, R. and Lattard, D. and Mazare, G. and Objois, Ph.", editor= "Muntean, Traian", pages = "473--479", booktitle= "{OUG}-7: {P}arallel {P}rogramming of {T}ransputer {B}ased {M}achines", isbn= "90 5199 0073", year= "1987", month= "sep", } @InProceedings{Morrow88, title = "{A} comparison of two notations for programming image processing applications on transputers", author= "Morrow, Philip J.", editor= "Kerridge, Jon", pages = "1--10", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{HortonTurner88, title = "{D}ynamic processes in occam", author= "Horton, I. A. and Turner, Stephen J.", editor= "Kerridge, Jon", pages = "11--22", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{Culloch88, title = "{P}arallel programming toolkit for 3{L} -- {C} {FORTRAN} and {P}ascal", author= "Culloch, Alan D.", editor= "Kerridge, Jon", pages = "23--30", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{Winder88, title = "{P}arallel processing with the disputer", author= "Winder, C. P.", editor= "Kerridge, Jon", pages = "31--44", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{GowardLeler88, title = "{PIX}: {N}e{WS} for parallel computers", author= "Goward, P. and Leler, W.", editor= "Kerridge, Jon", pages = "45--52", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{HendrikxHacking88, title = "{O}ccam and transputers for industrial applications", author= "Hendrikx, H. A. M. and Hacking, R. J.", editor= "Kerridge, Jon", pages = "53--54", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{MillsONeill88, title = "{T}ransputer instrumentation applied to electrostatic powder flow measurement", author= "Mills, E. and O'Neill, Brian C.", editor= "Kerridge, Jon", pages = "55--62", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{EllisonNatanson88, title = "{A} talking bee on the transputer", author= "Ellison, D. and Natanson, L.", editor= "Kerridge, Jon", pages = "63--76", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{NormanFisher88, title = "{S}urface tracking within three dimensional datasets using a generalised message-passing system", author= "Norman, M. G. and Fisher, R. B.", editor= "Kerridge, Jon", pages = "77--82", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{TanRichards88, title = "3{D} medical graphics -- using the {T}800 transputer", author= "Tan, A. C. and Richards, R. and Linney, A. D.", editor= "Kerridge, Jon", pages = "83--90", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{Heal88, title = "{T}ransputer implementation of a graphics pipeline for octree encoded objects", author= "Heal, B. W.", editor= "Kerridge, Jon", pages = "91--100", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{DowningBennett88, title = "{M}ulti-transputer based parallel implementation of feature extraction for object recognition", author= "Downing, D. W. and Bennett, I. B.", editor= "Kerridge, Jon", pages = "101--112", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{Cok88, title = "{A} medium grained parallel computer for image processing", author= "Cok, R.", editor= "Kerridge, Jon", pages = "113--124", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{Cormack88, title = "{R}eal-time processing of large volume data from photographic plate measurements", author= "Cormack, W. A.", editor= "Kerridge, Jon", pages = "125--136", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{BowlerMorse88, title = "{A}daptive routing techniques in simulated computer networks", author= "Bowler, M. C. and Morse, M. J. and Frydas, N.", editor= "Kerridge, Jon", pages = "137--146", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{NicoleLloyd88, title = "{S}witching networks for transputer links", author= "Nicole, Denis A. and Lloyd, E. K. and Ward, J. S.", editor= "Kerridge, Jon", pages = "147--166", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{Peel88, title = "{U}sing transputers in an ethernet environment", author= "Peel, Roger M. A.", editor= "Kerridge, Jon", pages = "167--172", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{Richards88, title = "{I}mplementation of back-propogation on a transputer array", author= "Richards, G.", editor= "Kerridge, Jon", pages = "173--180", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{HullBell88, title = "{C}oncurrency in database management systems design and implementation", author= "Hull, M. E. C. and Bell, F. J.", editor= "Kerridge, Jon", pages = "181--204", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{Wylie88, title = "{C}ellular automaton lattice gas hydrodynamics on a parallel supercomputer", author= "Wylie, B. J. N.", editor= "Kerridge, Jon", pages = "205--214", booktitle= "{OUG}-8: {D}evelopments {U}sing {O}ccam", isbn= "90 5199 002 4", year= "1988", month= "feb", } @InProceedings{Bakkes88, title = "{V}irtual memory management for the transputer", author= "Bakkes, P. J.", editor= "Askew, Charlie", pages = "1--6", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "During the last decade a number of microprocessors appeared on the market with operating system mechanisms designed into the firmware e.g. the Intel 80286 which supports segmented memory management and the 80386 supporting segmentation and paging. The idea was very attractive as protection amongst users could be enforced by the hardware. The support of multi-users on one processor implied the conventional strategy of sharing the scarce processor resource amongst more than one user. The limitations in processing power of microprocessors did however limit their multi-user exploitation." } @InProceedings{Grimsdale88, title = "{CDL} -- {A} distribution language for {HELIOS}", author= "Grimsdale, C. H. R.", editor= "Askew, Charlie", pages = "7--12", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "Helios is an Operating System designed to exploit highly distributed systems. The central goal of such a distributed system, is not only to provide increased fault tolerance, but also increased performance. This necessitates adequate support for parallelism at the application level. It is proposed that instead of extending an existing language, or producing a completely new language, parallelism can be defined at the distribution phase. A high level Component Distribution Language has been designed, which allows simple sequential components to be combined by simple parallel constructors to form more complex parallel structures. The implementation language is irrelevant thus providing consistent support for standard sequential languages in a distributed environment." } @InProceedings{CroweStrainCla88, title = "{A} concurrent approach to the {T}owers of {H}anoi", author= "Crowe, W. D. and Strain-Clark, P. E. D.", editor= "Askew, Charlie", pages = "13--22", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "The tower of Hanoi problem has long been known to have a closed (ie non-recursive) solution. In this paper we analyse two approaches to this solution which involve concurrency. This is not an end in itself, but serves to introduce the main ideas and notations of CAP (Communicating Asynchronous Processes) - a revision of CSP which the authors have used successfully to develop correct Occam programs. In turn, CAP is part of a wider development method (ODM) which is being studied with the intention of prototyping software tools to assist developers of concurrent software." } @InProceedings{Zhang88, title = "{A}n {OCCAM}@ implementation of prolog and its preliminary performance", author= "Zhang, Kang", editor= "Askew, Charlie", pages = "23--36", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "The paper presents an execution model for Prolog, which attempts to exploit the parallelism mainly at the argument level through the unification operation. The model, consisting of a number of virtual machine instructions, has been implemented in Occam2 on a Transputer Development System (TDS). The performance of the pure software implementation has been evaluated in real-time. The speed, as assessed by running a few hand compiled benchmark programs on the TDS with a single transputer, ranges from 7-18 KLIPS. The paper gives some details of the performance, and then proposes a dataflow-based functionally distributed configuration of the multitransputer system." } @InProceedings{BarrettGoldsmith88, title = "{T}he meaning and implementation of {PRI} {ALT} in occam", author= "Barrett, Geoff and Goldsmith, Michael and Jones, Geraint and Kay, A.", editor= "Askew, Charlie", pages = "37--46", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "This paper describes what we believe to be an error in the implementation of PRI ALT on the Inmos transputer, and exhibits anomalous behaviour of that implementation. A correct implementation of comparable complexity is described, and some of the properties of the construct are described. Finally, an attempt is made to describe circumstances in which the behaviour of the existing implementation is adequate for the correctness of a program which uses it." } @InProceedings{PatelBentley88, title = "{S}imulation of gas pipeline networks", author= "Patel, Minesh and Bentley, Paul and Hughes, Clifton", editor= "Askew, Charlie", pages = "47--52", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "As part of the Alvey ParSiFal project, Logica Cambridge has been developing a model of a significant gas distribution network, in order to explore the potential for improvements in modelling speed using large numbers of transputers.There are two basic approaches to continuous simulation - the explicit and the implicit. The implicit approach models an entire system as a set of equations. Current implementations are well suited to conventional mono-processor machines but it is difficult to parallelize the algorithm and consequently to fully exploit the potential of transputers.The explicit approach models components such as pipes as individual objects which can be directly mapped into parallel processes, making it ideally suited to the transputer/occam architecture. However, explicit simulation is inherently expensive in terms of computational resources. To enhance performance we are also working on improvements to the model.We have developed a system using an explicit algorithm and have simulated networks ranging from 20 to 500+ objects. Preliminary results indicate that the explicit algorithm can efficiently exploit high degrees of parallelism." } @InProceedings{GreenPaddon88, title = "{A}n extension of the processor farm using a tree architecture", author= "Green, S. A. and Paddon, Derek J.", editor= "Askew, Charlie", pages = "53--70", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "For problems that require a small database a processor farm model was proposed by May and Sheppard, and has subsequently had much success. Here, we assume that the database is too large to store completely at each node of the farm and consequently, data must be communicated throughout the network during the execution of a problem. The processor farm model is extended to allow work tasks to be completed when data items not resident locally at a node can be obtained by making a request for data across the network. The farm model is further extended by configuring the system as a tree topology. The extended farm topology is evaluated by using a set of graphics benchmark problems. Benchmark results are given for a tree farm of upto fifteen worker processors." } @InProceedings{OharaIizuka88, title = "{A} preprocessor to augment the description of occam processes for multitransputer machines", author= "Ohara, Hiromi and Iizuka, Hajime", editor= "Askew, Charlie", pages = "71--80", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "This paper describes a preprocessor which is designed to make the description of parallel processes of Occam easier. It takes a source program written in ordinary Occam language and a description of the configuration of the hardware on which it is intended to run. The programmer need not consider the particular hardware structure. The preprocessor assigns each process to an appropriate processor and produces the Occam program with process-to-processor allocation statements. Design philosophy, implementation details and some results are shown." } @InProceedings{QiangTurner88, title = "{R}andomised routing: \"{H}ot potato\" simulations", author= "Qiang, Xu Ming and Turner, Stephen J.", editor= "Askew, Charlie", pages = "81--90", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "In this paper, we describe experiments which simulate communication in a network of processors organised as a hypercube. A stochastic model o\pounds communication has been implemented in which each processor chooses at random another processor in the network with which to communicate. Deterministic and randomized routing algorithms are compared with respect to both the time taken for packets to reach their destinations and the space required for packet queues. A mixed strategy is discussed and evaluated which combines some of the advantages of each method. Questions of fault tolerance are also discussed and possible solutions presented." } @InProceedings{LauShea88, title = "{M}apping a process network onto a processor network", author= "Lau, Francis C. M. and Shea, K. M.", editor= "Askew, Charlie", pages = "91--100", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "This paper addresses the problem of mapping an Occam program onto a transputer network. This mapping is essentially a graph embedding (or related) problem: i.e., find a function f: N -\> \{ 1, 2.....\textbar M \textbar\} such that certain performance criteria would be satisfied, where N is the set of processes in the Occam program (the graph) and M is the set of processors in the transputer network. Depending on the complexity of the graph as well as the target transputer network, many of these problems are NP-complete [1,2]. This paper addresses not the mapping algorithm and how it may achieve optimality, which is a policy matter, but the mechanism of mapping - that is, given a mapping algorithm, what exactly do we do to transform the program into an equivalent program that is ready to be downloaded onto the transputer network. Our answer is a precompiler which we have successfully implemented. We discuss several important problems that occurred in our construction of the mapping procedure, and briefly describe the actual implementation of the precompiler." } @InProceedings{JonesMurta88, title = "{S}upport for occam channels via dynamic switching in multi-transputer machines", author= "Jones, Peter and Murta, Alan", editor= "Askew, Charlie", pages = "101--112", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "The authors are motivated by the disparity between the arbitrarily large degree of inter-process connectivity allowed in the occam model of computation (by means of occam channels) and the implementation of that model on the Inmos transputer (under the familiar four links per processor constraint). A communication technique has been developed and implemented on the ParSiFal machine which addresses this problem. The method involves a novel use of switching hardware. In normal use, links between transputers in a variable topology array such as the ParSiFal machine are arranged using switching hardware to form a static network before the application is loaded. This study explores the run-time reconfiguration of the switch network under the direction of transputers executing user code, by means of a request-resource / relinquish-resource protocol." } @InProceedings{Renterghe88, title = "{T}he computing tower: {A} supercomputer for real- time simulation of continuous systems", author= "Renterghem, Patrick van", editor= "Askew, Charlie", pages = "113--124", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "Computer simulation of systems (e.g. magnetic fusion, nuclear power plants, weather forecasting, ...) will have a strong impact on theoretical and experimental research in the future, because experiments on real systems are impossible due to the danger, the cost or the duration of the experiment. Computer simulation of a system is therefore an attractive alternative. Generally, large and complicated systems are simulated, so this requires an enormous amount of computing power. In this paper, we describe the possibility to use a home-built multitransputersystem, The Computing Tower, for system simulation and methods to implement a block-structured simulation language on this system the most efficient way." } @InProceedings{SinclairKelly88, title = "{T}he application of transputers and occam to an industrial energy management system", author= "Sinclair, Andy and Kelly, Paul", editor= "Askew, Charlie", pages = "125--134", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "The work described here is part of a larger project to provide a knowledge-based decision support system to offer advice on the control and utilisation of energy within a large integrated steel works. It is concerned with the electricity power generation subsystem of the steelworks. The aim of this work is to produce a decision support system that will give advice on the steam distribution required to maximise the power output of three turbines when viewed as a system. This paper is concerned with the practical details of implementing such a system in an industrial environment" } @InProceedings{Skillicor88, title = "{F}ast prototyping of architectural designs using transputers", author= "Skillicorn, David B.", editor= "Askew, Charlie", pages = "135--138", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "The existence of a processor with on-board communication facilities, such as the transputer, makes it possible to prototype new hardware designs by emulating their functional units on networks of transputers. This gives better information about performance and appearance than simulation and can be considerably easier to build. It also permits software to be built and executed with performance that approximates the final system-hence, software prototyping is also possible. We describe our experiences with two different systems: an object-based vision system and an implementation of the functional language Lucid." } @InProceedings{StephensoBoudillet88, title = "{GECKO}: {A} graphical tool for the modelling and manipulation of occam software and transputer hardware topologies", author= "Stephenson, Marc and Boudillet, Olivier", editor= "Askew, Charlie", pages = "139--144", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "This paper outlines some of the work undertaken at the Polytechnic of Central London (PCL), within the framework of the Alvey supported Parsifal project. The aim of this work is to help the user with the problems of: conceptualising, designing, fine tunning and configuring occam applications." } @InProceedings{TurnerBeton88, title = "{A} state-of-the-art radar pulse deiterleaver", author= "Turner, S. P. and Beton, Rick D. and Upstill, C.", editor= "Askew, Charlie", pages = "145--152", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "This paper discusses the conversion and development of a serial implementation of a state-of-the-art radar deinterleaving algorithm into a full-scale parallel implementation using occam2 and the transputer." } @InProceedings{DewHolliman88, title = "{T}echniques for rendering solid objects on a processor farm", author= "Dew, Peter M. and Holliman, Nick and Morris, David and Pennington, Alan de", editor= "Askew, Charlie", pages = "153--168", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "Collaborative research by Leeds University and the IBM UK Scientific Centre has resulted in an experimental parallel solid modeller called MISTRAL, based on the Constructive Solid Geometry (CSG) representation of solid objects. This paper gives an overview of the CSG rendering algorithms implemented in MISTRAL, a description of the MISTRAL modeller itself, and describes how several different kinds of parallelism may be exploited using a processor farm. It concludes by discussing some of the issues involved in writing complex parallel programs in OCCAM2." } @InProceedings{CarmichaeHewson88, title = "{A} prototype simulator output movie system based on parallel processing technology", author= "Carmichael, N. and Hewson, D. and Vorst, J. van der", editor= "Askew, Charlie", pages = "169--175", booktitle= "{OUG}-9: {O}ccam and the {T}ransputer -- {R}esearch and {A}pplications", isbn= "90 5199 010 3", year= "1988", month= "sep", abstract= "New parallel processing technologies potentially offer immense computing power at a very reasonable price. However it is not yet clear how best this potential may be realised for the large class of applications of concern to the Shell computing community. Shell U.K. (Expro) Ltd., as one of that company's ninth licensing round initiatives, decided to purchase a parallel processing machine (a member of the \"computing surface\" range from Meiko Ltd.,a Bristol ,U.K., based company). In order to test the abilities of the machine and its suppliers, dynamic \"movie style\" display of oil or gas reservoir simulator output (ie. changing fluid distributions within the reservoir) was chosen as an application example. The presentation will give a brief description of the application and of how it is placed on the machine. These devices are now being routinely used by reservoir engineers.Operational usage of the system will be discussed (a video of an interactive session will be available) and some more general remarks about the placement of such technology within an extensive heterogeneous computing environment will be made." } @InProceedings{Capon89, title = "{E}xperiments in algorithmic parallelism", author= "Capon, Peter C.", editor= "Bakkers, Andr\`{e} W. P.", pages = "1--14", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{EudesMenneteau89, title = "{PDS}: {A}dvanced program developement system for transputer based machines", author= "Eudes, J. and Menneteau, F. and Mugwaneza, L. and Muntean, Traian", editor= "Bakkers, Andr\`{e} W. P.", pages = "15--28", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{KerridgeWright89, title = "abstracts data types and occam", author= "Kerridge, Jon and Wright, Sue and Oates, Richard J.", editor= "Bakkers, Andr\`{e} W. P.", pages = "29--45", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{CrollManson89, title = "{C}onfiguration tools for a transputer workstation", author= "Croll, Peter R. and Manson, Gordon A.", editor= "Bakkers, Andr\`{e} W. P.", pages = "46--58", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{CaiTurner89, title = "{H}ighly transparent monitoring of parallel systems using \"logical clocks\"", author= "Cai, Wentong and Turner, Stephen J.", editor= "Bakkers, Andr\`{e} W. P.", pages = "59--70", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{LangenkamElgershui89, title = "{A} transputer based visual system", author= "Langenkamp, A. A. J. and Elgershuizen, P. M. and Huiskamp, W. and Lieshout, P. L. J. van", editor= "Bakkers, Andr\`{e} W. P.", pages = "71--81", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{HuiskampElgerhuiz89, title = "{V}isualization of 3{D} emperical data: {T}he {VOXEL} processor", author= "Huiskamp, W. and Elgerhuizen, P. M. and Langenkamp, A. A. J. and Lieshout, P. L. J. van", editor= "Bakkers, Andr\`{e} W. P.", pages = "82--94", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{BrownRygol89, title = "{M}arvin -- {M}ultiprocessor {A}rchitecture for vision", author= "Brown, Chris R. and Rygol, Michael", editor= "Bakkers, Andr\`{e} W. P.", pages = "95--107", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{AdmiraalCarmichae89, title = "{M}emory managers for transputing networks", author= "Admiraal, J. C. and Carmichael, N.", editor= "Bakkers, Andr\`{e} W. P.", pages = "108--113", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{BriatFavre89, title = "{PARX}: {A} parallel operating system for transputer based machines", author= "Briat, J. and Favre, M. and Fort, D. and Gonzalez-Valenzuela, N. and Langue, Y. and Muntean, Traian and Waille, Ph.", editor= "Bakkers, Andr\`{e} W. P.", pages = "114--142", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{RoebbersVlot89, title = "{A} communication processor on the transputer", author= "Roebbers, Herman and Vlot, Marnix", editor= "Bakkers, Andr\`{e} W. P.", pages = "143--151", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{Peel89, title = "{I}ssues raised while implementing a layered protocol using occam and the transputer", author= "Peel, Roger M. A.", editor= "Bakkers, Andr\`{e} W. P.", pages = "152--164", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{Heaps89, title = "{A}n occam-2 implementation of higher-level network protocols: {A} case study in interfacing a multi-user multi-transputer system to a local area network", author= "Heaps, Mark", editor= "Bakkers, Andr\`{e} W. P.", pages = "165--177", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{BaudeCarre89, title = "{T}opologies for large transputer networks: {T}heoretical aspects and experimental approach", author= "Baude, Francoise and Carre, Francoise and Clere, Pascal and Naquet, Guy Vidal-", editor= "Bakkers, Andr\`{e} W. P.", pages = "178--197", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{Welch89a, title = "{TRANSNET} -- {A} transputer-based communications service", author= "Welch, Peter H.", editor= "Bakkers, Andr\`{e} W. P.", pages = "198--212", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{DjahanguiGeffroy89, title = "{U}se of occam for the validation of distributed discrete event driven simulation", author= "Djahanguir, A. H. and Geffroy, J. C.", editor= "Bakkers, Andr\`{e} W. P.", pages = "213--221", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{Nevison89, title = "{D}iscrete event simulation using occam", author= "Nevison, Christopher H.", editor= "Bakkers, Andr\`{e} W. P.", pages = "222--230", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{Cosnuau89, title = "{A} structural dynamics problem on a network of transputers", author= "Cosnuau, A.", editor= "Bakkers, Andr\`{e} W. P.", pages = "231--255", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{Renterghe89, title = "{A}pplicability of a 16-node transputer array without external memory", author= "Renterghem, Patrick van", editor= "Bakkers, Andr\`{e} W. P.", pages = "256--263", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{BalboniGiandonat89, title = "{PIPES}: {A} transputer-based parallel architecture for {AI} real time applications", author= "Balboni, G. P. and Giandonato, G. and Melen, R.", editor= "Bakkers, Andr\`{e} W. P.", pages = "264--279", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{ReehorstWijbrans89, title = "{BIONIVISION} {A} laserscanner with transputers", author= "Reehorst, G. ter and Wijbrans, K. C. J.", editor= "Bakkers, Andr\`{e} W. P.", pages = "280--288", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{VermeulenBoterenbr89, title = "{A} novel architecture for data-aquisition and on-line analysis in high-energy physiscs experimentation", author= "Vermeulen, J. C. and Boterenbrood, H. and Goble, S. C. and Jong, S. J. de and Kieft, G. N. M. and Uijterwall, H. A. J. R. and Wiggers, L. W. and Waard, A. J. de", editor= "Bakkers, Andr\`{e} W. P.", pages = "289--295", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{StringerWaring89, title = "{T}ransputer based database organisation -- an example protien database implemented using pipeline and hypercube configurations", author= "Stringer, K. S. and Waring, L. C.", editor= "Bakkers, Andr\`{e} W. P.", pages = "296--300", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{BuitenwerDam89, title = "{A}n operational pattern recognition system on transputers", author= "Buitenwerf, E. and Dam, J. R. van and Nieuwenhuis, L. J. M.", editor= "Bakkers, Andr\`{e} W. P.", pages = "301--309", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{Welch89b, title = "{G}raceful termination -- graceful resetting", author= "Welch, Peter H.", editor= "Bakkers, Andr\`{e} W. P.", pages = "310--317", booktitle= "{OUG}-10: {A}pplying {T}ransputer {B}ased {P}arallel {M}achines", year= "1989", } @InProceedings{VerhulstLauwerein89, title = "{TROS}: {A} {R}eal {T}ime {K}ernel for a {F}ault-{T}olerant {M}ulti-{P}rocessor {C}omputer {B}ased on {A}rgument {F}low", author= "Verhulst, Eric and Lauwereins, R. and Cuyvers, R. and Peperstraete, J.", editor= "Wexler, J.", pages = "1--13", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "The design and realisation of a fault tolerant load balancing real time kernel for a multi-transputer system is considered. The system will be able to recover from software as well as from hardware failures. This is made possible by applying the argument flow program organisation. Argument flow programs are a mixture of normal control flow at the lowest level and of data flow at the higher levels. Hence, load balancing can be executed automatically.In the next part, the architecture of the runtime kernel and the use of argument flow is considered." } @InProceedings{MillotVautherin89, title = "{D}ynamicity through {O}ccam and {TDS}", author= "Millot, D. and Vautherin, J.", editor= "Wexler, J.", pages = "14--22", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "A parallel program running on a parallel machine involves a logical network of processes and a physical network of processors. When both networks are known at design time, a static mapping of the logical network on the physical one can take place. Dynamicity arises when one of the networks is not entirely determined before execution starts. This can happen for instance when the logical network involves dynamic creation of processes, or when the physical topology cannot be defined at design time (this is the case in a multi-user context, as the configuration a user gets is affected by the other users' computations, or when the programmer wants to develop a generic program that can be executed on any physical topology).When using Occam to design a network of processes that has to be mapped on transputers, things have to be decided before execution starts :- the network of processes should be composed of an explicitly bounded number of processes due to the fact that, unlike CSP, Occam does not allow recursion,- the topology of the transputer network should be known, for processes are explicitly mapped onto processors. One has to investigate the physical topology in order to write the configuration statements, and a change in the topology entails modifications in these statements. An application is therefore dedicated to a configuration. It would nevertheless be very attractive to design software that could run on an unidentified topology, trying to make the best of available processors. Such software has to realize a dynamic placement and therefore includes a phase supposed to investigate the configuration, load the different codes on the appropriate processors, then dynamically start their execution.Our aim is to develop suitable tools to write that kind of application. As a first step, we investigate the potentiality of Occam and TDS in this field." } @InProceedings{CroweHasson89, title = "{A} {CASE} {T}ool for {D}esigning {D}eadlock-{F}ree {OCCAM} {P}rograms", author= "Crowe, W. D. and Hasson, R. and Strain-Clark, P. E. D.", editor= "Wexler, J.", pages = "23--35", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "This paper describes a Computer Aided Software Engineering (CASE) tool aimed at producing correct OCCAM programs. We use variants of CSP and OCCAM2 notation , a strong form of protocols on channels and standard forms for processes in order to lessen the combinatorial problems which arise while investigating deadlock. The CASE tool is graphical in nature and two versions of it are currently being implemented. One version is written in PROLOG and runs on Mackintosh computers while the another is written in a mixture of PROLOG and C and runs on Sun workstations." } @InProceedings{JoosenVerbaeten89, title = "{A} {D}eadlock {D}etection {T}ool for {O}ccam", author= "Joosen, Wouter and Verbaeten, Pierre", editor= "Wexler, J.", pages = "36--54", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "A problem that occurs frequently during the development of parallel programs is deadlock.In the domain of transputer technology (and of parallel computing in general) run time debugging software still is a problem. This increases the value of verification tools based on static analysis, even if the functionality is sometimes limited.In this paper we present our approach to static analysis. The analyzer reduces an occam program to the relevant actions hi the context of this problem (communication, possibly through guards: PAR constructions...), and subsequently examines the program, reporting possible problems that could occur during real execution. The tool goes beyond the purpose of detecting deadlocks only: other infinite wait situations are also reported." } @InProceedings{DavyDew89, title = "{T}owards a {S}oftware {A}rchitecture for {S}olid {M}odelling {S}ystems on {P}rocessor {N}etworks", author= "Davy, J. R. and Dew, Peter M. and Holliman, Nick and Mallon, D.P. and Pennington, Alan de", editor= "Wexler, J.", pages = "55--68", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "Our experience programming transputer-based systems for the visualisation of solid models has highlighted the need to separate the issues of program decomposition, task and data scheduling and low level communication. In this paper we propose a three level software architecture for multicomputer to support geometrical computations. The architecture takes into account current and emerging hardware to support communications and scheduling." } @InProceedings{XuTurner89, title = "{A}n {I}rregular {D}istributed {S}imulation {P}roblem with a {D}ynamic {L}ogical {P}rocess {S}tructure", author= "Xu, Ming Q. and Turner, Stephen J. and Pin, Nie", editor= "Wexler, J.", pages = "69--79", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "This paper describes a modeling problem which exhibits many features of more advanced distributed simulation: the simulation of biological population dynamics — \"Host-parasite interactions\". It is a dynamical simulation in which certain species of hosts and parasites live, move randomly, breed and (as far as parasites are concerned) infect the hosts in a two-dimensional ocean. Apart from its relevance to realistic biological studies, this simulation program does serve to illustrate many crucial ideas in dynamic time and event driven simulations. Our approach to the parallel implementation of this simulation requires the simulation objects (in this case, hosts and parasites) to be organised as LPs (Logical Processes) which can be created and destroyed dynamically at run time to reflect the birth/death of these simulation objects. In addition to their dynamical features, LPs must preserve the temporal aspects of the real world system. In other words, a global ordering of LP interactions (referred to here as actions) must be ensured to preserve the causality principle [1]. Also, the computational load can become imbalanced because the real world system or rather, the distribution of hosts and parasites in the underlying space is changing with time. The methods for counteracting this dynamical load imbalance will be described.We shall begin with the specification of the dynamical rules governing the behaviour of the hosts and parasites during the simulation." } @InProceedings{ElGiarHopkins89, title = "{A} {G}enerally {C}onfigurable {M}ultigrid {I}mplementation for {T}ransputer {N}etworks", author= "El-Giar, Osama and Hopkins, Tim", editor= "Wexler, J.", pages = "80--88", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "This paper describes the performance of a multigrid method implemented on a transputer-based architecture. We show that the combination of fast floating-point hardware, local memory and fast communication links between processors provide an excellent environment for the parallel implementation of multigrid algorithms. The gain in efficiency obtained by increasing the number of processors is shown to be nearly linear and comparisons are made with published figures for a parallel multigrid Poisson solver on an Intel iPSC 32-node hypercube." } @InProceedings{Shen89, title = "{S}elf-{A}djusting {M}apping: {A} {H}euristic {M}apping {A}lgorithm for {M}apping {P}arallel {P}rograms onto {T}ransputer {N}etworks", author= "Shen, Hong", editor= "Wexler, J.", pages = "89--98", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "The problem of mapping parallel programs onto multiprocessor system is a fundmental problem of great significance in parallel processing, but it is NP-hard in general. In this paper we propose a fast heuristic algorithm to solve this problem on transputer networks. Our mapping algorithm consists of three modules: grouping, placement and routing, where grouping groups processes in the program into tasks which can be placed onto processors in the transputer network in a way of one-to-one, placement places the grouped tasks onto the processors and routing produces physical communication paths for logical communication requirements. The three modules work co-operatively in a way of progressive self-adjusting, and finally produce a satisfactory solution for the mapping problem." } @InProceedings{CandlinLuo89, title = "{T}he {I}nvestigation of {C}ommunications {P}atterns in {O}ccam {P}rograms", author= "Candlin, Rosemary and Luo, Qiangyi and Skilling, Neil", editor= "Wexler, J.", pages = "99--108", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "The performance of a concurrent computation running on a multiprocessor system may depend critically on the way in which the program is decomposed and placed on the machine. In order to exploit the potential of parallel processors, it is necessary to balance the advantage of spreading the computational load as thinly as possible over the processors, with the disadvantage that increased communication delays may slow down the computation. In general, there is no satisfactory theoretical model of the complex interaction between the amount of computation carried out by the individual processes, their frequency of communication and the topology of the underlying machine. For many programs, it is not easy to see in advance how computation will interact with communication, and placement strategies which depend only on a static analysis of the program structure may not be sufficient. The work described here is an attempt to provide useful tools for the occam programmer which can be used to investigate communications patterns, and to explore different configurations rapidly.We think that this approach will be particularly valuable for programs which can be decomposed in a natural way into a fairly large number of top-level occam processes, so that the preliminary parallelization arises out of the nature of the application, and the main problem is to place these processes on a smaller number of physical processors. This is often the case for programs which model real-time systems, and we have taken as an example an application from chemical engineering. In programs like this, there is natural concurrency in the real world which can be easily represented in terms of occam processes. At the moment, we do not attempt to extract parallelism automatically, or handle shared data, though there are a number of systems that have tackled these problems (see, for example [1] and [2]). Our main aim at this stage is to provide a programmer with profiling tools, and see to what extent they can help to produce an efficient implementation of the program." } @InProceedings{ChalmersPaddon89, title = "{A} {S}ystem {C}onfiguration for very large {D}atabase {P}roblems [{E}xtended {A}bstract]", author= "Chalmers, Alan G. and Paddon, Derek J.", editor= "Wexler, J.", pages = "109--112", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "In the past many applications have ensured success by restricting the size of the application, or by increasing the number of processors and memory size to enable the full database to be supported. Here, we specify that databases of arbitrary sizes should be supported and not be restricted by the memory size of individual processors.The ability to cope with very large databases was easily achieved in many of the early MIMD systems by using a shared memory model. However, the transputer and Occam process model restricts us from using this approach, instead we may share data [7].Unlike shared memory systems, we cannot globally address data in a message passing system. However, if data items carry unique identifiers, we can share single or multiple copies of those data items across many processors. Indeed, adopting this system of shared data reference allows us the same memory flexibility for read-only data, as would be obtained in a shared memory system, without the bus contention problems associated with that class of processor. In its degenerate form, a shared data system has only private data, which is never available at any other processor. The simple processor farm of May and Shepherd [8] is a typical example, where data and tasks are assigned to specific processors without the need for data to migrate to other processors. In many applications, such as the ray tracing of very complex computer images, a static allocation of data is inappropriate. Here, a database is managed at each node in a similare manner to a cache memory. Shared data systems for a tree based system architecture, and for very large data base problems are described by Green, Paddon and Lewis [7], and Green and Paddon [3, 4, 5, 6], where these systems were applied to image synthesis using the ray tracing method." } @InProceedings{JongStiles89, title = "{A} {C}omparison of {P}arallel {I}mplementations of {F}lux {C}orrected {T}ransport {C}odes", author= "Jong, Jing-ming and Stiles, G. S.", editor= "Wexler, J.", pages = "113--128", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "We present the results of comparing implementations of the Flux Corrected Transport (FCT) method on transputers and several other parallel and sequential machines. FCT is a finite difference scheme used to solve fluid dynamics problem which may involve steep gradients or shocks; it has proven useful for both one- and two-dimensional problems in plasma physics, atmospheric sciences, and detonation studies. The method vectorizes very well and hence runs quickly on supercomputers. Since the calculations at each point involve only a small number of neighbors, the method can also be efficiently implemented on multi-processor systems. We have run one- and two-dimensional problems on Transputers and several other systems, including a VAX 8650, a SUN 4/280, a four-processor Ardent Titan, an eight-processor Alliant FX/8, and a four-processor Silicon Graphics 240GTX. We shall also compare our results to those obtained by Gustafson (1988) on the NCube/ten.If, in the 1-d problem, we consider the speed of a single T800 to be 1.0, the SUN 4/280 ranks at 3.8, the VAX 8650 at 4.0, 8 TSOOs at 7.9, the Silicon Graphics 240GTX at 27.0, the FX/8 at 56.9, and the Titan at 64.4. On the 1-d problem, again taking one T800 to have a speed of 1.0, the SUN comes in at 3.6, 16 NCube nodes at 4.0, the 8650 at 4.3, 8 TSOOs at 7.7, the Titan at 65.3, and the FX/8 at 101.4. The transputer ranks highest if we calculate the cost-effectiveness of the various systems by dividing the relative speed by the approximate cost. If we assume the 8 TSOOs have a cost-effectiveness of 1.0 on the 1-d problem, the Titan is second at 0.52, followed by the 240GTX at 0.17, the FX/8 at 0.094, the SUN at 0.081, and the VAX at 0.021." } @InProceedings{VanhalaKaski89, title = "{S}imulating {N}eural {N}etworks in a {D}istributed environments", author= "Vanhala, Jukka and Kaski, Kimmo", editor= "Wexler, J.", pages = "129--141", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "Two artificial neural network models are compared. They are the Hopfleld neural network model and the Sparse Distributed Memory model. Distributed algorithms for both of them are designed and implemented. The run time characteristics of the algorithms are analyzed theoretically and tested in practise. The storage capacities of the networks are compared. Implementations are done using a distributed multiprocessor system." } @InProceedings{KuiperDijkstra89, title = "{A}ttribute {E}valuation on a {N}etwork of {T}ransputers", author= "Kuiper, Matthijs F. and Dijkstra, Atze", editor= "Wexler, J.", pages = "142--149", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "The structure and construction of parallel compilers that run on a network of transputers is discussed. The compilers are automatically generated from an attribute grammar definition of the source language. This work illustrates that parallelism can also be used in non-numeric computations. As part of implementing parallel compilers we have constructed a general message passing kernel for transputers. This kernel can also be used in other applications. First results indicate that parallel compiling on transputers is feasible and that 4 to 16 transputers can be used in parallel compilers." } @InProceedings{Chalmers89, title = "{A}n {O}bject {O}riented {S}tyle for the {C}omputing {S}urface", author= "Chalmers, Matthew", editor= "Wexler, J.", pages = "150--158", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "During the development of a ray tracer on a Meiko Computing Surface, problems with poor flexibility of configuration and slow software development were encountered. In order to overcome these difficulties, and in order to facilitate experimental programming on the Meiko, a system to support an object-oriented style for Occam' programming was developed. The aim was to create a set of library modules that would allow user code to be quickly developed and integrated into existing programs, to support better debugging facilities than were currently available, and to allow program design to be based on a more flexible and dynamic model of concurrency than the process modelThis system has been rewritten in order to introduce new features and to take advantage of the availability of C. The new system is described, with the emphasis on how experience with the system influenced its redesign, and on the details of newer elements such as the improved facilities for monitoring and debugging." } @InProceedings{Adamo89, title = "{C}\_{NET} {A} {C}++ {B}ased {L}anguage {F}or {D}istributed {A}nd {R}eal {T}ime {P}rogramming", author= "Adamo, Jean\_Marc", editor= "Wexler, J.", pages = "159--170", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "C\_NET is a high level C++ based language devoted to multiprocessor architecture programming. It has been designed so as to offer concepts of object-oriented programming, communicating processes and exception handling, all within the same language. The purpose of this paper is to describe how merging these concepts into C\_NET has been organized. Consequently, the paper is divided into three parts. The first is concerned with discussing the different roles that the notions of class object and process are intended to play within the language. It is argued that these roles are in fact orthogonal, since the first two notions are primarily concerned with data structuring, encapsulation and inheritance, whereas the last one is mainly concerned with threads of control and synchronization. The second part is devoted to describing the exception handling system, which makes it possible to derive process preemption mecanisms by combining exceptions with parallelism. Process preemption raises some atomicity problems, which are discussed at the end of the second part. Finally the last part provides information on the state of the project development and on future perspectives." } @InProceedings{SmithWelch89, title = "{R}eal-{T}ime {T}ransputer {M}odels of a {L}ow-{L}evel {P}rimate {V}ision", author= "Smith, Andrew B. and Welch, Peter H.", editor= "Wexler, J.", pages = "171--181", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "It is believed from psychophysical experiments that human vision operates in two stages: a parallel preattentive stage which extracts simple visual features and a sequential attentive stage in which local features of the scene are analysed. A processing model of the early preattentive stage has been developed. This model is computationly intensive making it unsuitable for implementation on sequential computer architectures. The development of a real-time parallel transputer vision system based on this processing model is explained.The current implementation performs edge filtering over four separate resolution/field-of-view levels from 256 by 256 monochrome images. Eight T800-20 transputers deliver over 40 frames per second. The software — hardware architecture is scalable so as to support higher resolutions and additional features (such as auto-focusing, movement detection, and tracking) through the addition of extra transputers, whilst maintaining at least camera frame rates." } @InProceedings{Wong F.S.Seng89, title = "{ICR}: {A} {T}ransputer-{B}ased {I}ntelligent {C}haracter {R}eader", author= "Wong F.S., Francis and Seng, Koh Liang", editor= "Wexler, J.", pages = "182--189", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "This paper presents the design of a transputer-based Intelligent Character Reader (ICR). The implementation of the ICR is based on two algorithms. The Filtered Projection Technique (FPT) is a modification of the conventional projection profile techniques - it filters out and projects the structural information of a visual pattern into several components along several directions, such that some salient structural information can be extracted from these components easily. The Structural Complexity Index (SCI) algorithm determines the structural complexity of a visual pattern and produces the corresponding index to indicate its relative complexity. The ICR is capable of recognizing printed characters, such as the Chinese characters printedon the local newspapers, accurately, despite the presence of noise due to printing, scanning, slight font variations and misalignment. The ICR prototype is implemented on Occam II and C, and run on an array of transputers." } @InProceedings{CosnuauDesbois89, title = "{S}olving {P}artial {D}ifferential equations via {C}ellular {A}utomata: {A} {B}inary and {S}tatistical {A}pproach", author= "Cosnuau, A. and Desbois, F. and Morchoisne, Y.", editor= "Wexler, J.", pages = "190--195", booktitle= "{OUG}-11: {D}eveloping {T}ransputer {A}pplications", isbn= "90 5199 020 0", year= "1989", month= "sep", abstract= "Cellular automata are used to solve partial differential equations (PDE) discretized on a non-regular grid. Boolean representations of real numbers are introduced and logical intrinsic computer functions are used to achieve algebraic operations of the finite difference algorithm. In a first step the method is briefly explained and then implementation is described. For diffusion or convection problems, preliminary computations on a Cray-XMP18 and on a network of T800 Transputers were done." } @InProceedings{Cole90, title = "\"{D}o it yourself\" shared memory instruction sets in occam", author= "Cole, M. I.", editor= "Turner, Stephen J.", pages = "1--10", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "We present an approach to the task of \"civilising\" distributed memory architectures, in which the programmer is presented with a shared memory computational model, augmented with application specific shared memory instructions. We note that this model can ease the dimculty of designing and justifying algorithms, and that occam provides a suitable medium for its distributed implementation." } @InProceedings{GallizziCannataro90, title = "{A} deadlock-free communication system for a transputer network", author= "Gallizzi, E. and Cannataro, M. and Spezzano, G. and Talia, Domenico", editor= "Turner, Stephen J.", pages = "11--21", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "The design and an implementation overview of a communication system which provides deadlock-free operation in a tightly coupled message-passing multicomputer system is presented. Furthermore, routing simulation results for a 4x 10 computer array are described. The communication system has many positive characteristics including provable deadlock-freedom, guaranteed message arrival, and automatic local congestion reduction. This system has been implemented in Occam 2 on a network of Transputers." } @InProceedings{Lee90, title = "{A} parallel semantic net engine and its application to data modeling", author= "Lee, Y. N.", editor= "Turner, Stephen J.", pages = "22--33", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "Although the use of Fourth Generation Languages has greatly increased the efficiency of the system development process, the validation of system specifications is still considered to be complicated and time-consuming. A \"Parallel Semantic Net Engine (PSNE)\" has been developed as part of a research project carried out in the Department of Computer Science at Exeter University to investigate into this area. This project was initiated by a software house, Softwright Systems Ltd., which has made extensive use of Fourth Generation Languages.The purpose of this project was to construct an engine which would be fast enough to validate a system specification in realtime, giving immediate feedback to the user when constraints are violated. The areas of knowledge representation and parallel processing were explored. A Parallel Semantic Net Engine was proposed in order to take advantage of the richness of semantic networks in representing complicated relationships and the power of transputers in speeding up the processing. Figure 1 shows the general model of the PSNE.The model is distributed over of a host PC and a network of transputers. On the PC side, there are the application generator, generated applications and a standard relational database which stores the application data. A front-end would be developed running on the PC to act as the gateway for data passing between the PC and the transputers." } @InProceedings{GrayPoole90, title = "{P}arallel-{DB}4{GL}: {A}n implementation of a self-describing object-oriented database application generator on transputer hardware", author= "Gray, J. P. and Poole, F.", editor= "Turner, Stephen J.", pages = "34--49", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "In general, this research project is concerned with the use of transputer based parallel hardware to improve the performance of database software. Specifically, the aim of the project is the enhancement of a database application generation system, Data Base 4th Generation Language (DB4GL), by converting the DB4GL generated database applications to run on transputer networks.A prototype Parallel-DB4GL (P-DB4GL) system has been designed and implemented. In P-DB4GL, the application code modules generated by DB4GL have been redesigned as concurrent Occam [InmosSSb] processes. A number of DB4GL data access code modules (entity handlers and schema handlers) have been implemented, and used to construct simple database applications. Additionally, simulations of DB4GL modules not yet implemented (for example, User Processes and Filer Processes) have been written, and used in the testing of these simple database applications.The P-DB4GL applications have been test run on a number of different transputer configurations. Results have been obtained which show significant performance improvements when applications are run on small (one to four processors) transputer networks. The principal benefit comes from the ability to perform multiple concurrent disc input/ouput, thus increasing disc throughput, and hence improving overall application performance. Development and testing of the prototype P-DB4GL has confirmed the feasibility of using transputer based parallel hardware for DB4GL applications. It has indicated how and where significant performance gains can be obtained in the full working version of P-DB4GL, currently under development." } @InProceedings{CrambUpstill90, title = "{U}sing {T}ransputers to {S}imulate {O}ptoelectronic {C}omputers", author= "Cramb, I. and Upstill, C.", editor= "Turner, Stephen J.", pages = "50--59", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "In this paper we present the results of our simulation and study of an optoelectronic SIMD architecture on a medium sized transputer array (18 processors). The particular optoelectronic architecture we have simulated is a Binary Image Algebra (BIA) Processor of considerable computational power -processing data at rates well in excess of those currently achievable using electronic computers. Considering the inherent parallelism of such an architecture, along with the need for very large amounts of data processing in order to perform realistic simulation, the simulator was implemented in occam on a transputer array. The process model of computing adopted by occam is also most appropriate to the optoelectronic architecture which we have designed because of its modularity: we have been able to design process structures which have the same topology as the processing modules in our architecture. In the optoelectronic architecture, data are transmitted to a set of processing modules, one of which is chosen to perform a particular operation; the data pass through that module and are are transformed as they do so; in our simulator the processing takes place in a very similar way: data are transmitted from the controller to the farm; a particular process/module of code is called, and the data are passed through it, using occam channels, and are processed as they do so.We begin with a description of BIA itself. The core of the paper is a description of the logical architecture we have adopted; we include an account of a method for reducing the limiting effect of the transputer link bandwidth on the performance of farming computationally undemanding tasks. The paper is concluded with a brief description of our design for an optoelectronic SIMD architecture." } @InProceedings{MacfarlanEast90, title = "{A}n investigation of several parallel genetic algorithms", author= "Macfarlane, Donald and East, Ian R.", editor= "Turner, Stephen J.", pages = "60--67", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "Genetic algorithms (GAs) are important search and optimisation techniques with a wide range of applications. The demand for GAs with fast response times has led to the investigation of parallel implementations. Three parallel GAs are designed, implemented on a transputer network, and compared over several benchmark problems. It is believed that a fine-grained approach to parallel genetic algorithms is the most promising." } @InProceedings{KumarBasu90, title = "{A}n efficient global convergence detection scheme for parallel algorithms on transputer network", author= "Kumar, K. G. and Basu, A. and Srinivas, S. and Paulraj, A.", editor= "Turner, Stephen J.", pages = "68--79", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "The paper discusses a novel and efficient scheme for the detection of global convergence in parallel iterative algorithms. Convergence information is maintained as processes which execute concurrently with computations of the algorithm and exploit the asynchrony inherent in the progress of most executions of such algorithms towards global convergence. The scheme treats messages signalling convergence as having a lower priority as compared to those signalling non-convergence. It minimizes the waiting time at the end of iterations for convergence related communications. Analytical results indicate that the global convergence detection scheme proposed in this paper is faster than the methods proposed earlier [3]. The scheme is particularly suited for implementation on Transputer based parallel machines. An OCCAM implementation of the scheme on a torus of Transputers is described together with a method for experimental verification of the analytical results." } @InProceedings{Jacquemin90, title = "{I}mplementing {R}ecursion on a {D}ouble {R}ing {T}opology", author= "Jacquemin, J. L.", editor= "Turner, Stephen J.", pages = "80--84", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "The widespread recursion problems can become much more time-efficient if they are processed with the help of a parallel algorithm. The authors have shown that transputer networks are able to bring an outstanding efficiency in the case of a double ring topology. A special care is given to load balancing, performance enhancement techniques and optimization of interprocessor communication.The method presented here can be implemented on any number of processors by merely changing a single parameter: The number of processors involved." } @InProceedings{CunhaMedeiros90, title = "{A} {D}istributed {L}ogic {P}rogramming {L}anguage and its {I}mplementation on {T}ransputer {N}etworks", author= "Cunha, Jos\`{e} A. Cardoso and Medeiros, Pedro A. Duarte and Pereira, Luis M.", editor= "Turner, Stephen J.", pages = "85--96", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "Currently there is a trend towards the development of programming tools and mechanisms for the support of heterogeneous multi-agent systems on paralell computer architectures. This paper presents a contribution to this area, as far as logic programming on a distributed execution environment is concerned. We discuss the main issues on the design and implementation of the logic programming language Delta Prolog [2] [3] [6] [7] [11], extending Prolog with constructs for concurrency and communication. The work described is one of the research components of a project on the development of mechanisms for parallel logic programming support on parallel architectures, currently running in this University [8]." } @InProceedings{SchulzeKr90, title = "{CS}-{P}rolog -- {P}arallel programming in logic with transputers", author= "Schulze-Kremer, Steffen", editor= "Turner, Stephen J.", pages = "97--110", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "This paper describes the parallel features of CS-Prolog, an extension of standard Prolog languages. CS-Prolog employs the local virtual time concept and allows parallel evaluation of several Prolog goals making use of a variable number of transputers on an IBM-AT compatible. Further, written in CS-Prolog a program MolSIM is presented, that can carry out knowledge-based simulation of molecularbiological regulatory processes." } @InProceedings{SarrafanWelch90, title = "{T}ransputer models for a high-performance local area network bridge", author= "Sarrafan, A. M. and Welch, Peter H.", editor= "Turner, Stephen J.", pages = "111--121", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "Bridges interconnecting Local Area Networks can experience heavy loads. Traditional implementations of such devices have typically achieved high throughput rates by implementing the device at low protocol levels, thus keeping the functionality of the device quite simple in nature. For bridges that are required to have a higher degree of intelligence and for gateways between different networking technologies (which must be implemented at higher protocol levels), the problem is to maintain high throughput rates in a processing intensive component This paper describes an expandable and parallel solution to the problem. The methodology is demonstrated in an occam implementation of a Cambridge Ring bridge. The prototype is tested on several different transputer configurations and the results are reported. To put the figures into context, performance figures for an equivalent sequential implementation, currently operational at the University of Kent, are also quoted." } @InProceedings{KaziHockman90, title = "{D}esign of a {H}igh {P}erformance {P}rotocol {A}nalysis system using transputers", author= "Kazi, Sarvajna and Hockman, Robert D.", editor= "Turner, Stephen J.", pages = "122--131", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "The Problem : Managing Enterprise Networks Consisting of LANs and WANs.PCs and workstations are the tools of choice for many-work-group applications. When attached to increasingly large and complex Local Area Networks (LANs), they can efficiently share their own resources and those in diverse distributed servers. Increasingly, enterprises with widely distributed locations are linking these diverse LAN work-groups via a variety of Wide Area Networks (WANs). The resulting heterogeneous networks form a geographically distributed LAN/WAN with a large number and diversity of computing and communication components. ...." } @InProceedings{Peel90, title = "{H}ost-independent access to transputers", author= "Peel, Roger M. A.", editor= "Turner, Stephen J.", pages = "132--137", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "Most Transputer development software is designed to run on Transputer hardware. The most common access mechanism to such facilities uses a Transputer card plugged directly into the expansion bus of a personal computer, workstation or minicomputer. The problem with this scheme is that the host machine must pass all communications to the Transputer, and thus must be involved even if the communication originated on another computer networked to this host. In addition, there is a physical limit to the number of Transputer cards which may be accommodated and individually controlled within each host.In order to support large populations of users economically, the author has developed a Transputer-based Ethernet peripheral which can communicate directly with networked host processors, and supports multiple target Transputers, each running an enhanced version of the standard INMOS Iserver. Each target Transputer is therefore capable of running the Transputer Development System and the standalone Toolkit compilers, as well as user's application programs. In addition, capabilities are provided for reserving clusters of client Transputers for the execution of multi-Transputer applications." } @InProceedings{CalTurner90, title = "{E}xperimental studies of conservative distributed discrete-event simulation on transputer networks", author= "Cal, W. and Turner, Stephen J.", editor= "Turner, Stephen J.", pages = "138--147", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "Computer-based discrete-event simulation has a relatively long history. Traditionally, it has been performed in a sequential manner: the event-list simulation mechanism ([1]) is a typical example. The idea of distributed simulation was proposed by Chandy in 1977 and is now being developed mainly along two directions - the conservative approach (deadlock avoidance ([2]) and deadlock recovery ([3])) and the optimistic approach (time warp ([4])).Distributed simulation explores the potential parallelism inherent in most simulation applications. Each physical process (PP) in the application is simulated by a logical process (LP) in the simulation model. Events in the physical system are simulated by message transmissions between IPs. Since many simulation applications contain a high degree of parallelism, simulation seems to be a natural candidate for parallel processing. But, the causality constraint of the simulation, that is, events simulated by an LP must have a nondecreasing simulation time, is not easily maintained by distributed processing. Many strategies have been proposed: however, experimental studies need to be conducted in order to discover how much speed-up is achieved with a distributed simulation as compared to sequential methods. Previous performance studies by other researchers ([5,6]) have mainly been carried out on shared-memory parallel processors. In this paper, a set of experimental results is presented, designed to evaluate the effectiveness of conservative distributed simulation strategies on message-passing parallel processors such as transputers." } @InProceedings{WoodhamsPrice90, title = "{A} {T}ransputer-based {W}orkstation {A}ccelerator for {O}ptimisation {A}lgorithms", author= "Woodhams, F. W. D. and Price, W. L.", editor= "Turner, Stephen J.", pages = "148--153", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "This paper discusses the design of a transputer-based accelerator for both combinatorial and global optimisation algorithms. Combinatorial optimisation has engineering applications in, for example, placement and routing of VLSI circuits. This type of problem is known to be in the complexity class NP-complete 1. For the solution of these problems some form of random search heuristic is often required. One such heuristic is the simulated annealing algorithm\^{}. This algorithm is usually too slow for the interactive user and is normally run on a mainframe computer." } @InProceedings{YuMuntean90, title = "{O}ccam program synthesis for execution on parallel machines: {T}owards a transformational approach", author= "Yu, Xiaobo and Muntean, Traian", editor= "Turner, Stephen J.", pages = "154--167", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "In this paper, we present a parallel program synthesis system which provides formal, methods and techniques for derivation and correct construction of implementations of occam programs on networks of transputers. The transformation rules are represented by a set of powerful algebraic laws of occam in order to perform the necessary transformation steps towards abstract forms representing models of execution of associated virtual machines.The program synthesis system can be applied to various aspects of parallel programming in a distributed environment, from the communication protocol design and correctness proof of implementation to parallel program construction, program optimisation, mapping strategies etc.Special emphasis is put on the transformation control strategies and guidance combined with information of the machine configuration, in order to achieve program optimisations, increasing parallelism granularity, altering inter-process communication patterns, for efficient execution on the physical parallelism offered by target transputer machines. An example of application of the transformation system to the distributed implementation of global synchronisations is given." } @InProceedings{HofstedeLensink90, title = "{A} {D}ynamic {S}witch for {T}ransputer {L}inks", author= "Hofstede, Jaap and Lensink, Andre", editor= "Turner, Stephen J.", pages = "168--178", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "One of the goals of the Esprit project Pangloss wa" } @InProceedings{TregidgoDownton90, title = "{P}rocessor {F}arm {A}nalysis and {S}imulation for {E}mbedded {P}arallel {P}rocessing {S}ystems", author= "Tregidgo, R. W. S. and Downton, A. C.", editor= "Turner, Stephen J.", pages = "179--189", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "A brief survey of current Parallel Processing literature reveals a large number of highly application specific architectures [1] [2] [3] [4]. The arrival of the Transputer [5] has done little to alleviate this situation, in fact the only constraint on custom architectures seems to be the number of communication links currently supported by the Transputer. The lack of generality in such architectures is expensive and often makes future system expansion difficult. The objective of this paper is to show that by accepting some compromise on performance, general purpose multiprocessor systems can be analytically designed." } @InProceedings{dAciernoPietro90, title = "{A} method for monitoring occam internal channels", author= "d'Acierno, A. and Pietro, Giuseppe de and Villano, Umberto", editor= "Turner, Stephen J.", pages = "190--197", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "In a Transputer environment, where the data exchange and the synchronizations between any two processes are carried out by means of I/O operations, the monitoring of the channels used for implementing the message exchange is of particular interest. In this paper a method is illustrated for monitoring the internal channels of an Occam program. This method introduces little CPU overhead, no additional communication cost, and preserves the synchronization behaviour of the two communicating processes. Its characteristics have been attained by means of a particular monitoring mechanism, based upon a rather unusual use of some Transputer machine language instructions, canonically used to implement guarded communications within the Occam ALT construct." } @InProceedings{EdwardsSillitoe90, title = "{T}he design of a real time three demensional vision system for object idenification", author= "Edwards, Janet and Sillitoe, Ian P. W.", editor= "Turner, Stephen J.", pages = "198--205", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "The paper describes the design and analysis of a transputer based application, written in Occara-2 and implemented on a network of transputers. The system generates volumetric representations of industrial objects in real time from a set of multiple views and forms a testbed for the investigation of various identification techniques to be used within an experimental industrial robotic workcell.The paper outlines the algorithm, its implementation and the efficacy of various design techniques used to increase the response of the system. It also makes recommendations for further work and useful tools to assist in writing efficient Occam code more effectively." } @InProceedings{StavenuitRoebbers90, title = "{C}ontrol of a servo loop for a vision system", author= "Stavenuiter, Tonny and Roebbers, Herman", editor= "Turner, Stephen J.", pages = "206--218", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "Transputers enable the implementation of complex control algorithms for robot systems at high sampling rates. With these new algorithms the need is felt for a better interaction between the robot and its environment Vision is an attractive sensor for the establishment of this interaction. This paper describes the development of a system, in which vision is used to track the tip of a robot link." } @InProceedings{AllenWang90, title = "{A}n application of ultrasonic signal processing in a mixed system of transputers and digital signal processors", author= "Allen, Alastair R. and Wang, Dalan", editor= "Turner, Stephen J.", pages = "219--222", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "A system is described in which a floating-point digital signal processor is incorporated into a transputer array. The resulting combination provides a significant resource which is being used to process ultrasonic echoes to determine surface roughness." } @InProceedings{DimondHassan90, title = "{I}ncremental behavioral simulations on a network of transputers", author= "Dimond, Keith and Hassan, Samir", editor= "Turner, Stephen J.", pages = "223--231", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "Simulation plays an important role in the design process for modern digital and analogue systems. There are many different types of simulators capable of representing the behaviour of the system at a number of different levels of abstraction. Because of its vital importance there is an ever increasing need to enhance the performance of simulators. Enhancements can occur in many different aspects. These may be in the speed of simulation, or in the accuracy of modelling. This paper describes a relatively new enhancement that of incremental operation which has the advantage of allowing the simulator to respond very rapidly to design changes in addition to providing an enhanced rate of simulation.The simulator which is described in this paper operates at the behavioural level. This allows the designer to specify, using suitable code segments descriptions of the behaviour of the functional blocks which make up the design. This approach may be used to model a digital system at the gate level, where signal values correspond to standard logic levels. In addition this mode of simulation has the attraction of being able to model very complex blocks which might very well have inputs and outputs which are most conveniently represented by complex data structures. This simulator is able therefore to model a complete system, some parts represented at this nigh-level of abstraction whilst other parts may be modelled at the lower levels of abstraction where greater detail is required." } @InProceedings{WestCapon90, title = "{A} high level software and environment for transputer based systems", author= "West, Adrian J. and Capon, Peter C.", editor= "Turner, Stephen J.", pages = "232--242", booktitle= "{OUG}-12: {T}ools and {T}echniques for {T}ransputer {A}pplications", isbn= "90 5199 029 4", year= "1990", month= "mar", abstract= "At Manchester we have a rack of Transputers that we use for research into parallel architectures[CGK86,AEK89]. These architectures are investigated by simulation, and some experience of this has already been gained. Currently, simulations are written in occam and drive the rack directly; a coding process that is rather slow, error prone and requires particular knowledge of the Manchester rack.We intend to provide a higher level environment that allows a more rapid and secure development to be achieved. As occam has been found to be a natural and flexible medium for expressing functional simulations, it has been retained in preference to a dedicated simulation language. The tools discussed in this paper are therefore applicable to occam programming generally, and will be used for the development of applications other than simulation." } @InProceedings{TayhBor90, title = "{RT}-{DOS} -- {A} real-time distributed operating system for transputers", author= "Tayh, M. and Bor, M. and Benmaiza, M. and Eskicioglu, M. R.", editor= "Zedan, Hussein S. M.", pages = "1--11", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "This paper describes the design philosophy of a real-time operating system, RT-DOS, and its architecture. RT-DOS is a generic name given to a prototype operating system, which is a fully-distributed, message-based system designed to run on a network of transputers. The main objective of RT-DOS is to provide a dynamically reconfigurable work platform that adapts to dynamic changes in workloads, allows system maintainability and dynamic upgrading, and increases system reliability and availability." } @InProceedings{JonesCha90, title = "{O}n the {F}easibility of {R}un-{T}ime {P}rocess {M}igration in {M}ulti-transputer {M}achines", author= "Jones, Peter and Cha, Hojung", editor= "Zedan, Hussein S. M.", pages = "12--27", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "A number of techniques for the amelioration of message transport costs in networked multiprocessor machines have been explored. Among these are established approaches such as (i) software implementation of message through routing systems, (ii) run-time installation of point-to-point physical connections between otherwise remote processors and (iii) pre-load manipulation of the machine topology to bring communicating processors close together. A further technique is proposed. This technique requires the run-time transport of processes, between processors, in order to reduce the distance over which communication must take place. This paper investigates the feasibility of such an approach for multi-transputer machines and indicates ways in which it can be implemented in practice." } @InProceedings{Gresser90, title = "{B}roadcast communication in fault tolerant multicomputer systems", author= "Gresser, K.", editor= "Zedan, Hussein S. M.", pages = "28--34", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "Fault tolerance can be achieved by means of redundancy. Multicomputer architectures allow duplicated tasks to run on multiple processors. In this paper we focus on multicomputer systems consisting of a small number of processors (4 to 16). Fault tolerance instrumented in the operating system level tolerates hardware faults. This type of fault tolerance is known as software implemented fault tolerance. The information exchange of the computers requires a powerful communication system with fault tolerance properties. Since no standard system meets all requirements a new design was necessary. This paper describes concept, hardware, firmware and performance of the transputer based broadcast communication system (BCS)." } @InProceedings{BeersLeibenspe90, title = "{T}ransputer performance issues using the trollius operating system", author= "Beers, James R. Jr. and Leibensperger, Ros and Braner, Moshe and Fielding, David", editor= "Zedan, Hussein S. M.", pages = "35--50", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "The Trollius Opeiating System for distributed multicomputer offers different types of message-passing services, incorporating different amounts of overhead. Each of the operating system activities required for interprocess communication is designed as an individual module or layer. The different types of Trollius communication can be accessed by turning operating system services on or off, or by directly utilizing different layers of communication.Basically, there are three layers of internode communication. The network layer can be used from any node to any other node; the data link layer is for nearest-neighbor communication; and Ihe physical layer uses the hardware in the most efficient way possible, but requires exclusive use of the link. A separate level, the kernel level, is used for intranode communication. Operating system services that can be turned on or off include buffering and virtual circuits.Two different types of benchmarks are used to evaluate the performance of the different types of Trollius message-passing. The first type calculates message-passing lime as the sum of the limes required for each individual service or component of Ihe process. The decrease in message-passing lime obtained when turning off services can ihus be easily measured. The second benchmark measures throughput, the amount of information that can be sent from one node to another in a given amount of time, for different layers of message-passing, utilizing different sendees. This is the more accurate measure when series of messages are sent from one node to another. The throughput measurements demonstrate the value of the physical layer and of virtual circuits." } @InProceedings{HarleyLevy90, title = "{H}igh performance event and {I}/{O} handling on the transputer", author= "Harley, R. G. and Levy, D. C. and Hemme, A. W. M. and Webster, M. R.", editor= "Zedan, Hussein S. M.", pages = "51--60", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "If transputers are to be used in high performance control applications it is essential that the I/O and event handling capabilities of the transputer are well understood. This requires insight into the hardware architecture and the low level language (guy code) of the transputer. The interface between the transputer executing the corresponding control process, and the external event generating devices can be divided into two main processes, namely interrupt or event handling and the I/O or data handling. For maximum performance these processes must be handled as quickly and efficiently as possible. Some of the issues involved in using occam to establish an interrupt handler are discussed in [1]. This paper extends that work to show how better performance and multiple event handling can be obtained efficiently. Several methods of achieving this real world interface are examined and, based on an actual design, the paper concludes with some recommendations to make the event handler more efficient." } @InProceedings{AvramovKnowles90, title = "{E}valuation of two systems for distributed message passing in transputer networks", author= "Avramov, N. N. and Knowles, A. E.", editor= "Zedan, Hussein S. M.", pages = "61--73", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "While special chips for message transfer in multi-transputer machines do not yet exist, there are several software solutions which may be used. Dynamic link reconfiguration is fastest but requires additional switching hardware and a sophisticated common bus to control requests from all network nodes. Through-routing of messages via the network is slower but the method is applicable to any transputer network. This paper makes a comparison between two through-routing solutions for distributed message passing and shows how the parameters of a software implementation influence the communication throughput. Several conclusions about the improvement of particular through-routing software are made and the results of the experimental performance evaluation under different conditions are given." } @InProceedings{PietroVillano90, title = "{A}n environment for transputer {CPU} load measurements", author= "Pietro, Giuseppe de and Villano, Umberto", editor= "Zedan, Hussein S. M.", pages = "74--82", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "In a multiprocessor system an uneven load balancing can usually dramatically reduce the performance of the parallel program running on it Hence it is of paramount importance to be able to estimate the CPU and communication loads of every task before the program is actually executed so that the optimal application partitioning can be found. In this paper the problem of CPU load measurement is tackled, and a measurement environment is illustrated in which the processes to be allocated to the processors in the network are run in quasi-concurrence on a single Transputer. A technique based on active process list manipulation makes it possible to perform a fairly accurate measurement of the CPU activity of the parallel processes in the application using the Transputer internal tinier as a reference clock." } @InProceedings{WijbransTillema90, title = "{A}n operating environment for control systems", author= "Wijbrans, K. C. J. and Tillema, H. G. and Bakkers, Andr\`{e} W. P. and Schoute, Albert L.", editor= "Zedan, Hussein S. M.", pages = "83--94", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "This article describes an operating environment for control systems. This operating environment contains the basic layers of a distributed operating system. Typical for this operating environment is that it is designed according to the needs of control systems. To do this, first the general requirements of a controller have been investigated. Based on the requirements posed by controllers as they can be found in complex systems, the requirements of the operating environment have been derived. This operating environment has been implemented on transputers. To test the performance of the operating environment, performance indicators were chosen and performance measurements were carried out for several different strategies. Due to the demanding nature of real-time control systems, special attention has been paid to an efficient implementation of a basic kernel." } @InProceedings{TambwekarShukla90, title = "{L}i{BRA} -- {A} load balancing tool for a reconfigurable parallel computer", author= "Tambwekar, Sanjay and Shukla, U. S. and Paulraj, A.", editor= "Zedan, Hussein S. M.", pages = "95--107", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "Load balancing in MIMD message-passing parallel computers is essential to make efficient use of the system resources and reduce the program runtime. For parallel computers that also provide topological \^{}configurability, it is necessary for the load balancing strategy to not only find an optimum distribution of tasks to processors, but also to determine the best-suited interconnection pattern for the processors. In this paper, we present an off-line tool, LiBRA, that will assist in automating the process of load balancing. The user specifies his problem in terms of a computation graph and the machine characteristics. LiBRA uses simulated annealing with an automatic annealing schedule to generate the optimal configuration." } @InProceedings{NieuwenhuBlom90, title = "{F}ault tolerant computing with transputers and occam", author= "Nieuwenhuis, L. J. M. and Blom, G. D.", editor= "Zedan, Hussein S. M.", pages = "108--118", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "In this paper the results of a case study with Transputers and Occam for a systematic approach of fault tolerant computing is presented. An arbitrary Transputer system can be transformed into a fault tolerant version without using additional special hardware. Fault tolerance is based on software implemented replication. The fault tolerant version consists of copies of the original system. Processes on the original Transputers can automaticly be transformed into versions which can be executed by the Transputers of the fault tolerant system. The reliability of the resulting system is optimal and performance optimizing properties of the original system are preserved." } @InProceedings{Barrett90, title = "{T}he {D}evelopment of occam: types, classes and sharing", author= "Barrett, Geoff", editor= "Zedan, Hussein S. M.", pages = "119--147", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "The proposed extensions to the occam* language are aimed at providing • a more comprehensive type system• support for a modular programming style• a facility for sharing between processes.The type system is similar to that of many modern programming languages but with a careful treatment of union types and without recursive types.Although it is possible to describe shared objects in occam2, the required idiom has an implementation whose complexity is linear in the number of users. By introducing a special sort of shared bus of channels, this problem can be overcome.The class system is designed in such a way as to allow for separate compilation and alien code classes to be used in occam programs with little overhead and to provide some of the abstraction mechanisms which have been recognised as beneficial in object-oriented languages.There are also a number of new language features which do not significantly change the nature of the language but which do enhance its general expressiveness.The first part of this paper presents proposed changes to the occam2 reference manual ([1]). The second part is a commentary on the decisions which had to be made in order to produce the proposal. The section numbers of the manual changes correspond to the section numbers of the occam2 reference manual where a ' denotes a change to an existing section and a letter denotes the insertion of a new section." } @InProceedings{DuVidalNaqu90, title = "{C}ombining configuration and allocation", author= "Du, Dong-Hui and Vidal-Naquet, Guy", editor= "Zedan, Hussein S. M.", pages = "148--157", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "This paper describes a method which makes hardware configuration transparent to Occam/Transputer users by doing automatic configuration of Transputer networks and allocation of programs. Some heuristic algorithms of combining network configuration with task allocation have been put forward. From an Occam program and an initial network topology, these algorithms construct a network topology which fits best the structure of the program, and allocate the program on the network so that its completion time is minimized." } @InProceedings{DebbageHill90, title = "{T}owards a distributed implementation of occam", author= "Debbage, Mark and Hill, Mark and Nicole, Denis A.", editor= "Zedan, Hussein S. M.", pages = "158--167", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "Progress has been made in providing a reasonable distributed implementation of the occam language. Primarily, this has involved the development of a routing kernel with a latent channel connection retaining occam syntax. Channel semantics are maintained by a message acknowledgement scheme and unrestricted message lengths. This provides the user with the potential for fully connected process communication without restrictions on node valencies or explicit PLACEment of any hard links.In addition the user program has been severed from any dependency on the topology by allowing multiple configuration level PROCESSORS to map onto a single transputer. Thus the user code can be run on any network which has been configured for the virtual channel router.Further development of the system has allowed us to implement the dynamic primitives that will be required by a compiler for distributed full occam. These include dynamic channel creation, remote procedure calls and facilities for moving channel ends." } @InProceedings{EastJassim90, title = "{C}ayley graphs and transputer network configuration", author= "East, Ian R. and Jassim, Sabah", editor= "Zedan, Hussein S. M.", pages = "168--174", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "The nature and use of Cayley graphs in understanding network topology design will be explained. The hypercube topology will be presented in group-theoretic form as an illustration and its isomorphism with tori, up to order four, will be shown. It will also be shown how to use the Cayley graph formulation to scalably configure a hypercube (with node process independent of identity within network). Lastly, we discuss the application of the Cayley formalism to infer and investigate new topologies which exhibit superior scaling of size and density to that of the hypercube, but which retain degree four and hence are suitable for transputer networks." } @InProceedings{SunterWijbrans90, title = "{C}ooperative priority scheduling in occam", author= "Sunter, Johan P. E. and Wijbrans, K. C. J. and Bakkers, Andr\`{e} W. P.", editor= "Zedan, Hussein S. M.", pages = "175--185", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "In this paper a scheduler for variable priority scheduling is presented. This scheduler assumes that the processes being scheduled cooperate with the scheduler. This cooperation introduces some latency in the scheduling of the processes. Analytic expressions describing the effect of this latency are derived. A variable priority scheduler was implemented and results from actual program executions are given. These results show that the scheduler can be used to schedule control algorithms with simple sequential processes with sample frequencies not higher than 2 kHz." } @InProceedings{CapraniKristense90, title = "{I}mplementation of real-time scheduling algorithms in a transputer environment", author= "Caprani, Ole and Kristensen, Jens E. and M\ork, Claus and Pedersen, Henrik Bo and Rasmussen, Finn R.", editor= "Zedan, Hussein S. M.", pages = "186--197", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "A variety of real-time scheduling algorithms is considered. Each algorithm is implemented on the transputer either in pure Occam or in Occam supplied with a few low level assembly procedures to manipulate the workspace queues. The algorithms used are non-preemptive non-priority scheduling, time-sliced non-priority scheduling, preemptive fixed priority scheduling (rate-monotonic scheduling) and preemptive dynamic priority scheduling (deadline scheduling). Furthermore, it is shown how access to shared data can be scheduled to meet time constraints. All the implemented scheduling algorithms have been assessed through experiments in order to estimate the overhead introduced." } @InProceedings{Welch90, title = "{M}ulti-priority scheduling for transputer-based real-time control", author= "Welch, Peter H.", editor= "Zedan, Hussein S. M.", pages = "198--214", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "A major requirement of real-time control applications is a set of cyclic processes — one for each \"control-law\". Each process must be managed so that it completes each cycle within a fixed time. The rate at which each process cycles will be constant, but will generally be different for different processes.Current transputer hardware provides very fast pre-emptive scheduling for two static priority levels, with \"round-robin\" management within each level. This is not sufficient to manage securely more than one such control-law per transputer — even at very low processor loadings. Efficient classical solutions (e.g. \"rate-monotonic\" or \"deadline\" scheduling) require multiple and time-varying priorities.This paper shows how to implement such solutions simply, and with an acceptable level of overhead, on the existing (and future) generation of transputer. Other promising scheduling methods are discussed. All solutions are expressed in occam with no assembler inserts and no security rules violated — the intended applications are safety-critical! Real performance figures are reported.Finally, a method of proving (or dis-proving) the security of any particular set of process loadings, operating under any particular scheduling algorithm, is described." } @InProceedings{MayThompson90, title = "{T}ransputers and routers: {C}omponents for concurrent machines", author= "May, David and Thompson, Peter", editor= "Zedan, Hussein S. M.", pages = "215--231", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "A transputer is a complete microcomputer integrated in a single VLSI chip. Each transputer has a number of communication links, allowing transputers to be interconnected to form concurrent processing systems. The transputer instruction set contains Instructions to send and receive messages through these links, minimising delays in inter-transputer communication. Transputers can be directly interconnected to form specialised networks, or can be interconnected via routing chips. Routing chips are VLSI building blocks for interconnection networks: they can support system-wide message routing at high throughput and low delay." } @InProceedings{VerhulstThieleman90, title = "{P}redictable response times and portable hard real-time systems with {TRANS}-{RTX}c on the {T}ransputer", author= "Verhulst, Eric and Thielemans, Hans", editor= "Zedan, Hussein S. M.", pages = "232--240", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "The transputer is a flexible processor, very well suited for applications where modularity and distributed operation are prime requirements, like in process control. Nevertheless, its basic FIFO-scheduling algorithm, makes its application for real-time processing quite difficult. This problem has now been solved by the development of a preemptive scheduling algorithm. This algorithm was used to port an existing real-time kernel to the Transputer. In addition, by taking account of the specific nature of the Transputer, much better performance and flexibility have been obtained." } @InProceedings{HartFlavell90, title = "{P}rototyping transputer applications", author= "Hart, E. and Flavell, S.", editor= "Zedan, Hussein S. M.", pages = "241--247", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "The design is discussed of a toolset capable of estimating the performance of a transputer application at the design stage, prior to detailed code being available. The Transim/Gecko package from the Polytechnic of Central London is discussed in detail as an example of such a toolset. The methodology of the package is discussed, its input language, output format and the transputer scheduling model to which it adheres. An example is described of a real transputer application where the tool has been successfully used to improve performance." } @InProceedings{MorseWelch90, title = "{D}iffusion limited aggregation: {A}n example of real-time parallelisation", author= "Morse, D. R. and Welch, A. M. and Welch, Peter H.", editor= "Zedan, Hussein S. M.", pages = "248--261", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "The simulation of the growth of Diffusion-Limited Aggregates (DLA) is representative of a class of 'shared' data-structure computations that does not yield to traditional parallelisation methods (such as 'farming', 'geometric decomposition' and 'data-flow'). The difficulty is that the shared data-structure is large and evolving, the required access to it from each processor is random and very high, and the computation per access is very low. These conditions also make these problems most unsuitable for shared-memory parallel computers.This paper presents a parallelisation technique that does give linear speed-up for this problem (at least, for up to 32 transputers). The cost-effectiveness of the solution compares favourably with those published that use vector-processing machines.The success of the parallelisation depends on real-time issues associated with keeping each worker transputer sufficiently up-to-date with all its colleagues. Some 'quasi-relativistic' effects need to be taken into account as well!The speed-ups achieved through this parallelisation are used to investigate the effect of various parameters (such as stride length and background drift) on the kind of DLA growth that is obtained. These studies would not be practical without the savings in time that have been realised from a parallel implementation of the DLA simulation.Finally, we characterise the features of those applications for which this parallelisation method is relevant." } @InProceedings{RoantreeClint90, title = "{A} formal top-down developement method for occam programs", author= "Roantree, Donal and Clint, Maurice", editor= "Zedan, Hussein S. M.", pages = "262--286", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "This paper describes a formal development method for mathematical applications in occam. Refinement rules form the basis of the method. A traces model is defined and used to give a formal semantics to occam. The rules are proved sound with respect to this semantics." } @InProceedings{BurnsWellings90, title = "{A}n assessment of the use of occam for dependable real-time systems", author= "Burns, A. and Wellings, A. J. and Zedan, Hussein S. M.", editor= "Zedan, Hussein S. M.", pages = "287--294", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "As occam based technology matures, and more transputer implementations evolve, new application domains will open up. This in turn will place fresh requirements on the language. In some instances occam, in its current form, will be unsuitable and language changes will be inevitable. This is, of course, at odds with producing a \"standard\" and \"stable\" language definition.The purpose of this paper is to identify the outstanding issues that must be discussed in the short, medium or long-term, if occam (and the transputer) is to be used for a wide range of dependable real-time applications in current and future systems. Our approach is to start with application requirements, from these to indicate occam problem areas and then, if appropriate, offer potential solutions. The areas considered are those associated with hard real-time, software reliability, mode changes, dynamic change management and fault management." } @InProceedings{Nowinski90, title = "{M}emory access synchronization in series expansion methods of parallel image reconstruction", author= "Nowinski, W. J.", editor= "Zedan, Hussein S. M.", pages = "295--304", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "The paper is concerned with parallel image reconstruction. The background of parallel image reconstruction has been briefly reviewed. Parallel formulations of series expansion methods expressed in occam exploiting projection and ray parallelisms have been presented. Two types of mapping of the projection space onto the image space influencing a simultaneous memory access have been defined. Finally, several ways of synchronizing the activities of processes when accessing the memory have been discussed." } @InProceedings{HopkinsVowden90, title = "{D}istributing matrix eigenvalue calculations over transputer arrays", author= "Hopkins, Tim and Vowden, Barry", editor= "Zedan, Hussein S. M.", pages = "305--312", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "We discuss the parallel numerical solution of the matrix eigenvalue problem for real symmetric tridiagonal matrices. Instances occur frequently in practice. Two implementations of the Sturm sequence algorithm on transputer arrays are described. For the first the maximum size of matrices which may be accommodated is restricted by the amount of local memory available. The second implementation removes this constraint but requires an increased execution time." } @InProceedings{ChalmersFiddes90, title = "{P}arallel panel methods", author= "Chalmers, Alan G. and Fiddes, Steven P. and Paddon, Derek J.", editor= "Zedan, Hussein S. M.", pages = "313--321", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "The nature of panel methods makes parallelisation difficult, unless effective methods can be found that minimise the number of messages required to calculate the interaction of all panels in the problem domain. Here, we use a minimal path configuration of processors to give an effective solution and show its performance superiority over a solution obtained from a ring configuration of processors. A detailed description of the numerical model and the numerical methods that are used for a typical panel method problem is given.The importance of balancing the message generating parts of an algorithm are established by examining the influence matrix set-up time and the matrix solution time. The scalability and maximum performance characteristics of the algorithm and system configuration are analysed and reported." } @InProceedings{RainaWarren90, title = "{S}hared virtual memory on transputers via the data diffusion machine", author= "Raina, Sanjay and Warren, David H. D. and Cownie, James", editor= "Zedan, Hussein S. M.", pages = "322--330", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "The Data Diffusion Machine (DDM) is a novel multiprocessor architecture which is scalable to an arbitrary number of processors and at the same time provides a shared virtual address space. There is no fixed home location for data - instead data migrates from one processor to another on demand. A cache coherence protocol maintains memory consistency allowing replication, migration and replacement of data.In order to evaluate the DDM we are developing an emulator on the Meiko Computing Surface. This paper describes the DDM emulator together with additional support to turn the emulator into a platform for running real shared memory applications. We describe how the bus based snoopy protocol of the DDM can be modified to suit point-to-point interconnection networks." } @InProceedings{AbdennadhAngue90, title = "{A}m interactive graphical debugger for occam programs", author= "Abdennadher, N. and Angue, J. C.", editor= "Zedan, Hussein S. M.", pages = "331--338", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "Parallel programs are usually described informally, and these descriptions are implemented on parallel computer systems. When the program does not work correctly, it is difficult to detect the semantic error: deadlock, starvation, etc ... We propose in this paper an interactive graphical debugger of parallel programs written in OCCAM and executed and developed on Transputer Network which is implemented on IBM PC motherboard. The debugger provides the programmer a graphical representation of the dynamic behaviour of the OCCAM programs." } @InProceedings{AdamoBonnevill90, title = "{V}irtualising communication in the {C}-{NET} high level programming environment", author= "Adamo, Jean\_Marc and Bonneville, J. and Bonello, C.", editor= "Zedan, Hussein S. M.", pages = "339--349", booktitle= "{OUG}-13: {R}eal-{T}ime {S}ystems with {T}ransputers", isbn= "90 5199 041 3", year= "1990", month= "sep", abstract= "A tool for virtualising communication on the SuperNode machine is presented. The tool provides four facilities: virtual interprocessor communication channels, Transputer links multiplexing, link load-balancing, and consistent termination of aborted interprocessor communication." } @InProceedings{EdwardsLawson91, title = "{T}he advancements of transputers and occam", author= "Edwards, Janet and Lawson, Philip", editor= "Edwards, Janet", pages = "1--12", 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= "In our eagerness to promote Occam and Transputers on the World stage, we must not forget that the now common place jargon of the Occam User Group may be very new to those practitioners that are entering this realm for the first time. For the benefit of students, old and young alike, who have missed out on the hype that surrounded the transputer in the 1980s, what follows should provide a brief insight into this complex field. Beyond introducing the current transputer hardware and Occam software, a glimpse of things to come is provided by a pre-release view of the IMS T9000 transputer and the next generation of the Occam language. This overview concludes with a short pr\`{e}cis of each of the papers that contributed to this, the 14th World Occam and Transputer User Group technical meeting." } @InProceedings{KerridgeOates91, title = "{A}spects of database machine design using the {H}1, {C}104 and {O}ccam91", author= "Kerridge, Jon and Oates, Richard J.", editor= "Edwards, Janet", pages = "13--27", 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= "In this paper we explore the design of a database machine that is already being implemented using T series transputers to determine the benefits of using the T9000 series transputer togeher eith its associated routing chip, the C104, and occam91. The language occam91, a superset of occam2, contains language features that directly support the exploitation of hardware features that have been incorporated into the T9000 transputer. We briefly introduce the underlying design of the database machine. The way in which the C104 routing chips can be used is then described in conjunction with a planar approach to the interconnection of nodes in the machine. Finally, we give fragments of occam91 that demonstrated how its features can be used in two different parts of the database machine. The first application considers the problems of allocating resources to a user query and the second looks at how recovery features can be specified." } @InProceedings{SunterBakkers91, title = "{P}erformance of post-game analysis on transputers", author= "Sunter, Johan P. E. and Bakkers, Andr\`{e} W. P.", editor= "Edwards, Janet", pages = "28--38", 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= "In this paper the performance of a Post-Game Analysis system is studied. For this purpose several simple cases have been designed. These cases consist of a number of processes which have to be distributed over a network of transputers. The final distributions for these cases are compared to the optimal ones, which can be easily derived for these simple cases. Performance measures considered include the number of iterations required to reach the final distribution, and the overhead caused by monitoring the program behaviour." } @InProceedings{PhillipsCapon91, title = "{S}trategies for workload distribution", author= "Phillips, Iain and Capon, Peter C.", editor= "Edwards, Janet", pages = "39--51", 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= "If large distributed systems, such as transputer networks, are to be exploited fully, effective workload distribution strategies are required. For such systems to be successfully scalable, decision making in such strategies will need to be both dynamic and distributed. The choice of strategy depends on many factors, including the size and topology of the network together with the nature of the application. The success of any particular strategy is measured by comparing the time taken to execute the application on many processors with the time taken on few processors." } @InProceedings{BakerMilner91, title = "{A} process migration harness for dynamic load balancing", author= "Baker, S. A. and Milner, K. R.", editor= "Edwards, Janet", pages = "52--61", 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= "In order to attain high efficiency and maximum throughput from MIMD architectures, it is necessary to have a balanced load with all processors being utilised. If the optimum program configuration is data-dependent, the process distribution will have to be performed at run time, i.e. dynamically. A message-passing harness has been developed with a process migration capability for dynamic loca-balancing on transputer-based machines. This paper describes the process migration harness and the way in which it is integrated with the user's application, gives a brief survey of the types of dynamic load balancing algorithm currently under investigation and concludes with some preliminary performance results." } @InProceedings{Robinson91, title = "{A} simple parallel algebraic multigrid", author= "Robinson, Guy", editor= "Edwards, Janet", pages = "62--75", 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= "This paper describes an \"algebraic multigrid\" scheme which can be applied to a wide range of matrix based problems. Multigrid schemed offer significant gains in both numerical performance and runtimes compared to conventional solvers. The equations for the hierachy of grids are generated solely from the equation for the fine mesh without generating the intermediate grids or relying on geometrical features of the fine mesh. The development of the code for distributed memory Multiple Instruction Multiple Data architectures is detailed. The numerical and run time performance is described for simple linear equation sets and as a linear solver for coupled equations as part a 3D computational fluid dynamics code." } @InProceedings{KhanStephens91, title = "{F}ast fourier transform on transputers", author= "Khan, Aman and Stephens, Nelson", editor= "Edwards, Janet", pages = "76--84", 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= "The fast evaluation of the Discrete Fourier Transform on a system with a large number of transputers is considered. The implementation uses a configuration of the transputers which leads to a very high performance. The design and implementation incorporate several new features. Tables of this performance, in terms of actual times and speed-up as the number of data points and transputers vary, are presented. Implementation aspects of the radix-2 and higher radix DFT in one and two dimensions are considered. The timings are compared with those for other computers and found to be favourable." } @InProceedings{CunhaHopkins91, title = "{A} new adaptive algorithm for the solution of systems of linear equations", author= "Cunha, Rudnei Dias da and Hopkins, Tim", editor= "Edwards, Janet", pages = "85--99", 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= "We present a comparison between serial and parallel implementations of some iterative methods to solve systems of linear equations. The basic vector arithmetic operations used in the implementations are discussed with respect to its parallelization. The iterative methods considered are the Adaptive SOR (A-SOR), the Steepest-descent (G), an adaptive version of the steepest-descent method (A-G), the Richardson's Optimum-Extrapolated (RF-OE), and the Conjugate Gradient (CG)." } @InProceedings{EvansMargariti91, title = "{S}imulation of optical systolic and neural network using occam", author= "Evans, D. J. and Margaritis, K. G.", editor= "Edwards, Janet", pages = "100--110", 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= "This paper describes the simulation of optical processors for performing optical systolic and neural net algorithms. Occam is used as a simulation langugage and each component of the optical processor is defined as an occam process." } @InProceedings{GeeWorrall91, title = "{D}evelopement methods and occam", author= "Gee, David M. and Worrall, Barry P. and Henderson, W. D.", editor= "Edwards, Janet", pages = "111--122", 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= "Existing structured methods for real-time systems are critically reviewed with respect to their suitability for direct implementation in occam without transformation. All are found to have weaknesses in some respects; consequently new notations are proposed. Use of these within an appropriate tool framework could assist in the automatic generation of occam code." } @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." } @InProceedings{Villano91, title = "{R}epeatable execution of occam programs", author= "Villano, Umberto", editor= "Edwards, Janet", pages = "133--142", 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= "Parallel programs are intrinsically non-deterministic, and therefore the techniques of cyclical debugging that are commonly used for sequential programs are not suitable for parallel ones. This paper proposes a method for guaranteeing the repeatability of occam program behaviour. Saving information on the ALT guards selected at run-time allows program replay. i.e. makes it possible to re-execute the program following the same instruction path whatever the speed at which each component process is executed. This enables the software developer to use tools such as debuggers and intrusive monitors to help identify program errors. After a discussion on the possible implementations of the proposed technique, a prototype tools that allows the replat of occam programs within TDS is briefly described." } @InProceedings{CrookesMorrow91, title = "{A} {S}oftware {D}evelopement {E}nvironment for {P}arallel {I}mage {P}rocessing: {I}mplementation techniques and issues", author= "Crookes, D. and Morrow, Philip J. and McClatchey, I. and Rafferty, T.", editor= "Edwards, Janet", pages = "143--149", 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 program development environment has been designed for building transputer based image processing systems. The system has two main components: a library of (parallelised) image processing operations, and a graphical user interface. After introducing the user interface, the paper concentrates on the implementation techniques and issues involved in constructing the environment. The main implementation areas considered are: a flexible and highly parameterised library of image processing routines; the provision of a communications shell which utilises the underlying parallelism without the user having to be concerned about it; and the extensibility of the environment by adding new components to the library." } @InProceedings{BrittanFairhurst91, title = "{I}ntegration of {C}lassification and {E}valuation {P}rocedures in the {I}mplementation of {P}arallel {I}mage {A}nalysis {A}lgorithms", author= "Brittan, P. and Fairhurst, M. C.", editor= "Edwards, Janet", pages = "150--158", 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= "The requirements of adaptability and high performance often dictate a parallel processing approach for cost-effective algorithm implementation in many real-time applications of image classification. The aim of this paper is twofold. First it seeks to illustrate that by giving careful consideration to the conceptual architecture of the image classifier and its implementation base levels of performance can be achieved. Second, it will discuss the principal features of implementing multi-layer classifier algorithms, performance evaluation processes, and high-speed data handling required for evaluation, over an array of transputers." } @InProceedings{WelchJusto91, title = "{O}n the serialisation of parallel programs", author= "Welch, Peter H. and Justo, G. R. Ribeiro", editor= "Edwards, Janet", pages = "159--180", 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= "This paper argues that one of the key techniques for making the most efective use of multi-processor architectures is the serialisation of parallel code! Parallel algorithms are presented as having strong engineering merits that will form the natural basis for systems design in the future. Parallelisation of serial code is regarded as having only short-term value (for \"dusty-decks\", whose correctness cannot be verified) as well as being mathematically intractable. Serialisation, on the other hand, is much easier to automate and can be profitably employed today. Several serialising transforms for occam processes are presented and applied to various simulation and image compression tasks." } @InProceedings{SturrockSalmon91, title = "{A}pplication of occam to biological sequence comparisons", author= "Sturrock, Shane S. and Salmon, Ian", editor= "Edwards, Janet", pages = "181--190", 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= "One of the major uses of computers by molecular biologists is the alignment of protein or DNA sequences. Since the structure and function of proteins and DNA cannot be predicted directly from sequence data alone, the most useful procedure is to compare unknown sequences against a database of known sequences. Those with a high degree of homology are likely to have similar properties. At present, the databases are growing exponentially with doubling in around 20 months. Consequently, comparisons are taking proportionately longer to complete. We have applied various sequential comparative algorithms within a farming harness constructed in occam from a pipeline of transputers. The design of the farming harness for optimum link communication is discussed. The advantage our method offers is scalability; an important consideration as the databases multiply in content. The ability to tailor the algorithm to work on various size networks of transputers also allows the user to weigh time considerations against the total cost of the system. Our present implementation can perform around 600 comparisons per second between a query sequence of 50 residues and a database using 64 worker processors." } @InProceedings{EdwardsConnolly91, title = "{I}mplementing an {A}ctive {C}hart {P}arser on a {T}ransputer {N}etwork", author= "Edwards, Janet and Connolly, John H.", editor= "Edwards, Janet", pages = "191--200", 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= "Active chart parsing is a well-known technique for the syntactic analysis of natural language. This paper is concerned with the parallel implementation of the relevant algorithm in Occam-2 on a Transputer network. Different parallelisation strategies are compared, and it is concluded that better results are obtained by splitting the grammar associated with the parser than by decomposing the algorithm itself." } @InProceedings{WalterKerridge91, title = "{A} {S}calable {C}ommunication {N}etwork for a {P}arallel {D}atabase {M}achine", author= "Walter, David and Kerridge, Jon", editor= "Edwards, Janet", pages = "201--216", 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= "The IDIOMS parallel database machine has at its kernel a scalable communications structure. The scalability is fundamental to the database machine because it is intended that the parts which are joined together by the communications network can be added to as demands on the database machine change. The network must be scalable both in terms og the number of user processes which can be supported, and, in order to meet the performance requirements of large systems, it should be possible to scale up the bandwidth of the network by adding further communication processors. The structure of a node in the network is described in terms of itsccam behavior which shows how node control is achieved by a control process that manipulates a set of flags by means of channel communications. The network is shown to be free from the possibility of deadlock. Finally, the performance and operational characteristics of the network are discussed and it is shown that the network is ideally suited for parallel database operation." } @InProceedings{Highfield91, title = "{P}arallel {S}can {L}ine algorithm for {H}idden {S}urface {E}limination", author= "Highfield, Julian C.", editor= "Edwards, Janet", pages = "217--224", 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= "With the general availability of general purpose parallel computers, there is a need to reconsider scan conversion algorithms with respect to their parallel implementation. This paper considers MIMD parallel implementation of two versions of the scan conversion algorithm, one the common edge table optimisation, and one not. Their suitability for parallel implementation is investigated and their relative performance in multi-processor systems is measured using polygonal scene descriptions of between 150 and 2600 polygons. Dependence upon the size of scene description is measured and results are extrapolated to larger scene descriptions. It is shown that scan conversion algorithms may be efficiently parallelised. It is also shown that the edge table optimisation, while appropriate to the single processor case, becomes useless at around twenty processors, and would actually be a disadvantage in the limiting case of one processor per scan line." } @InProceedings{Shallow91, title = "{P}rocessor {I}ndependant and {E}xtendable {R}outing {S}ystem using a {C}yclic {R}outing {A}lgorithm", author= "Shallow, P. A.", editor= "Edwards, Janet", pages = "225--233", 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= "PIERS is a deadlock free virtual routing system developed for distributed concurrent applications. It deliberately exploits the advantages gained by allowing cycles to occur in the channel dependency graph and incorporates the cycles into the routing algorithm. It directly interfaces with the user's application and uses the existing OCCAM channel primitives. The paper describes how this cyclic routingalgorithm operates and how deadlock is averted. It describes how the routing system is implemented, presents the performance figures obtained and summarises the network configuration utility written to integrate the communication harness with the user's application." } @InProceedings{Croll91, title = "{D}eterministic {M}essage {R}outing for {S}afety-{C}ritical {A}pplications", author= "Croll, Peter R.", editor= "Edwards, Janet", pages = "234--246", 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= "This paper considers a technique of message passing which can be applied in the development of parallel programs for safety-critical applications. The routing algorithm used to ensure that messages will always be able to meet hard real-time constraints and yet cope with some degree of hardware failure. This paper will firstly introduce the routing algorithm, it will indicate what properties can be proved about deterministic message passing and describe how the algorithms cope with hardware failure. From this, the details of possible solutions that the new T9000 family can offer will be presented." } @InProceedings{Talia92, title = "{M}essage routing systems for transputer based parallel computers", author= "Talia, Domenico", editor= "Allen, Alastair R.", pages = "1--12", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "An efficient communication system is an essential component of a transputer-based parallel computer. In the last years many message routing systems for transputer networks have been developed. They allow data exchanging among processes mapped on transputers not directly connected. This paper surveys and compares some of these routing systems with respect to several criteria, such as deadlock freedom, adaptivity, network latency, livelock freedom, and generality." } @InProceedings{PhilipsCandlin92, title = "{A}n environment for investigating the effectiveness of process migration strategies on transputer-based machines", author= "Philips, Joe and Candlin, Rosemary", editor= "Allen, Alastair R.", pages = "13--23", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "This paper describes an experimental system which can be used to study and compare the behaviour of different process migration strategies for occam programs running on transputer machines. The approach taken involves loading the code and data for every process onto every transputer. Processes can then be enabled and disabled to reflect the initial placement and subsequently to reflect process migrations. While simplifying the implementation process this means that the entire program must fit onto a single transputer. A statistics collection mechanism has also been implemented to enable intelligent migration decisions to be made. The system has been verified using a random migration strategy on several candidate programs." } @InProceedings{CaiSkillicor92, title = "{E}valuation of a set of message- passing routines on transputer networks", author= "Cai, Wentong and Skillicorn, David B.", editor= "Allen, Alastair R.", pages = "24--36", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "A major obstacle to the use of parallel computers in ordinary applications, where their price/performance ratio should make them attractive, is the sheer difficulty of parallel programming. One approach which can ease the difficulties is data parallel programming, because of the simplicity of a single-threaded flow of control. Data parallelism also expresses parallelism with enough regularity to be readily implemented across a range of machine types. In this paper, we describe a data parallel model based on a set of second order functions from the Bird-Meertens theory of lists, demonstrate the implementation of these functions as a set of message-passing routines, and evaluate their performance on transputer networks configured as hy-percubes." } @InProceedings{TollenaerRoose92, title = "{P}erformance modelling of a parallel meural network simulator", author= "Tollenaere, Tom and Roose, Dirk", editor= "Allen, Alastair R.", pages = "37--48", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "A model program structure is presented for parallel applications with local interactions between the data elements, such as neural networks simulations and the solution of partial differential equations. The performance of this model program is analyzed both theoretically by means of classical performance models, and experimentally using a parallel neural network simulator program. The program runs on a Meiko transputer array, and uses the Meiko CSTools libraries for its communications. The comparison of both analyses allows to predict applications performance on new and other machines, and indicate what parts of an application are worth optimizing. Moreover, it is shown that classical theoretical models not always capture the behavior of a real machine." } @InProceedings{Day92, title = "{F}arming: {T}owards a rigorous definition and efficient transputer implementation", author= "Day, Warren", editor= "Allen, Alastair R.", pages = "49--62", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "The technique of the processor farm has become a very widely used for parallelising applications, often being mentioned without reference to any source.The goal of this work has been to put together a complete and rigorous understanding of what the technique can be used for and what is needed in order to arrive at an efficiently farmed application. This paper consists of these two parts.We have shown, via the UNITY theory of programming, that the basic structure of the processor farm may be used to parallelise a much wider domain of applications than has generally been considered.Second, we show by example, how to build efficient implementations for the first generation of INMOS Transputers. This work is new in that it is the first that has been able to test farming harnesses by taking an abstract view of the application.This paper has been written in a semi-\"instruction manual\"\" style. Also it should serve as an introduction to the subject." } @InProceedings{Culloch92, title = "{P}orting the 3{L} {P}arallel {C} environment to the {T}exas {I}nstruments {TMS}320{C}40", author= "Culloch, Alan D.", editor= "Allen, Alastair R.", pages = "63--76", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "The TMS320C40 ('C40) is a transputer-like parallel processor from Texas Instruments. It is an order of magnitude faster than the T800 transputer. Parallel C is a popular programming environment for the transputer. The properties of both the 'C40 and Parallel C are described and the significant differences between the 'C40 and the transputer are pointed out. The techniques used to overcome these obstacles to porting Parallel C are presented. These include building a new real-time kernel and reusing existing software packages from industry and academia. The suitability of the 'C40 for parallel applications is discussed." } @InProceedings{SoraghamGan92, title = "{T}ransputer based adaptive signal processing", author= "Soragham, John J. and Gan, Woon S. and Goh, Kwong H. and Stewart, Robert W. and Durrani, Tariq S.", editor= "Allen, Alastair R.", pages = "77--96", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "Transputer based adaptive signal processing systems are considered. Efficient use of data communication networks requires adaptive equaliser structures that are efficient and have fast mean square error (MSE) convergence rates. The transputer based non-canonical least mean square (NCLMS) algorithm is implemented using a variant of the standard finite impulse response (FIR) filter,called the non-canonical FIR (NCFIR). Simulation results are given which show areduced excess mean square error level and an improved performance in an impulsive noise environment for the NCLMS over the conventional least mean square (LMS) algorithm. Simulation results comparing the LMS and NCLMS are presented.The equaliser structure based on the Kalman Filter has convergence rates that are independent of the channel's characteristics. A transputer based Kalman Equaliser and fast Kalman Equaliser are described. Speed-up curves for a variety of topologies for both systems are included." } @InProceedings{DodgeRoss92, title = "{A} transform accelerator for a transputer system", author= "Dodge, C. J. and Ross, P. G. B. and Undrill, P. E. and Allen, Alastair R.", editor= "Allen, Alastair R.", pages = "97--111", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "A DSP based image transform accelerator for a transputer system is described. The formal specification language Z has been employed in the accelerator design, examples of which are presented including aspects of the refinement process and some of the problems encountered in working with a combined hardware/software specification." } @InProceedings{SmithWelch92, title = "{A} transputer based active vision system", author= "Smith, Andrew B. and Welch, Peter H.", editor= "Allen, Alastair R.", pages = "112--121", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "The visual detection and tracking of moving targets is computationally intensive and any but the most simple tasks are beyond the ability of single processor architectures. Many algorithms that are parallel in nature have been suggested for the recognition and tracking of moving targets. Implementing these algorithms on parallel computer systems requires the transcription of a massively parallel architecture onto a system with fewer physical processors. This, of course, is a much easier transformation than the reverse process: distributing a serial algorithm effectively over multiple processing elements.This paper describes a parallel Transputer implementation of a vision tracking system. The system is able to track a designated target by the physical movement of the camera. The camera is mounted on a pan and tilt unit and its movement and lens are under full control of the system. The system is modular in nature having been designed in three stages: i) the pre-processing of the image and extraction of edge information, ii) the control of the focus and gain of the lens, and iii) the detection and tracking of moving targets. The system operates in real-time (i.e. 25 frames/second)." } @InProceedings{Stokar92, title = "{SYDAMA}-2: a heterogeneous multiprocessor system for real time image processing", author= "Stokar, Dieter", editor= "Allen, Alastair R.", pages = "122--128", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "In this paper we will present the architecture of SYDAMA-2 and its programming environment as well as early experiences gained in developing applications with it. The goal of this project was to find and develop an architecture that was capable of executing entire applications in the domain of real time image processing. The architecture consists of two parts: one for low level preprocessing and one for intermediate and high level postprocessing.The preprocessing subsystem is based on the direct mapping of static dataflow graphs onto hardware. While highly specialized processing elements can be implemented for reasons of efficiency most of them consist of lookup tables for the sake of their processing speed and flexibility. All of them are controlled by a transputer that does the housekeeping.The processing elements are interconnected through a communication network which is realized as a pipelined multichannel ringbus that is fully reconfigurable on the fly. The bandwidth is large enough to carry several video streams and because the buses can be subdivided at every stage, the overall bandwidth effectively scales with the number of stages (processing elements).The postprocessing subsystem consists of a standard off the shelf transputer network that is closely connected to the low level subsystem.The programming environment consists of a number of tools that cover the different stages of programming an application: The low level programming interface for the image processing subsystem, a configuration tool and the runtime support that controls and interconnects the different tasks." } @InProceedings{BarrettBarton92, title = "{G}eneral purpose parallel computers: a standard architecture with a standard programming interface", author= "Barrett, Geoff and Barton, Eric and Carden, Trevor and Duval, Dominique and Nicole, Denis A.", editor= "Allen, Alastair R.", pages = "129--138", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "Recent developments in the area of high performance computing are pointing the way to a standard architecture for parallel computers. This architecture contains a number of medium-cost processing elements which communicate with each other through a high-bandwidth, low-latency interconnect. The design of the interconnect eliminates the concerns of \"locality\" which are current in the programming of present-day machines. This \"flat\" topology and common architectural model lead to increased opportunities for establishing portable software for high performance computing. The Esprit GP-MIMD project has exploited these opportunities by developing the architectural model and denning a programming interface for software which runs efficiently on machines with a range of processing power." } @InProceedings{SheaCheung92, title = "{A}n efficient multi- priority scheduler for the transputer", author= "Shea, K. M. and Cheung, M. H. and Lau, Francis C. M.", editor= "Allen, Alastair R.", pages = "139--153", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "Multi-priority scheduling is essential in a spectrum of applications especially those involving real time. We have extended the hardware scheduler in the transputer to support multi-priority scheduling. We did it by implementing a layer of provably safe and efficient queue manipulation primitives and a \"plug-in\" data structure for process queueing on top of the original scheduler. For optimal performance, different data structures for queueing may be plugged into our scheduler to suit different application domains. We tested our scheduler with different process loads (up to 200 processes) and the performance is excellent: overhead due to the scheduler accounts for less than 1\% of a timeslice on a T8." } @InProceedings{MoronZedan92, title = "{T}owards an adaptable scheduler for real-time system", author= "Moron, Celio Estevan and Zedan, Hussein S. M.", editor= "Allen, Alastair R.", pages = "154--166", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "Issues for designing adaptable real-time scheduler are discussed. A general approach that utilises milestones [1] is given and illustrated using the Least Laxity Algorithm. Some performance results are also given (in the form of upper bound of the overhead)." } @InProceedings{Peel92, title = "{TCP}/{IP} on transputers -- the performance implications", author= "Peel, Roger M. A.", editor= "Allen, Alastair R.", pages = "167--179", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "At the 14th WoTUG Technical Meeting at Loughborough University in September 1991, Graeme Tozer from INMOS described the architecture of the IMS B300 Ethernet Interface. This product supports four external transputer networks, providing each with an Iserver interface to Ethernet and connectivity to a host Iserver running on a processor elsewhere on the Ethernet. Performance claims in the range 200-300 kbytes per second were made for raw TCP transfers between a typical Unix workstation and transputers networked to it using the B300. This paper outlines the techniques which the author has used recently to enhance the performance of his own pipelined TCP/IP implementation for Ethernet to achieve throughputs of up to 925 kbytes per second on substantially similar hardware. Many of these techniques are equally appropriate to any large communicating process application." } @InProceedings{BalboniCabodi92, title = "{A} transputer-based accelerator for digital circuits fault simulation", author= "Balboni, G. P. and Cabodi, G. P. and Gai, S. and Reorda, M. Sonza", editor= "Allen, Alastair R.", pages = "180--186", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "Fault simulating digital devices requires powerful tools able to deal with their increased size and complexity. Software simulators are often unable to satisfy the needs of designers and test engineers due to the size of the simulated circuits, and to the large number of faults; hardware accelerators have been proposed to solve the problem. We present a system running on a net of transputers which uses a fault-partitioning strategy to fully exploit the available processors. The results show that this solution can represent a good trade-off between the cost of the system and the obtained speed-up." } @InProceedings{BarrettMay92, title = "{F}ormal methods in the design of the {T}9000", author= "Barrett, Geoff and May, David and Shepard, D.", editor= "Allen, Alastair R.", pages = "187--204", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "The complexity of integrated circuits continues to grow, and chips with over 100,000,000 transistors will be in widespread use by the late 1990s. These chips will combine general purpose processors with subsystems for communications and other specialised tasks. They will be far too complex for the design to be tested, and manufacturing volumes will be far too high for the design to be wrong!Mathematical techniques have already been applied to the design of parts of VLSI chips. Most of this work is experimental, and requires an unusual combination of engineering, mathematical and programming skills. Sometimes new theoretical work is needed, and specialised tools may have to be constructed. Despite these difficulties, mathematical techniques are playing an important role in the design of microprocessors at INMOS and techniques suitable for incorporation in standard computer-aided design systems are emerging." } @InProceedings{MansonCachia92, title = "{H}ow to achieve replication within a {CASE} tool environment", author= "Manson, Gordon A. and Cachia, E. A. and Boyle, A.", editor= "Allen, Alastair R.", pages = "205--217", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "A CASE tool, called ParStP, has been developed at the University of Sheffield. ParStP is built on top an existing open CASE tool called Software through Pictures and it combines design, compilation, running, testing and documentation into one integrated system. This paper shows how ParStP is being extended to cope with replication." } @InProceedings{GmBH.92, title = "{T}he {PARIX} pregramming environment", author= "GmBH., Parsytec", editor= "Allen, Alastair R.", pages = "218--230", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "The new Parsytec GC is a high-performance parallel processing system for scientific and technical applications.Between 64 and 16,384 processors provide a computational performance from 1 to 400 GigaFlops (peak performance, double precision, 190 GigaFlops sustained, double precision) thus meeting even the most extreme demands.In the software environment PARIX, users work with standard compilers for Fortran and C, make use of UNIXdevelopment tools and libraries and have high-performance systems for I/O, backup, graphics and video.The Parsytec GC is based on Inmos T9000 processors which can be structured into random topologies and which communicate both, the Inmos T800/T805 and the, at a maximal rate of 80 MBytes/s." } @InProceedings{DingxingXinmin92, title = "{A}n {O}ptimised {P}arallel {C}ompiler for {E}xecuting {D}eclarative {P}rograms on {T}ransputer {A}rray", author= "Dingxing, Wang and Xinmin, Tian and Weimin, Zheng and Meiming, Shen and Dongchan, Wen", editor= "Allen, Alastair R.", pages = "231--245", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "Many Declarative Programming Languages (DPLs) such as KL1, Prolog, PARLOG, Miranda and SML are considered attractive candidates for artificial intelligent application and execution on parallel architecture. However, there are many issues such as compile-time granularity analysis, partial evalution, task scheduling and load balancing for the efficient implementations of DPLs on multiprocessor system. In this paper, we take the emphasis on the compiling implementation of PARLOG and SML on a distributed memory multiprocessor system (transputer array). Under the graph rewriting framework, a Heterogeneous Parallel Graph Rewritng Execution Model (HPGREM) and corresponding description Language CIL are proposed. Based on the HPGREM, a parallel abstract machine PAM /TGR (Parallel Abstract Machine for Term Graph Rewriting) and corresponding compilation rules to generate PAM/TGR code are presented. Futhcrmore, an optimised parallel compiler for executing declarative programs on transputer array is described. The performance statistic on a 16-nodes transputer array demonstrates the effectiveness of our model, compiling techniques and compiler." } @InProceedings{SeredynskKitajima92, title = "{I}mplementation of learning automata games on a 128-transputer reconfigurable machine using {VCR}1.8c ({V}irtual {C}hannel {R}outer)", author= "Seredynski, Franciszek and Kitajima, Jo\~{a}o Paulo and Plateau, Brigitte", editor= "Allen, Alastair R.", pages = "246--250", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "An implementation of learning automata games on a distributed memory message-passing reconfigurable multiprocessor with 128 Transputers is presented. The game is played using a conjugate exchange process in order to transform the maximal price point into the Nash point. The game was implemented in Occam2 with Virtual Channel Router (VCR), a router developed at the University of Southampton." } @InProceedings{LaakHertzberg92, title = "{N}onconvex continuous optimization experiments on a transputer system", author= "Laak, A. ter and Hertzberger, L. O. and Sloot, P. M. A.", editor= "Allen, Alastair R.", pages = "251--265", booktitle= "{P}roceedings of {W}o{TUG}-15: {T}ransputer {S}ystems - ongoing {R}esearch", isbn= "90 5199 085 5", year= "1992", month= "mar", abstract= "In this paper we investigate the functionality of various parallel implementations of Simulated Annealing on a transputer platform. The optimization problem to be solved is that of efficiently finding the global minimum in continuous spaces. Our work concentrates on the consequences of long-range and short-range interactions on algorithmic and geometric decomposition schemes. We introduce a mixed transputer topology to by-pass some of the inherent time critical operations involved. We show that combining the Fast Simulated Annealing algorithm with a systolic decomposition strategy results in a highly efficient algorithm for continuous optimization problems. Experiments indicate that incorporation of functional decomposition of the energy function results in a near optimal implementation." } @InProceedings{Johnson93, title = "{T}he {INQUEST} {T}ransputer {N}etwork {D}ebugger", author= "Johnson, M.", editor= "Kerridge, Jon", pages = "1--10", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{Thompson93, title = "{G}lobally-{C}onnected {F}ault-{T}olerant {S}ystems", author= "Thompson, Peter", editor= "Kerridge, Jon", pages = "11--24", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{BurgessLivesey93, title = "{A}n {E}xecution {H}arness for {T}ransputer {B}ased {E}mbedded {S}ystems", author= "Burgess, P. and Livesey, M. J. and Allison, C.", editor= "Kerridge, Jon", pages = "25--40", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{JellyMorris93, title = "{M}ixed {L}anguage {P}rogramming for {T}ransputer {N}etworks, {A} {C}ase {S}tudy", author= "Jelly, I. E. and Morris, S. A.", editor= "Kerridge, Jon", pages = "41--53", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{DAvanzoPoli93, title = "{T}ransputer {B}ased {P}ipeline {M}achine and {I}ts {L}anguage in {N}uclear {P}hysics", author= "D'Avanzo, B. and Poli, M. De and Maron, G. and Mazza, M. L. and Scanferlato, S. and Staiano, G. and Tang, X. N. and Vedovato, G.", editor= "Kerridge, Jon", pages = "54--65", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{Morse93, title = "{S}patial {S}imulation {M}odelling of {I}nsect {P}opulation {D}ynamics on a {T}ransputer {N}etwork", author= "Morse, D. R.", editor= "Kerridge, Jon", pages = "66--75", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{Goodeve93, title = "{M}apping {R}evisited", author= "Goodeve, D.", editor= "Kerridge, Jon", pages = "76--90", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{NaimTeruel93, title = "{ANDES}: {A} {P}erformance {A}nalyzer for {P}arallel {P}rograms", author= "Naim, O. and Teruel, A.", editor= "Kerridge, Jon", pages = "91--99", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{CachiaManson93, title = "{CCDM} -- {A} {D}esign {M}ethodology for {M}odelling {C}ommunicating {C}ode in {P}arallel {S}ystems", author= "Cachia, E. A. and Manson, Gordon A.", editor= "Kerridge, Jon", pages = "100--114", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{CaoVel93, title = "{S}upporting a {R}apid {P}rototyping {S}ystem for {D}istributed {A}lgorithms on a {T}ransputer {N}etwork", author= "Cao, J. and Vel, O. de and Wong, Adam K. L.", editor= "Kerridge, Jon", pages = "115--130", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{NixonCroll93, title = "{T}he {F}unctional {S}pecification of {OCCAM} {P}rograms for {T}ime {C}ritical {A}pplications", author= "Nixon, Patrick and Croll, Peter R.", editor= "Kerridge, Jon", pages = "131--144", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{RaoBacon93, title = "{A} {C}oncurrent {A}lgorithm for the {R}econstruction of {N}uclear {M}agnetic {R}esonance {S}canner {I}mages", author= "Rao, D. R. K. and Bacon, R. A.", editor= "Kerridge, Jon", pages = "145--154", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{SheaCheung93, title = "{A} {T}echnique for {F}ast {P}re-emptions in a {M}ulti-{P}riority {E}nvironment", author= "Shea, K. M. and Cheung, M. H. and Lau, Francis C. M.", editor= "Kerridge, Jon", pages = "155--166", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{AraujoRuz93, title = "{P}arallel {E}xecution of {P}rolog on a {T}ransputer-{B}ased {N}etwork", author= "Araujo, L. and Ruz, J. J.", editor= "Kerridge, Jon", pages = "167--181", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{PietroVillano93, title = "{G}lobal {T}ime {M}easurements in {T}ransputer {N}etworks", author= "Pietro, Giuseppe de and Villano, Umberto", editor= "Kerridge, Jon", pages = "182--195", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{NettoGathy93, title = "{T}ransputer {B}ased {A}rchitecture for {R}obot {C}ontrol", author= "Netto, J. and Gathy, L. and Campion, G. and Trullemans, C.", editor= "Kerridge, Jon", pages = "196--208", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{Barrett93, title = "{H}ow {T}o {W}rite a {H}ighly {P}arallel {P}rogram", author= "Barrett, Geoff", editor= "Kerridge, Jon", pages = "209--217", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{StallardDunn93, title = "{D}ynamic {R}eal-{T}ime {S}cheduling for a {P}arallel {P}roduction {S}ystem on an {E}nhanced {T}ransputer {A}rray", author= "Stallard, P. W. A. and Dunn, R. W. and Daniels, A. R.", editor= "Kerridge, Jon", pages = "218--231", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{WaitheKerridge93, title = "{A}n {A}ppreciation of the {S}ubtleties of {S}hared {C}hannels in occam3", author= "Waithe, S. W. and Kerridge, Jon", editor= "Kerridge, Jon", pages = "232--245", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{Spahn93, title = "{V}ision {S}imulation on {D}istributed {S}ystems", author= "Spahn, C-M.", editor= "Kerridge, Jon", pages = "246--252", booktitle= "{P}roceedings of {W}o{TUG}-16: {T}ransputer and {O}ccam {R}esearch : {N}ew {D}irections", isbn= "90 5199 121 5", year= "1993", } @InProceedings{Kerridge94, title = "{D}ynamic {A}llocation of {P}rcesses and {C}hannels in {T}9000/{C}104 {N}etworks {U}sing occam 3", author= "Kerridge, Jon", editor= "Miles, Roger and Chalmers, Alan G.", pages = "1--17", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{PloegSunter94, title = "{D}edicated {M}ulti-{P}riority {S}cheduling", author= "Ploeg, E. and Sunter, Johan P. E. and Bakkers, Andr\`{e} W. P. and Roebbers, Herman", editor= "Miles, Roger and Chalmers, Alan G.", pages = "18--31", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{BattersbyEdwards94, title = "{A} {P}arallel {A}rchitecture for {E}fficient {C}lash {D}etection", author= "Battersby, A. and Edwards, Janet", editor= "Miles, Roger and Chalmers, Alan G.", pages = "32--39", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{DebbageHill94, title = "{S}outhampton's {P}ortable {O}ccam {C}ompiler ({SPOC})", author= "Debbage, Mark and Hill, Mark and Wykes, S. and Nicole, Denis A.", editor= "Miles, Roger and Chalmers, Alan G.", pages = "40--55", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{ElamvazutManson94, title = "{O}ccam, {PVM} and the {A}lternative {C}onstruct", author= "Elamvazuthi, Chandran and Manson, Gordon A.", editor= "Miles, Roger and Chalmers, Alan G.", pages = "56--68", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{MacaulayStringer94, title = "{O}bject {O}rientated {V}ersion {M}anagement on {A} {T}ransputer-{B}ased {A}rchitecture", author= "Macaulay, W. T. and Stringer, K. S.", editor= "Miles, Roger and Chalmers, Alan G.", pages = "69--76", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{MazzeoMazzocca94, title = "{E}fficiency {M}easurements in {H}eterogeneous {T}ransputer {S}ystems", author= "Mazzeo, A. and Mazzocca, N. and Villano, Umberto", editor= "Miles, Roger and Chalmers, Alan G.", pages = "77--86", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{StorerMilford94, title = "{D}eveloping {E}mbedded {A}ppliations in an {A}rray of {S}pecialised {T}ransputer {M}odules", author= "Storer, R. and Milford, D. J. and Dagless, E. L. and Bulas\~{}Cruz, J. A.", editor= "Miles, Roger and Chalmers, Alan G.", pages = "98--112", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{Waithe94, title = "{T}he {I}mplementation of a {S}calable {M}assively {P}arallel {C}oncurrency {C}ontrol {A}rchitecture", author= "Waithe, S. W.", editor= "Miles, Roger and Chalmers, Alan G.", pages = "113--127", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{BattersbySillitoe94, title = "{A}n {MSDOS} {B}ased {G}raphics {L}ibrary for {PC} {H}osted {T}ransputer {S}ystems", author= "Battersby, A. and Sillitoe, Ian P. W. and Edwards, Janet", editor= "Miles, Roger and Chalmers, Alan G.", pages = "128--138", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{TidmusChalmers94, title = "{D}istributed {M}onte {C}arlo {T}echniques for {I}nteractive {P}hoto-{R}ealistic {I}mage {S}ynthesis", author= "Tidmus, Jonathan and Chalmers, Alan G. and Miles, Roger", editor= "Miles, Roger and Chalmers, Alan G.", pages = "139--147", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{PhillipsParish94, title = "{O}n the {U}se of {T}ransputers in a {M}ultimedia {T}eleconferencing {S}ystem", author= "Phillips, Iain and Parish, D.", editor= "Miles, Roger and Chalmers, Alan G.", pages = "148--154", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{JelemenskHudec94, title = "{T}he {Q}uadruple {A}pproach in {F}ault-{T}olerant {T}ransputer {S}ystem {D}esign", author= "Jelemenska, K. and Hudec, L.", editor= "Miles, Roger and Chalmers, Alan G.", pages = "155--163", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{Nixon94, title = "{S}upporting the {P}rototyping of {T}ransputer {B}ased {F}ault {T}olerant {S}ystems", author= "Nixon, Patrick", editor= "Miles, Roger and Chalmers, Alan G.", pages = "164--174", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{B\"{o}ckmannGiese94, title = "{P}roviding {CSP}-{L}ike {F}unctionality in a {H}elios {E}nvironment", author= "B\"{o}ckmann, P. and Giese, H. and Wirtz, G.", editor= "Miles, Roger and Chalmers, Alan G.", pages = "175--189", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{Page94, title = "{A}utomatic {D}esign and {I}mplementation of {M}icroprocessors", author= "Page, Ian", editor= "Miles, Roger and Chalmers, Alan G.", pages = "190--204", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{AroujoRuz94, title = "{A} {T}ransputer-{B}ased {P}rolog {D}istributed {P}rocessor", author= "Aroujo, L. and Ruz, J. J.", editor= "Miles, Roger and Chalmers, Alan G.", pages = "190--204", booktitle= "{P}roceedings of {W}o{TUG}-17: {P}rogress in {T}ransputer and {O}ccam {R}esearch", isbn= "90 5199 163 0", year= "1994", month= "mar", } @InProceedings{Fletcher95, title = "{A} transputer implementation of a runtime timing constraint-monitor", author= "Fletcher, Fergus E.", editor= "Nixon, Patrick", pages = "1--15", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "A transputer implementation of a runtime constraint monitor is described. This monitor -- Sentinel -- uses Real-Time Logic (RTL) for specifying a program's timing constraints. Sentinel is a variant of an existing centralised uniprocessor monitor. In Sentinel," } @InProceedings{PilletLabarta95, title = "{PARAVER}: {A} {T}ool to {V}isualize and {A}nalyze {P}arallel {C}ode", author= "Pillet, V. and Labarta, J. and Cortes, T. and Girona, S.", editor= "Nixon, Patrick", pages = "17--31", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "PARAVER (PARallel Visualization and Events Representation) is a tool to visualize and analyze a parallel trace file. PARAVER can be used in two different ways: Creating its own trace file in accordance with the PARAVER trace format, or using a modified PVM library. PARAVER is based on a simple interface to manage several displaying windows. In fact, PARAVER can be seen as a tape recorder where the trace file is the tape. PARAVER provides many functionalities to see and analyze qualitatively the trace file. Moreover, the user can add his own analysis function to extend the functionality of the tool. This paper discusses the basic concept, design and use of PARAVER. We explain in detail each window. The different functionalities of PARAVER are also examined. Finally we present the future directions of our research." } @InProceedings{Hill95, title = "{P}arallel {I}mperative {F}unctional {P}rogramming", author= "Hill, Steve", editor= "Nixon, Patrick", pages = "33--46", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", } @InProceedings{Cook95, title = "{A} fast {C} {K}ernel for {P}ortable occam {C}ompilers", author= "Cook, Barry M.", editor= "Nixon, Patrick", pages = "47--65", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "This paper describes an experiment in providing explicitly parallel constructs in the style of occam within a functional programming environment. The work is based upon the monadic style proposed and described by Moggi, Wadler, Peyton Jones and others. The approach is pragmatic and conservative in that parallelism is treated as an imperative feature implemented by monadic functions. Overloading is used to provide a class of channel protocols. As in occam, data transmitted over a channel is fully evaluated and must be of ground type. An algorithm for checking channel usage in the presence of dynamic process and channel creation is described. The work can be described as an extension of functional notations allowing for explicit imperative-style parallelism. Alternatively, one could view it as extending the vocabulary of the occam language to allow for recursion, higher-order constructions and dynamic process and channel creation." } @InProceedings{RothwellShaw95, title = "{P}orting the {INMOS} occam {C}ompiler to the {SPARC} {A}rchitecture", author= "Rothwell, K. and Shaw, G. and Smith, A", editor= "Nixon, Patrick", pages = "67--74", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "occam is a relatively uncomplicated programming language designed to efficiently program parallel computer systems. It is not tied to a particular architecture but until recently has only been available for the transputer range of microprocessors. This paper describes a port of the standard INMOS occam 2 toolset Transputer compiler to the Sun SPARC architecture." } @InProceedings{BurgessChalmers95, title = "{O}ptimum {T}ransputer {C}onfigurations for {R}eal {A}pplications {R}equiring {G}lobal {C}ommunication", author= "Burgess, Colin J. and Chalmers, Alan G.", editor= "Nixon, Patrick", pages = "75--85", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "If complex problems are to be solved in reasonable computation times, then large scale parallel processing is necessary. For many of these problems, the density of the global communications dominated the performance of the parallel implementation. In these cases, the design of the interconnection network for the processors is known to play a significant part in the efficient implementation of problems on a large T800 transputer systems. This paper presents a new genetic algorithm for generating optimal configurations, augmented by simulated annealing for selected refinement of difficult cases. These configurations have the further advantage that they satisfy the best known criteria for producing configurations that perform well on real applications. The paper concludes by describing the impact this might have on the design of future T9000 transputer configurations." } @InProceedings{BiriukovUlyanov95, title = "{P}arallel application development with dynamo", author= "Biriukov, A. and Ulyanov, D.", editor= "Nixon, Patrick", pages = "87--95", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "An approach to the development of parallel applications for the distributed memory computers based on the notion of configuration is presented. The configuration introduces a general context for the problems such as source program optimization, load balancing, mapping, processor network development. The paper contains the experimental results obtained with the DYNAMO system based on this approach." } @InProceedings{GreenMorgan95, title = "{P}arallelisation for the progressive refinement radiosity method for the synthesis of realistic images", author= "Green, Peter and Morgan, Ed", editor= "Nixon, Patrick", pages = "97--112", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "This paper discusses strategies for parallelising the radiosity method for image synthesis applicable to message passing architectures, in particular, transputer-based machines. The basic radiosity method, and a number of its developments are reviewed, as are previous parallelisation schemes. A number of parallelisation strategies are then discussed, with emphasis being placed on techniques for maximising the efficiency of the schemes by reducing communications overheads, scene structuring and scene partitioning. Results from the implementation of the various parallelisation approaches on a transputer-based Meiko Computing Surface are presented. The implications of the parallelisation strategies in terms of solution quality are also considered." } @InProceedings{AnandShapcott95, title = "{D}ata {M}ining in {P}arallel", author= "Anand, Sarabjot S. and Shapcott, C. Mary and Bell, David A. and Hughes, John G.", editor= "Nixon, Patrick", pages = "113--124", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "In this paper we discuss the efficient implementation of the STRIP (Strong Rule Induction in Parallel) algorithm in parallel using a transputer network. Strong rules are rules that are almost always correct. We show that STRIP is well suited for parallel implementation with scope at four different levels for the transputer network using different number of transputers. The choice of certain variables (the number and size of samples) in the STRIP algorithm affects the performance (speedup and efficiency) of the implementation." } @InProceedings{DouglasWood95, title = "{L}inda implementation revisted", author= "Douglas, Andrew and Wood, Alan and Rowstron, Antony", editor= "Nixon, Patrick", pages = "125--138", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "Linda is a model for communication and co-ordination of parallel processes. The model provides a virtual shared memory called tuple space, and primitives to place tuples into and remove tuples from tuple space. The style of programming provided by Linda is quite different to the style of, say, occam. We describe a new implementation of Linda across a network of transputers. We provide the four Linda primitives, in, out, rd and eval, together with a new primitive, collect, developed at York. The implementation focusses on two issues. The first issue is that the ordering of out operations in a sequential process must be preserved if we want Linda to act as a co-ordination language. Our implementation provides this. The second issue is the implementation of eval, Linda's mechanism for spawning processes. We outline an implementation which provides arbitrary spawning of processes which execute concurrently, despite the restriction, enforced by the transputer architecture, of declaring a static number of processes at compile time. We provide a small example to show how Linda can be used to write parallel programs, then outline current work being undertaken at York, which focusses on interpretive environments for high level parallel programming techniques. A prototype Linda implementation and ISETL interpreter have already been developed." } @InProceedings{TokhiHossain95, title = "{R}eal-time {P}erformance {E}valuation {I}ssues for {T}ransputer {N}etworks", author= "Tokhi, M. and Hossain, M. and Baxter, M. and Fleming, P. J.", editor= "Nixon, Patrick", pages = "139--150", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "This paper presents an investigation into the critical issues involved in real-time performance evaluation of a transputer network. Issues such as algorithm partitioning, mapping, inter-processor communication, granularity, regularity and compilers efficiency for numerical computation are investigated and presented in this chapter. A finite difference simulation algorithm for a flexible beam in transverse vibration evaluation is made, demonstrating fast processing techniques for real-time implementations." } @InProceedings{Poole95, title = "{U}sing records and pointers with occam 2.5", author= "Poole, Michael D.", editor= "Nixon, Patrick", pages = "151--162", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "The language extensions from occam 2 to occam 2.1 are introduced. A programming project using the language is described. Specific examples of the use of the new named types and record structures including pointers, are described. Some specific and general conclusions are drawn." } @InProceedings{SahibManson95, title = "{M}apping {PCSC} {D}esign {M}odel to {I}nmos {ANSI} {C}", author= "Sahib, S. and Manson, Gordon A.", editor= "Nixon, Patrick", pages = "163--181", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "A methodology for parallel system design called Parallel Communicating Sequential Code (PCSC) is currently being developed. A CASE tool based on this methodology is also being built which automatically generates C code for the PVM environment. Work is currently being carried out to extend the code generator to automatically generate C code for the Inmos toolset. This paper discusses the mapping of the PCSC design model onto Inmos Ansi C to make the automatic code generation possible. Where relevant, comparisons are made with respect to the C-PVM implementation." } @InProceedings{CrollGriffiths95, title = "{M}odelling {R}eal-{T}ime {B}ehaviour of {P}arallel {T}ransputer {S}ystems under {F}ailure {C}onditions", author= "Croll, Peter R. and Griffiths, P. M.", editor= "Nixon, Patrick", pages = "183--195", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "This paper describes work concerning the modelling of transputer The aims and problems of designing real-time systems are introduced. The key features of the model which are relevant to reliability are discussed. Algorithms for scheduling parallel and mono-processor real-time system are explained. Coloured Petri-nets in general are introduced, and then the key features of the CASE tool Design/CPN are covered. Details of how the model has been implemented, and how the model behaves are given. Conclusions from the work so far are presented, and the outstanding areas of work are discussed." } @InProceedings{Hazra95, title = "{A}pplication of {T}ransputer-based {P}arallel {C}omputation in {M}atching {R}eal-{T}ime {C}ontrol {M}odels", author= "Hazra, Tushar K.", editor= "Nixon, Patrick", pages = "197--212", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "Mathematical models describing physical processes can be 'matched' to discrete samples of processes by considering measured input-output data and adjusting coefficient parameters of the model to provide an optimal agreement between the system and model responses. This well known technique has been widely implemented in an off-line basis for many years. The process of matching can be based on standard optimization procedures such as Davidon Fletcher Powell, Fletcher Reeves or even simply Newton Raphson methods. Standard simulation routines such as Runge Kutta or Euler's methods can be used to generate the model responses. However, the procedure for model matching involves intensive computing. This paper offers a number of prospective approaches to the solution based on parallel computing methodologies. Using standardized model matching experiments and simulated noise-free data, performance comparisons for sequential and multiprocessor computations have been evaluated on a transputer-based system." } @InProceedings{ElamvazutManson95, title = "{I}ncorporating {U}se-{C}ase {A}nalysis in {PCSC} {M}ethod", author= "Elamvazuthi, Chandran and Manson, Gordon A.", editor= "Nixon, Patrick", pages = "213--226", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "Use-case analysis is a simple but useful technique for driving the process of analysis in a meaningful manner. It is used, in one form or another, in various object-orientated software development methods notably OOSE, Booch and OMT. In this paper, we explain how use-case analysis has been incorporated into PCSC, a method based on the occam model for developing parallel software systems. To illustrate the usage of use-case analysis in PCSC, we present a simple case study of a Character Sorting System." } @InProceedings{HuangMorgan95, title = "{A} {D}istributed {I}/{O} {C}ommunication {P}rotocol for a {N}etwork of {T}ransputers", author= "Huang, Runhe and Morgan, Mike", editor= "Nixon, Patrick", pages = "227--237", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "This paper describes an asynchronous communication protocol for an embedded network of transputer I/O devices. The aim of the protocol was to allow a message routing infrastructure small enough to fit withing the internal memory of the inexpensize T2 transputer range and yet be flexible enough to cater for all control and message routing requirements of a complex assembly machine. It was also a requirement that the network was scalable without the need to recompile the source code." } @InProceedings{Rabhi95, title = "{A} {P}arallel {P}rogramming {M}ethodology {B}ased on {P}aradigms", author= "Rabhi, Fethi A.", editor= "Nixon, Patrick", pages = "239--251", booktitle= "{P}roceedings of {W}o{TUG}-18: {T}ransputer and occam {D}evelopments", isbn= "90 5199 222 X", year= "1995", month= "mar", abstract= "Todays efforts are mainly concentrated on providing \"standard\" parallel languages to ensure the portability of programs across various architectures. It is now believed that the next level of abstraction that will be addresses is the application level. This paper argues that there is an intermediate level that consists of common parallel programming paradigms. It describes some of these paradigms and explains the basic principles behind a \"paradigm-orientated\" programming approach. Finally, it points to future directions which can make it feasable to build CASE tools that achieveautomatic parallel code generation." } @InProceedings{Walker96, title = "{H}ardware for {T}ransputing without {T}ransputers", author= "Walker, C. P. H.", editor= "O'Neill, Brian C.", pages = "1--10", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{HarrisonBrown96, title = "{D}ynamic {C}reation of {V}irtual {L}inks within {T}9000 {N}etworks", author= "Harrison, S. R. and Brown, Chris R.", editor= "O'Neill, Brian C.", pages = "11--20", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{LakkisJ96, title = "{I}nterconnecting {R}emote {LAN}s via {P}ublic {D}ata {N}etworks by {H}igh {P}erformance {P}arallel {R}outers", author= "Lakkis, A. and J, L Jacquemin and Dumas, M.", editor= "O'Neill, Brian C.", pages = "21--36", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{CravenCurtis96, title = "{C}onflict {F}ree {H}ardware {R}outing for {C}ommunication {B}ound {A}pplications", author= "Craven, M. P. and Curtis, K. M. and Wilde, S. A. and O'Neill, Brian C. and Ellis, J. W.", editor= "O'Neill, Brian C.", pages = "37--50", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{Matic96, title = "{D}esign and {I}mplementation of {C}omplex {T}elecom {P}rocesses using {S}tate {M}achine {C}oncepts", author= "Matic, V.", editor= "O'Neill, Brian C.", pages = "51--58", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{BeckettWelch96, title = "{E}mulating a {S}ecure {M}ulticasting {B}us using occam 2.1", author= "Beckett, David J. and Welch, Peter H.", editor= "O'Neill, Brian C.", pages = "59--74", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{KuklaKerridge96, title = "{A} {P}lug-in {D}isk-{I}nterface {P}rocess for the {WSQL} {D}ata {A}ccess {C}ontroller", author= "Kukla, R. and Kerridge, Jon", editor= "O'Neill, Brian C.", pages = "75--88", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{CookPeel96, title = "{T}he {P}ara-{PC}, {A}n {A}nalysis", author= "Cook, Barry M. and Peel, Roger M. A.", editor= "O'Neill, Brian C.", pages = "89--102", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{Mourney96, title = "{P}arallel {S}olution of {L}inear {ODE}s. {I}mplementation on {T}ransputer {N}etworks", author= "Mourney, G.", editor= "O'Neill, Brian C.", pages = "103--112", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{Chalmers96, title = "{M}emory {M}anagement {S}trategies for {P}arallel {V}olume {R}endering", author= "Chalmers, Alan G.", editor= "O'Neill, Brian C.", pages = "113--126", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{LeclercqFaure96, title = "{G}aussian {P}yramidal {F}ast {F}iltering and {P}arallel {I}mplementation", author= "Leclercq, N. Tonfack E. and Faure, A.", editor= "O'Neill, Brian C.", pages = "127--142", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{WoodWelch96, title = "{T}he {K}ent {R}etargettable occam {C}ompiler", author= "Wood, David C. and Welch, Peter H.", editor= "O'Neill, Brian C.", pages = "143--166", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", abstract= "A generic approach to targeting occam to non-transputer architectures is described. The principle is to build a register-level emulation of the major design elements of the transputer, using native registers of the target hardware, and reuse the standard occam toolset compiler with as little alteration as possible. The porting effort thus reduces to an architectural mapping rather than involvement in the compiler and code-generator. An immediate payoff comes from reuse of a well-developed and sophisticated compiler. An important scientific question, with relevance to efficient and portable parallel computing, is whether the crucial benefits of transputer architecture (such as the very low overheads for the management of processes and events) can be transferred through such emulation. We report some initial results for SPARC-based targets." } @InProceedings{Poole96, title = "{O}ccam for all - {T}wo {A}pproaches to {R}etargetting the {INMOS} {C}ompiler", author= "Poole, Michael D.", editor= "O'Neill, Brian C.", pages = "167--178", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{BakkersOtten96, title = "{I}mplementation of {KR}o{C} on {A}nalog {D}evices \"{SHARC}\" {DSP}", author= "Bakkers, Andr\`{e} W. P. and Otten, G. W. and Schwirtz, M. H. and Bruis, R. and Broenink, Jan F.", editor= "O'Neill, Brian C.", pages = "179--190", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", abstract= "This paper summarises the experiences gained at the Control Laboratory of the University of Twente in porting the Kent Retargetable occam Compiler - KroC - to the Analog Devices’ ADSP21060 SHARC Digital Signal Processor. The choice of porting the KRoC to the DSP processor was in our view both a challenge and an absolute necessity because DSP processors are an important ingredient in modern day control systems. Currently, our implementation contains the most important occam primitives such as channel communication, PAR, ALT, and most of the integer arithmatic. Furthermore, a basic kernel was realised, providing channel-communication based scheduling only. This porting process, using quite straight-forward modifications of the SPARC KRoC-translator, was done within six weeks. A representative benchmark was constructed, showing that the 33Mhz SHARC-KRoC implementation is 40\% faster than the the 25Mhz T800 using the INMOS D7205 Toolset." } @InProceedings{NicoleSivaram96, title = "{SCOTT}: {T}he {S}outhampton {COFF} {T}ools for {T}ransputers", author= "Nicole, Denis A. and Sivaram, R.", editor= "O'Neill, Brian C.", pages = "191--206", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{StoneMorse96, title = "{A} {S}oftware {D}evelopment {T}ool for {P}arallel and {D}istributed {S}ystems", author= "Stone, R. D. and Morse, D. R.", editor= "O'Neill, Brian C.", pages = "207--220", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{RodriguezAlmeida96, title = "{T}he {S}ingle {R}esource {A}llocation {P}roblem: {P}arallel {A}lgorithms on {D}istributed {S}ystems", author= "Rodriguez, C. and Almeida, F. and Morales, D. and Roda, J. L. and Garcia, F.", editor= "O'Neill, Brian C.", pages = "221--232", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{ClaytonWells96, title = "{A}n {E}xtended {V}ersion of {L}inda for {T}ransputer {S}ystems", author= "Clayton, Peter and Wells, George and Chalmers, Alan G.", editor= "O'Neill, Brian C.", pages = "233--240", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{Beton96, title = "{F}rom {O}bject {O}riented {A}nalysis to {I}mplementation using occam", author= "Beton, Rick D.", editor= "O'Neill, Brian C.", pages = "241--254", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{SingletonCook96, title = "{T}he {G}lobalisation of occam", author= "Singleton, Paul and Cook, Barry M.", editor= "O'Neill, Brian C.", pages = "255--270", booktitle= "{P}roceedings of {W}o{TUG}-19: {P}arallel {P}rocessing {D}evelopments", isbn= "90 5199 261 0", year= "1996", month= "feb", } @InProceedings{MartinJassim97a, title = "{A} {T}ool for {P}roving {D}eadlock {F}reedom", author= "Martin, Jeremy M. R. and Jassim, S. A.", editor= "Bakkers, Andr\`{e} W. P.", pages = "1--16", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "We describe a tool, programmed in Java, for the formal verification of the absence of deadlock and livelock in networks of CSP processes. The innovative techniques used scale well to very large networks, unlike the exhaustive state checking method employed by existing tools." } @InProceedings{Delft97, title = "{S}criptic: {P}arallel {P}rogramming in {E}xtended {J}ava", author= "Delft, Andr\`{e} van", editor= "Bakkers, Andr\`{e} W. P.", pages = "17--33", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "Scriptic is an expression based extension to the Java programming language, targeted at user interfaces, simulations and parallel computing on shared memory systems. The extras are mainly founded on the theory of Process Algebra: constructs for non-deterministic choice, parallelism and communica-tion. By default, these parallel constructs have interleaving seman-tics, rather than multi-threading or forking. Specific Java code fragments may run in their own threads or handle events from the windowing system. This makes interactive applications such as arcade games execute as fast as corresponding plain Java versions. GUI components such as buttons and menu items are enabled and disabled when applicable, without additional programming. This paper covers an example application in Scriptic, an overview of the language constructs, the implementation, originality, previous work and current work." } @InProceedings{Demaine97, title = "{H}igher-{O}rder {C}oncurrency in {J}ava", author= "Demaine, Erik D.", editor= "Bakkers, Andr\`{e} W. P.", pages = "34--47", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "In this paper we examine an extension to Hoare's Communicating Sequential Processes model called higher-order concurrency, proposed by Reppy. In this extension, communication algorithms (or events) are first-class objects and can be created and manipulated dynamically. In addition, threads are automatically garbage collected and channels are first-class, that is, they can be passed over other channels. We describe the design of a Java package that implements the main features of higher-order concurrency, with similar ease-of-use to Reppy's Concurrent ML system. Our implementation can be easily extended to use a distributed system, which is a major limitation with Concurrent ML. We also hope to bring the idea of higher-order concurrency to a wider audience, since it is extremely powerful and flexible, but currently only well known to the programming-languages community." } @InProceedings{HilderinkBroenink97, title = "{C}ommunicating {J}ava {T}hreads", author= "Hilderink, Gerald H. and Broenink, Jan F. and Vervoort, Wiek and Bakkers, Andr\`{e} W. P.", editor= "Bakkers, Andr\`{e} W. P.", pages = "48--76", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "The incorporation of multithreading in Java may be considered as a significant part of the Java language, because it provides rudimentary facilities for concurrent programming. However, we belief that the use of channels is a fundamental concept for concurrent programming. The channel approach as described in this paper is a realization of a systematic design method for concurrent programming in Java based on the CSP paradigm. CSP requires the availability of a Channel class and the addition of composition constructs for sequential, parallel and alternative processes. The Channel class and the constructs have been implemented in Java in compliance with the definitions in CSP. As a result, implementing communication between processes is facilitated, the programmer can avoid deadlock more easily, and the programmer is freed from synchronization and scheduling constructs. The use of the Channel class and the additional constructs is illustrated in a simple application." } @InProceedings{Verhulst97, title = "{B}eyond transputing : fully distributed semantics in {V}irtuoso's {V}irtual {S}ingle {P}rocessor programming model and it's implementation on of-the-shelf parallel {DSP}s.", author= "Verhulst, Eric", editor= "Bakkers, Andr\`{e} W. P.", pages = "77--86", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "Virtuoso Classico /VSP is a fully distributed real-time operating system originally developed on the INMOS transputer. Its generic architecture is based on a small but very fast nanokernel and a portable preemptive microkernel. It was further on ported in single and virtual single processor implementations to a wide range of processors. As the basis of any real-time application is a scheduler that allows the developer to use the minimum schedule to satisfy the real-time requirements, a number of derived Virtuoso tools have been developed with complementary functionalities. This paper describes the rationale for developing the distributed semantics of Virtuoso's microkernel and describes some of the implementation issues. The analysis is based on the parallel DSP implementations as these push the performance limits most for hard real-time applications. The Virtuoso tools are being ported and further developed in the DIPSAP-II and EURICO OMI/Esprit projects." } @InProceedings{Gook97, title = "{R}econfigurable {C}omputing", author= "Gook, Roger", editor= "Bakkers, Andr\`{e} W. P.", pages = "87--87", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "The name may be familiar of old to the WoTUG community, but it has now been adopted by one of the fastest growing sectors of the silicon industry. Reconfigurable Computers are computing systems whose hardware architecture can be modified by software to suit the application at hand. The core component is the FPGA. Remarkable performance gains are achieved by placing an algorithm in an FPGA for embedded applications, compared with using a microprocessor or DSP. This is because an FPGA takes advantage of hardware parallelism while reducing the timing overheads needed for general-purpose microprocessor applications. For example the time taken by load/store operations and instruction decoding can be eliminated. Reconfiguration enables the FPGA to provide a problem specific computer for highly optimised application performance. Just as high level programming languages liberated the first microprocessors programming languages will liberate the FPGA. The first of these languages to become commercially available is Handel-C. Handel-C is based on the CSP Model; it was developed by the Hardware Compilation Group at the University of Oxford and is to be marketed by ESL. The Handel-C tools enable a software engineer to target directly FPGAs in a similar fashion to classical microprocessor cross-compiler development tools, without recourse to a Hardware Description Language. Thereby allowing the software engineer to directly realise the raw real-time processing capability of the FPGA. The skills and expertise gained by the WoTUG, provide the group with a competitive advantage to develop the innovative algorithms, applications and products in this domain." } @InProceedings{SingletonCook97, title = "{A}n {O}pen {S}ystems {S}trategy for {D}istributed occam {E}xecution", author= "Singleton, Paul and Cook, Barry M.", editor= "Bakkers, Andr\`{e} W. P.", pages = "88--103", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "We demonstrate the feasibility of distributed execution of occam programs within computer networks which support open systems standards for inter-process communication, remote execution and program hosting (e.g. hardware-independent programming languages and operating-system-independent APIs). We first propose a general architecture, and then describe a constructive proof of its viability (i.e. a prototype). which uses a novel multiplexed virtual channel protocol over UNIX sockets. Finally we summarise some of the opportunities for further development which this project has created." } @InProceedings{WelchWood97, title = "{H}igher {L}evels of {P}rocess {S}ynchronisation", author= "Welch, Peter H. and Wood, David C.", editor= "Bakkers, Andr\`{e} W. P.", pages = "104--129", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "Four new synchronisation primitives (SEMAPHOREs, RESOURCEs, EVENTs and BUCKETs) were introduced in the KRoC 0.8beta release of occam for SPARC (SunOS/Solaris) and Alpha (OSF/1) UNIX workstations. This paper reports on the rationale, application and implementation of two of these (SEMAPHOREs and EVENTs). Details on the other two may be found on the web. The new primitives are designed to support higher-level mechanisms of SHARING between parallel processes and give us greater powers of expression. They will also let greater levels of concurrency be safely exploited from future parallel architectures, such as those providing (virtual) shared-memory. They demonstrate that occam is neutral in any debate between the merits of message-passing versus shared-memory parallelism, enabling applications to take advantage of whichever paradigm (or mixture of paradigms) is the most appropriate. The new primitives could be (but are not) implemented in terms of traditional channels, but only at the expense of increased complexity and computational overhead. The primitives are immediately useful even for uni-processors -- for example, the cost of a fair ALT can be reduced from O(n) to O(1). In fact, all the operations associated with new primitives have constant space and time complexities; and the constants are very low. The KRoC release provides an Abstract Data Type interface to the primitives. However, direct use of such mechanisms still allows the user to misuse them. They must be used in the ways prescribed below else else their semantics become unpredictable. No tool is provided to check correct usage at this level. The intention is to bind those primitives found to be useful into higher level versions of occam. Some of the primitives (e.g. SEMAPHOREs) may never themselves be made visible in the language, but may be used to implement bindings of higher-level paradigms (such as SHARED channels and BLACKBOARDs). The compiler will perform the relevant usage checking on all new language bindings, closing the security loopholes opened by raw use of the primitives. The paper closes by relating this work with the notions of virtual transputers, microcoded schedulers, object orientation and Java threads." } @InProceedings{TidmusMiles97, title = "{P}refetch {D}ata {M}anagement for {P}arallel {P}article {T}racing", author= "Tidmus, Jonathan and Miles, Roger and Chalmers, Alan G.", editor= "Bakkers, Andr\`{e} W. P.", pages = "130--137", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "The particle tracing method uses a stochastic approach for global illumination computation of three-dimensional environments. As with many graphics techniques the computation associated with the image generation is complex. Parallel processing offers the potential of solving the computational complex particle tracing more rapidly. Distributed memory parallel systems are scalable and readily available. However, large environmental models are often bigger than individual node storage capabilities requiring data management to distribute and control the movement of environmental data as computation proceeds. Prefetch data management attempts to reduce idle time associated with remote data fetches by anticipating the latency and requesting required data items prior to their actual use during computation. This paper demonstrates how attention to work division and supply coupled with prefetch data management can be utilised to minimise overheads associated with a parallel implementation and reduce overall image synthesis time." } @InProceedings{HarrisonBrown97, title = "{WEAVE}: {A} {S}ystem for {D}ynamic {C}onfiguration of {V}irtual {L}inks", author= "Harrison, S. R. and Brown, Chris R.", editor= "Bakkers, Andr\`{e} W. P.", pages = "138--151", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "This paper describes Weave, a system which has been developed to support the use of a DS Link (IEEE 1355) based parallel computer architecture. Weave is an extension layer on IIPC (a simple transputer and UNIX parallel processing environment which provides dynamic process management, hardware transparency and message passing.) Although Weave is suitable for any T9000 Transputer network, it has been specifically designed to support the use of the AIVRU DS Link Vision Engine. A brief description is given of this machine, which processes live digital video using a mixture of hardware modules and software processes, all interconnected by DS Links. Weave provides the ability to make virtual link connections between processes on demand at run-time. These connections may be disconnected when no longer required, and hence the whole hardware architecture is dynamically reconfigured automatically to suit the requirements of the software application. A small functional interface provides processes with the ability to alter their own connectivity, and that of other processes. A temporal locking mechanism for each virtual link controls when it may be disconnected, and when pending connection requests can be fulfilled. This locking mechanism is driven by the action of communication over the virtual link. The Weave system supports transparently, the creation and destruction of connections between software processes and the image processing hardware modules (and between hardware modules directly). Also provided transparently by Weave is support for the use of hardware message replicator module(s) that multicast virtual link data to any number of DS Link recipients." } @InProceedings{Cook97, title = "{D}ata-{S}trobe {L}inks and {V}irtual {C}hannel {P}rocessors", author= "Cook, Barry M.", editor= "Bakkers, Andr\`{e} W. P.", pages = "175--188", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "Data-strobe links and message transfer protocols as used by the SGS-Thomson T9000 processor are described, as are the essential characteristics of the supporting virtual channel processor. A method of providing the same functionality without the use of a T9000 is suggested and illustrated by a T225 processor design using a software virtual channel processor and minimal supporting hardware. Finally, differences between the international standard, IEEE 1355, and the T9000 links from which it was derived are described and the implications for virtual channel links highlighted." } @InProceedings{WelchPoole97, title = "occam for {M}ulti-{P}rocessor {DEC} {A}lphas", author= "Welch, Peter H. and Poole, Michael D.", editor= "Bakkers, Andr\`{e} W. P.", pages = "189--198", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "A multi-processor implementation of occam2.1 for interconnected DEC Alpha processors has been derived from the Kent Retargetable occam Compiler. Each Alpha processor is supported over a PCI bus by a T425 transputer, whose links complete the communications fabric. This paper reports on the software mechanisms for supporting these platforms from occam so that they appear just like any transputer system -- a collection of processing nodes connected by channels placed on links. Advantage was taken of a proprietary multi-threading kernel, supplied as part of 3L Parallel C/AXP, to support parallel inter-node communication. occam multi- processing is supported by the KRoC kernel running within one of the 3L threads. The performance of generated code and networked systems has been benchmarked, with particular care being taken to measure the interaction overheads between the Alpha and its communication fabric. An image analysis program was also used in the benchmarking as an example of a real multi-processor application." } @InProceedings{Kalinowsk97, title = "{A} tool for optimisation of program execution in dynamic topology systems", author= "Kalinowski, Tomasz", editor= "Bakkers, Andr\`{e} W. P.", pages = "199--209", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "In this paper, we present a tool for optimisation of execution of parallel programs in distributed memory multi-processor systems with dynamic interconnection networks. The programs are described as Directed Acyclic Graphs (DAGs). The tool allows to compare simulated execution times for different task scheduling heuristics, target system topologies and communication models. A list scheduling algorithm, which has been applied, accounts for dynamic changes of interconnection structure. We demonstrate the efficiency of dynamic networks by comparing schedules obtained for dynamic and fixed topology systems. We propose a method of validating simulation results in a target system composed of T9000 transputers. The method relies on comparison of simulation results with execution times of synthetic OCCAM applications in the target system. The comparison indicates that assumptions taken on program execution and system model hold in the system under investigation." } @InProceedings{SilvaPedroso97, title = "{T}he {D}esign of {JET}: {A} {J}ava {L}ibrary for {E}mbarrassingly {P}arallel {A}pplications", author= "Silva, Luis M. and Pedroso, Hern\^{a}ni and Silva, Jo\~{a}o Gabriel", editor= "Bakkers, Andr\`{e} W. P.", pages = "210--228", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "JET is a parallel virtual machine. It has a dynamic number of processors which may run different proprietary operating systems. The processors communicate through the slowest intercommunication network of the world, do not provide peak performance and in the overall the parallel machine can be a very unstable computing surface. In other words, JET uses the idle CPU cycles of computers that are connected to the Internet, being a really inexpensive supercomputer. This paper presents the design of a Java parallel library that provides support for the execution of embarrassingly parallel applications. It inherits the security, robustness and portability features of Java and includes support for fault-tolerance, scalability and high-performance through the use of parallelism." } @InProceedings{Tudruj97, title = "{F}ine-grained global control constructs for parallel programming environments", author= "Tudruj, Marek", editor= "Bakkers, Andr\`{e} W. P.", pages = "229--243", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "Problems of evolved control in fine-grained parallel programs in distributed memory systems are discussed in the paper. Global control constructs are proposed which logically bind program modules, assign them to worker processors and define the involved flow of control. Implementation methods are discussed which assume control flow processing decoupled from data processing inside executive modules. The proposed constructs are extensions of the OCCAM 2 language. They can be incorporated into an intermediate code generated by a parallel language compiler or can be used by a programmer to define control flow between fine-grained program modules assigned to different processors. Architectural requirements for efficient implementation of the proposed control constructs are discussed." } @InProceedings{RodriguezSande97, title = "{E}xpanding the {M}essage {P}assing {L}ibrary {M}odel with {N}ested {P}arallelism", author= "Rodriguez, C. and Sande, F. and Le\`{o}n, C. and Garcia, F.", editor= "Bakkers, Andr\`{e} W. P.", pages = "244--251", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "A synchronous extension to the library model for message passing (Inmos C, PVM, Parmacs, MPI, etc.) is presented. This extension, provides a comfortable expression of nested parallelism from inside the message passing model. Furthermore of being a valuable tool for the presentation and teaching of parallel algorithms, the computational results prove that an efficiency similar to or even better than the one obtained designing and implementing algorithms using the native language can be achieved." } @InProceedings{Sakellari97, title = "{C}ompile-{T}ime {T}echniques for {M}apping {L}oop {P}arallelism", author= "Sakellariou, R.", editor= "Bakkers, Andr\`{e} W. P.", pages = "244--251", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "A synchronous extension to the library model for message passing (Inmos C, PVM, Parmacs, MPI, etc.) is presented. This extension, provides a comfortable expression of nested parallelism from inside the message passing model. Furthermode of being a valuable tool for the presentation and teaching of parallel algorithms, the computation results prove that an efficiency similar to or even bettern tahn the one obtained designing and implementing algorithms using the native language can be achieved." } @InProceedings{SchrettneJelly97, title = "{D}ynamic {P}rocess {I}nteraction", author= "Schrettner, Lajos and Jelly, Innes", editor= "Bakkers, Andr\`{e} W. P.", pages = "261--273", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "This paper concerns with the design of a building block for parallel and distributed software systems. We start with a very common problem of process interaction and successively derive a building block that can be used to construct systems that are correct by construction. When copies of this building block are connected to each other in an arbitrary fashion, the resulting system is deadlock/livelock free. An application is outlined where this method was used. We also would like to stress that the method of successive refinements used in this paper seems to be a fruitful approach in the design of protocols." } @InProceedings{HaasThornley97, title = "{T}he {M}acram\`{e} 1024 {N}ode {S}witching {N}etwork", author= "Haas, S. and Thornley, D. A. and Zhu, M. and Dobinson, R. W. and Martin, B.", editor= "Bakkers, Andr\`{e} W. P.", pages = "274--281", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "To date, practical experience in constructing switching networks using IEEE 1355 technology has been confined to relatively small systems and there are no experimental results on how the performance of such systems will scale up to several hundred or even several thousand nodes. Some theoretical studies have been carried out for large networks of up to one thousand nodes for different topologies. We present results obtained on a large modular testbed using 100 Mbits/s point to point DS links. One thousand nodes will be interconnected by a switching fabric based on the 32 way STC104 packet switch. The system has been designed and constructed in a modular way to allow a variety of different network topologies to be investigated (Clos, grid, torus, etc.). Network throughput and latency are being studied for various traffic conditions as a function of the topology and network size. Results obtained with the current 656 node setup are presented." } @InProceedings{Welch97, title = "{J}ava {T}hreads in {L}ight of occam/{CSP} ({T}utorial)", author= "Welch, Peter H.", editor= "Bakkers, Andr\`{e} W. P.", pages = "282--282", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "Java provides support for parallel computing through a model that is built into the language itself. However, the designers of Java chose to be fairly conservative and settled for the contepts of threads and monitors. Monitors were developed by Tony Hoare in the early 1970s as a structued way of using semaphores to control access to shared resources. Hoare moved away from this, in the late 1970s, to develop the theory of Communicating Processes (CSP). One reason for this was that the semantics of monitors and threads are not WYSIWIG, so that designing robust parallel algorithms at this level is seriously hard. Fortunately, it is possible to introduce the CSP model into Java through sets of classes implemented on top of its monitor support. By restricting interaction between active Java objects to CSP synchronisation primitives, Jav thread semantics become compositional and systems with arbitrary levels of complexity become possible. Multi-threaded Web applets and distributed applications become simpler to design and implement, race hazards never occured, difficulties such as starvation, deadlock and livelock are easier to confront and overcome, and performance is no worse than that obtained from directly using the raw monitor primitives. The advantages of teaching parallelism in Java purely through the CSP class libraries will be discussed. (These libraries were developed jointly at Kent and Oxford Universities in the UK and the University of Twente in the Netherlands.)" } @InProceedings{Hilderink97, title = "{C}ommunicating {J}ava {T}hreads {R}eference {M}anual", author= "Hilderink, Gerald H.", editor= "Bakkers, Andr\`{e} W. P.", pages = "283--325", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "This document describes a csp package that contains the channel and composition classes in Java according to the CSP paradigm. The csp classes form a complete package that contains the necessary ingredients for concurrent programming with channels in Java. The channel and composition concepts are derived from CSp and are developed according to the object-oriented paradigm. There is a clear pattern of concerns by means of object-oriented techniques using inheritance, delegation, genericity , and polymorphism. This document is meant as a reference manual and gives background information about the realization of the csp classes. The use of the CSP channels in Java is illustrated by means of using building blocks." } @InProceedings{PatrickGreen97, title = "{A} {M}ultiprocessor {OCCAM} {D}evelopment {S}ystem for {UNIX} {N}etwork {C}lusters", author= "Patrick, D. G. and Green, P. R. and York, T. A.", editor= "Bakkers, Andr\`{e} W. P.", pages = "289--198", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "This paper describes the OCCNIX multiprocessor environment, that enables OCCAM program development and testing, on clusters of UNIX workstations. Linked binary level interpreters form a virtual Transputer network that uses the TCP/IP client-server model and provides hardware independent multiple platform access in a similar way to the recently released JAVA. Results show a single processor performance that is half that of an actual Transputer and a four-processor speedup of 0.78. The system also has the ability to run development tools such as the ISPY network debugger." } @InProceedings{MartinJassim97b, title = "{H}ow to {D}esign {D}eadlock-{F}ree {N}etworks {U}sing {CSP} and {V}erification {T}ools -- {A} {T}utorial {I}ntroduction", author= "Martin, Jeremy M. R. and Jassim, S. A.", editor= "Bakkers, Andr\`{e} W. P.", pages = "326--338", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "The CSP language of C.A.R. Hoare originated as a blackboard mathematical notation for specifying and reasoning about parallel and distributed systems. More recently sophisticated tools have emerged which provide automated verification of CSP-specified systems. This has led to a tightening and standardisation of syntax. This paper outlines the syntax and semantics of CSp as it is now used and then describes how to design CSP networks, which are guaranteed to be free of deadlock, throught a succession of increasingly complex worked examples, making use of the verification tool Deadlock Checker." } @InProceedings{Teig98, title = "{PAR} and {STARTP} {T}ake the {T}anks", author= "Teig, Øyvind", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "1--18", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "The article describes how SPoC (Southampton Portable occam Compiler) has been used -- together with hand-written C -- in Autronica's new GL-100 radar-based fluid gauge. The final C-code is running on a Texas TMS320C32 DSP. Some 2600 lines of C code have been automatically translated from the occam sources. SPoC's non-preemptive scheduling filled our needs with a few exceptions. The main problem has been aligning occam 2 and ANSI-C data abstractions. A realtime system based on language support of high-level concurrency abstractions (as opposed to separate real-time kernel and use of library calls without direct language support) is soon to monitor worldwide charging and discharging of oil tankers." } @InProceedings{CoxNicole98, title = "{C}ommodity {H}igh {P}erformance {C}omputing at {C}ommodity {P}rices", author= "Cox, Simon J. and Nicole, Denis A. and Takeda, Kenji", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "19--26", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "The entry price of supercomputing has traditionally been very high. As processing elements, operating systems, and switch technology become cheap commodity parts, building a powerful supercomputer at a fraction of the price of a proprietrary system becomes realistic. We have recently purchased, in support of both our local and national collaborations, a dedicated computational cluster of eight DEC Alpha workstations. Each node has a 500MHz AXP 21164A processor with 256Mb memory running Windows NT 4.0 and cost under 6000 pounds. They are connected by 100Mb/s switched ethernet. In this paper we discuss some of the issues raised by our choice of processor, operating system and interconnection network. The results we present indicate that the cluster is fully competitive with systems from major vendors for a wide range of engineering and science applications, and at a lower cost by at least a factor of three. Indeed the only current area of under-performance relative to these vendors' high-end offerings is the inter-node network bandwidth and latency. We give some initial results indicating how the network performance might be improved under Windows NT." } @InProceedings{GreveSchwirtz98, title = "{A}n {A}/{D} {D}/{A} board using {IEEE}-1355 {DS}-{L}inks for {H}eterogeneous {M}ultiprocessor {E}nvironment", author= "Greve, O. J. and Schwirtz, M. H. and Hilderink, Gerald H. and Broenink, Jan F. and Bakkers, Andr\`{e} W. P.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "27--38", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "In our approach for developing heterogeneous control systems, we have developed a real-time A/D D/A board called \"the Raptor\". The Raptor communicates over high-speed and highly-reliable DS-links (IEEE-1355). To obtain highly accurate analogue conversions, the A/D and D/A converteds have a 12-bit resolution. We measured a maximum sampling frequency of 90.5kHz on each A/D channel. The maximum sampling frequency of each D/A channel has been measured to be approximately 145kHz. For communication with the rest of the control environment, two 100Mbit/s DS-links are available. A data transfer rate of 5.57Mbytes/s has been achieved on each DS-link adapter. The Raptor forms a part of a heterogeneous multiprocessor closed-loop control environment. This new environment can be used, amongst others, for controlling heavy robot applications. The work on this environment takes place in scope of JavaPP (Java Plug and Play) project. The software will be developed together with the CJT-library that provides inherent object-orientated and parallel design patterns, according to CSP paradigm, in Java." } @InProceedings{ONeillCoulson98, title = "{A} {D}istributed {P}arallel {P}rocessing {S}ystem for the {S}trong{ARM} {M}icroprocessor", author= "O'Neill, Brian C. and Coulson, G. C. and Wong, Adam K. L. and Hotchkiss, R. and Ng, J. H. and Clark, S. and Thomas, P. D. and Cawley, A.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "39--48", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "Recent developments in hardware message routing devices have demonstrated significant performance benefits for parallel processing networks. This work describes a system which uses a single chip interface between the high performance StrongARM processor and the existing ICR C416 message routing chip. The ICR C416 is a non-blocking communications routing device. Each device allows concurrent communications with up to 16 processors. A distributed parallel processing system can be constructed using the StrongARM and ICRC416 devices, with features similar to that of a transputer system but with the benefits of the higher clock speed and cache memory of the StrongARM processor." } @InProceedings{BoostenDobinson98, title = "{A} {PCI}-based {N}etwork {I}nterface {C}ontroller for {IEEE} 1355 {DS}-{L}inks", author= "Boosten, Marcel and Dobinson, R. W. and Martin, B. and Stok, P. D. V. van der", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "49--68", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "We have investigated the construction of a parallel computer using IEEE 1355 high-throughput low-latency DS link networks and high-performance commodity processors running a standard operating system. In this context a DS Network Interface Controller (DSNIC) has been developed. The board's hardware, controlled by FPGA firmware, together with the host software, provides a CSP based message passing interface between standard OS processes. This paper describes how the design and realisation of the DSNIC refleat our aim: low-latency high-throughput inter-process communication. We show the benchmark results, their analysis, and suggest further performance gains that might be possible." } @InProceedings{AndersonBoosten98, title = "{IEEE} 1355 {DS}-{L}inks: {P}resent {S}tatus and {F}uture {P}rospects", author= "Anderson, C. R. and Boosten, Marcel and Dobinson, R. W. and Haas, S. and Heeley, R. and Madsen, N. A. H. and Martin, B. and Pech, J. and Thornley, D. A. and Ullod, C. L.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "69--80", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "IEEE 1355 HS-Links and their support devices have been investigated as part of the ESPRIT projects Macram\`{e} and Arches. A description of the HS-Link technology and initial experience with the RCube 8-way packet router and the Bullit HS-Link interface device are presented. A 64 node HS-Link switching network based using these devices is being constructed at CERN. We report on the design and construction of the network testbed." } @InProceedings{AuburyPage98, title = "{A}dvanced {S}ilicon {P}rototyping in a {R}econfigurable {E}nvironment", author= "Aubury, Matt and Page, Ian and Plunkett, Dominic and Sauer, Matthias and Saul, Jonathan", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "81--92", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "A flow is proposed which offers a programming approach to the systems design of application specific micro-controllers. This flow is based on Handel-C, an occam-based language with C-like syntax for hardware compilation. Tools have been developed for compilation and concurrent simulation (co-simulation) of hardware and software parts of a system, and a reconfigurable board has been designed which can be used for rapid prototyping of the application specific micro-controller. The final design can be compiled into a structural VHDL netlist for a standard cell ASIC process." } @InProceedings{MartinJassim98, title = "{A} {T}echnique for {C}hecking the {CSP} sat {P}roperty", author= "Martin, Jeremy M. R. and Jassim, S. A.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "93--110", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "This paper presents an algorithm for checking that a CSP process satisfies a specification defined by a boolean-valued function on its traces and refusals, i.e. P sat f(tr, ref) This is contrasted with the refinement approach, as implemented by the FDR tool, of checking that one CSP process is a possible implementation of another, i.e. P \>= SPEC" } @InProceedings{Lawrence98a, title = "{E}xtending {CSP}", author= "Lawrence, Adrian E.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "111--132", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "CSP, timed or untimed, has not included a general treatment of priority, although the PRI ALT constructor is an essential part of occam. This paper introduces CSPP which includes a generalization of PRI ALT in the form of a prioritized external choice P \<pribox\> Q. PRI PAR is also included. A new denotational semantics is introduced, although only the simplest model is outlined. The work is intended to provide a solid rogorous foundation for hardware-software codesign. And a companion paper describes untimed HCSP which is a further extension of CSP built upon these foundations. It was first presented informally at the Twente WoTUG-20 technical meeting." } @InProceedings{Lawrence98b, title = "{HCSP}: {E}xtending {CSP} for {C}odesign and {S}hared {M}emory", author= "Lawrence, Adrian E.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "133--156", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "HCSP is a variant of CSP adapted to capture the semantics of hardware compilation, among other purposes. It extends CSP in several ways; it includes priority; events can be combined; new synchronization constructors are introduced; and state is explicitly modelled. Including state permits the treatment of shared memory as well as message passing systems. A possible denotational semantics is included here ths allowing proper treatment of such systems. Although most of these extensions were motivated by the needs of hardware compilation, HCSP can be applied more widely including software and thus can form the foundation of a codesign language. HCSP is an extension of CSPP; familiarity of CSPP is assumed here." } @InProceedings{Kalogerop98, title = "{D}eveloping an optimising compiler for occam", author= "Kalogeropoulos, Spiridon", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "157--166", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "occam is a high-level language which got constructs for generating explicitly concurrent processes which communicate using channels. In this paper we present our methodology for developing an optimising occam compiler which consist of a framework to represent concurrency and the semantic properties of an occam program that enables efficient process optimisations, and inter-procedural optimisations to be performed. Furthermore, we tackle the issue of retargeting the optimising occam compiler for different processors of the transputer family." } @InProceedings{SheenAllen98, title = "oc-{X}: an {O}ptimising {M}ultiprocessor occam {S}ystem for the {P}ower{PC}", author= "Sheen, Tim and Allen, Alastair R. and Ripke, Andreas and Woo, Stacy", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "167--186", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "The development of a PowerPC port of the KRoC (portable occam compiler) is described. As well as the basic port, a multiprocessor run time system provides services for user programs, including efficient occam channels between distributed processes, natural access to host file systems and TCP/IP network sockets. Optimization of target assembly code is discussed, with methods for removing the inefficiencies introduced by the KRoC translation process." } @InProceedings{Poole98, title = "{E}xtended {T}ransputer {C}ode -- a {T}arget-{I}ndependent {R}epresentation of {P}arallel {P}rograms", author= "Poole, Michael D.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "187--198", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "The transputer instruction set and its symbolic representation are reviewed. An alternative representation named ETC-code, suitable for an intermediate representation in a retargettable occam compiler, is motivated and described. The translation of such a language into a variety of alternative target languages is discussed. Its use as a representation for programs whose target processor type is not yet known is proposed." } @InProceedings{WongLau98, title = "{MALT}: {A} {M}ultiway {A}lternation {C}onstruct for occam", author= "Wong, Adam K. L. and Lau, Francis C. M.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "199--210", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "The alternation construct in occam provides a form of binary selective communication to the cooperating tasks of a concurrent computation. The use of this construct could lead to increased responsiveness and efficiency of concurrent programs. However, the expressiveness of the construct is restricted in the sense that only two parties can be involved in a communication. We extend the current implementation of the alternation construct to accept an arbitrary number of channel inputs such that multiway (as opposed to binary) selective communication is made possible. A new construct called multiway alternation -- \"MALT\", is proposed for occam and is implemented in the transputer hardware." } @InProceedings{Umland98, title = "{P}arallel {G}raph {C}olouring using {J}ava", author= "Umland, Thomas", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "211--218", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "In this paper a parallel, pipeline orientated version of a well-known sequential graph coloring heuristic is introduced. Runtime and speedup results of an implementation in JAVA on a four processor machine are presented and discussed." } @InProceedings{Sousa CasJr98, title = "{A} {F}ault-{T}olerant {O}n-board {C}omputer for {S}pace {A}pplications", author= "Sousa Castro, Helano de and Jr, Jo\~{a}o Reinaldo Imbiriba and Silveira, Jarbas Aryel N. and Santiago, Valdivino and Monteiro, Ant\^{o}nio Miguel Vieira", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "219--230", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "The first Brazilian microsatellite will be launched at the middle of 1998. The on-board computer, named Trisputer, will play a major part in the mission, since it will perform essential on-board functions, such, as guidance, control of the on-board instrumentation, telemetry/telecommand, and control of some on-board scientific experiments. The Trisputer is a fault-tolerant multiprocessor computer with a high reliability, when compared to such systems as TMR, and Duplex. This paper describes the conception and implementation of the hardware of this computer, as well as it shows its reliability model." } @InProceedings{KatalovKatalov98, title = "{D}esign and {M}onitoring {S}ystems for {P}arallel {P}rogramming", author= "Katalov, Alexander J. and Katalov, Vladimir J. and Nikolaev, Vladimir K.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "231--258", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", abstract= "In this paper we consider computer-based systems for designing, debugging, tuning and optimising parallel programs. The development of such systems is complicated and labour-intensive. Despite this, many interesting projects have been developed in the last few years, which can be effectively used to design and debug programs for parallel architectures. We analyse the current state in this area and the various approaches are compared." } @InProceedings{Welch98, title = "{J}ava {T}hreads in the light of occam/{CSP}", author= "Welch, Peter H.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "259--284", booktitle= "{P}roceedings of {W}o{TUG}-21: {A}rchitectures, {L}anguages and {P}atterns for {P}arallel and {D}istributed {A}pplications", isbn= "90 5199 391 9", year= "1998", month= "mar", } @InProceedings{KerridgeMcNair99, title = "{PEDFLOW} - {A} {S}ystem for {M}odelling {P}edestrian {M}ovement using occam", author= "Kerridge, Jon and McNair, N.", editor= "Cook, Barry M.", pages = "1--18", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "Road traffic modelling and simulation is currently well provided with a variety of packages dealing with the minute detail of road layouts from single isolated junction models to complete network simulations. There has also been much work in developing assignment models to optimise traffic signal sequences. The same is not true in the pedestrian modelling arena. With the exception of models dealing with railway and airport concourses and models of pedestrian movements around sports stadia there is very little support for the planner or designer of the pedestrian urban environment. The system discussed in this paper provides some insights as to the reasons for this and describes a highly parallel microscopic model called PEDFLOW (PEDestrian FLOW) which attempts to remedy the situation. The model operates on a grid size that is equivalent to the space occupied by a person at rest. The major difference between vehicular and pedestrian movement is that the former really has only one degree of freedom, forwards, whereas a pedestrian has unlimited two-dimensional degrees of freedom. Vehicular travel is governed by a large number of laws and regulations that make it much easier to model. Within the pedestrian urban environment there are very few laws and regulations and those that do apply are related to interactions with vehicles. The design of PEDFLOW is discussed and it is shown how the complex behavioural rules governing pedestrian movement are captured. The parallel architecture underlying the model is described and it shows how the maximum possible parallelism is achieved among all the moving pedestrians at any one time. The performance of the model is then presented and uses to which the model is being put are then briefly presented." } @InProceedings{Teig99, title = "{A}nother {S}ide of {SP}o{C}: occam's {ALT}er {E}go {D}issected with {PC}-lint", author= "Teig, Øyvind", editor= "Cook, Barry M.", pages = "19--36", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "26500 lines of Standard C (ANSI C) generated from occam sources by the Southampton Portable occam Compiler (SPoC) has been analysed by the static analysis tool PC-lint. The target machine is a TMS320C32 DSP where all (the supported) C\'s primitive data types are mapped to 32 bit read and writes. This architecture stretches \"ANSI\" C quite a bit, but the \"portable\" occam compiler promised to handle it. Even if we had experienced no problems with the generated code and it compiled with all error handling enabled, we had to insert some 15-20 different global PC-lint filters plus local filters via in-line C in the occam sources. This was in addition to the base-level filters we also used for hand-written C. It kept PC-lint quiet, for individual C files as well as \"global wrap up\". By discussing each individual filter we arrive at the conclusion that none hid errors in the generated C. The analysis revealed a few points where the occam language definition could have been made stricter. We would like to PC-lint the generated sources with fewer messages disabled - changes to SPoC are therefore suggested. Altogether SPoC seems to have passed this test quite well. Even if we have no expertise to modify the (open) SPoC sources, this report could be considered as contributing to a prospective \"Bazaar\" development model - to bring forward an even more robust compiler for a portable and perhaps prospering occam language." } @InProceedings{LiewONeill99, title = "{A} {P}roposal for an {O}perating {S}ystem for a {M}ulti-{P}rocessor {S}trong{ARM} {S}ystem", author= "Liew, E. W. K. and O'Neill, Brian C. and Wong, Adam K. L. and Clark, S. and Thomas, P. D. and Cant, R.", editor= "Cook, Barry M.", pages = "37--46", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "This paper describes real-time software features to support parallel processing. Synchronized channel communications are implemented as a basic operating system function for a distributed memory multi-processor StrongARM system. Inter-processor communications are handled using the ICR C416 packet router switch, which makes the system scalable. The system will provide a considerable layer of software abstraction and support to the end-users for developing their applications. The kernel layers, inter-process communications, control flow of application software, and the stages involved in application development for end-users, are described here. Some performance considerations are briefly discussed." } @InProceedings{MartinTiskin99, title = "{BSP} {M}odelling of {T}wo {T}iered {A}rchitectures", author= "Martin, Jeremy M. R. and Tiskin, Alex V.", editor= "Cook, Barry M.", pages = "47--56", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "In recent years there has been a trend towards using standard workstation components to construct parallel computers, due to the enourmous costs involved in designing and manufacturing special-purpose hardware. In particular we can expect to see a large population of SMP clusters emerging in the next few years. These are local-area networks of workstations, each containing around four parallel processors with a single shared memory. To use such machines effectively will be a major headache for programmers and compiler-writers. Here we consider how well-suited the BSP model might be for these two-tier architectures, and whether it would be useful to extend the model to allow for non-uniform communication behaviour. " } @InProceedings{MartinMcLatchie99, title = "{S}upercomputing {R}esource {M}anagement - {E}xperience with the {SGI} {C}ray {O}rigin 2000", author= "Martin, Jeremy M. R. and McLatchie, R. C. F. and Measures, K. M.", editor= "Cook, Barry M.", pages = "57--66", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "The Oxford Supercomputing Centre OSC was established in April 1998 to provide high-performance computing services to a consortium of Oxford University research groups. The main computer resource, an 84-processor SGI Cray Origin 2000 known as Oscar, is being deployed in a wide variety of research studies covering biological, medical, chemical, mathematical, physical and engineering topics (including parallel computing itself). In this paper we shall describe the queueing and accounting mechanisms we have developed to facilitate effective use of this powerful resource. We shall also describe innovative work in progress to optimise the performance of this machine, using simulation and genetic algorithms. " } @InProceedings{CookWhite99, title = "{J}ava {J}oins {IEEE}-1355 in the {H}ome {N}etwork", author= "Cook, Barry M. and White, N. H.", editor= "Cook, Barry M.", pages = "67--76", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "Issues concerning Home networks are discussed. The two main areas are the physical connections used and the communications protocols required. Of the physical connections available the IEEE-1355 family is addressed in particular. The software protocol proposed consists of embedding device drivers within the device itself. The device uploads its driver to one or many intelligent units. This approach is achieved here by using Java bytecode. It is argued that this mechanism eliminates the need for a pre-determined all-encompassing protocol, provides a simple and future-proof system and ensures that home networks can be quite literally plug and play. " } @InProceedings{Campbell99, title = "{A}n {A}lgorithm for {C}aching {S}oftware to {C}onfigurable {H}ardware", author= "Campbell, J. D.", editor= "Cook, Barry M.", pages = "77--86", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "In the same fashion that a memory cache arranges for machine instructions and data that are frequently accessed to operate from high speed memory, the functionality cache installs hardware implementations of frequently executed code sequences in reconfigurable hardware. Code sequences become candidates for instantiation as hardware if the benefits outweigh the costs over some accounting period. Algorithms are provided for converting sequences of stack manipulations characteristic of executable Java programs into systolic processing circuitry and mapping that machinery into networks of FPGAs (Field Programmable Gate Arrays)." } @InProceedings{VellaWelch99, title = "{CSP}/occam on {S}hared {M}emory {M}ultiprocessor {W}orkstations", author= "Vella, Kevin and Welch, Peter H.", editor= "Cook, Barry M.", pages = "87--120", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", 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." } @InProceedings{WoodMoores99, title = "{U}ser-{D}efined {D}ata {T}ypes and {O}perators in occam", author= "Wood, David C. and Moores, James", editor= "Cook, Barry M.", pages = "121--146", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "This paper describes the addition of user-defined monadic and dyadic operators to occam, together with some libraries that demonstrate their use. It also discusses some techniques used in their implementation in KRoC for a variety of target machines." } @InProceedings{Moores99, title = "{CCSP} - {A} {P}ortable {CSP}-{B}ased {R}un-{T}ime {S}ystem {S}upporting {C} and occam", author= "Moores, James", editor= "Cook, Barry M.", pages = "147--169", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "CCSP is a highly portable run-time system that conforms to the ideas of CSP and supports both the C and occam programming languages. Its aim is to further the use of the CSP mind-set in both industrial and academic applications. The run-time system implements a useful and efficient subset of the basic CSP constructs. It allows occam-style designs to be programmed in C, thereby allowing full use of the optimisation phases of standard C compilers. It supports the KRoC occam system for Linux/PC platforms. In addition, a number of features have emerged from industrial collaboration as essential for soft real-time systems in the real world. These include: prioritised scheduling with 32 priority levels, integration of communications hardware to provide support for distributed processing, and access to a highly accurate real-time clock. This paper discusses the high level structure and functionality of the features provided." } @InProceedings{Lawrence99, title = "{H}ard and {S}oft {P}riority in {CSP}", author= "Lawrence, Adrian E.", editor= "Cook, Barry M.", pages = "169--197", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "Parallel systems which include priority can experience conflicts when two concurrent processes assign different priorities to the same actions. There are at least two ways to resolve the difficulty: one is to halt; the other is to declare a draw and allocate all the offending actions the same priority. In CSPP these are called respectively hard and soft priority. Originally CSPP included only hard priority. Here we extend the language to include soft priority as well. The Acceptances semantics which is used to define CSPP does not require modification: it captures both soft and hard behaviours. " } @InProceedings{IvimeyCoo99, title = "{L}egacy of the {T}ransputer", author= "Ivimey-Cook, Ruth", editor= "Cook, Barry M.", pages = "197--211", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "The Inmos transputer was more than a family of processor chips; it was a concept, a new way of looking at system design problems. In many ways that concept lives on in the hardware design houses of today, using macrocells and programmable logic. New Intellectual Property (IP) design houses now specialise in the market the transputer originally addressed, but in many cases the multi-threaded software written for that hardware is still designed and written using the techniques of the earlier sequential systems. The paper discusses the original aims of the transputer as a system design component, how they have been addressed over the intervening decades and where we should be focussing our thoughts for the new millennium." } @InProceedings{CookPeel99, title = "{O}ccam on {F}ield {P}rogrammable {G}ate {A}rrays - {S}teps towards the {P}ara-{PC}", author= "Cook, Barry M. and Peel, Roger M. A.", editor= "Cook, Barry M.", pages = "211--228", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "At the April 1998 WoTUG conference (WoTUG-21), it was reported that ST Microelectronics was ceasing production of most of the transputer family and its associated serial link components. The possibility of WoTUG members producing transputer-like devices to emulate many of the transputer\'s parallel processing and communication concepts was aired. The authors left this meeting with the challenge of designing and implementing their own transputer, preferably to be built in Field Programmable Gate Array (FPGA) devices rather than custom or semi-custom silicon, for ease of prototyping and for flexibility of modification and re-use.\</p\>\<p\> One year later, this paper outlines the progress that has been made. Rather than just producing processor logic using the standard logic design methods, the authors have written a compiler that translates occam into a number of output formats that can be fed to various logic implementation packages. Occam programs may, however, be joined to logic modules designed in a conventional fashion, using synchronised channels in the usual manner. In addition to the DS-Link interface that was announced by 4-Links at WoTUG-21, an OS-Link module has been designed by the authors, and both of these may provide external communication interfaces between occam-based hardware and the outside world.\</p\>\<p\> Although in their early stages, this paper illustrates several designs that show how occam may be used to specify small processors suitable for mapping onto FPGAs. It also shows how occam is an ideal fast prototyping mechanism for peripheral interfaces that connect to INMOS Links. " } @InProceedings{HilderinkBroenink99, title = "{A} {D}istributed {R}eal {T}ime {J}ava {S}ystem {B}ased on {CSP}", author= "Hilderink, Gerald H. and Broenink, Jan F. and Bakkers, Andr\`{e} W. P.", editor= "Cook, Barry M.", pages = "229--242", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "Real-time embedded systems in general require a reliability that is orders ofmagnitude higher than what is presently obtainable with state of the art C programs. Thereason for the poor reliability of present day software is the unavailability of a formalismto design sequential C programs.The use of the CSP channel concept not only provides a formal base for inherentlyconcurrent real-time embedded system design it also adds a parallel dimension to objectoriented programming that is easily understood by programmers.The CSP channels as implemented in Java replaces the hazardous use of multi threadedprogramming with an unambiguous design concept that is easy to reason about. Multithreaded programming is completely removed from the programmer who is merelyrequired to program small sequential tasks that communicate with each other via theseCSP channels. The channel concept that has been implemented in Java deals with singleandmulti processor environments and also takes care of the real-time priority schedulingrequirements. For this, the notion of priority and scheduling have been carefullyexamined and as a result it was reasoned that both priority and scheduling code should beattached to the communicating channels rather than to the processes. Moreover in theproposed system, the notion of scheduling is no longer connected to the operating systembut has become part of the application instead. One has to get used to the idea that manyschedulers may be running in different parts of a program. The software implementationof the Java channel class may be obtained through: http://www.rt.el.utwente.nl/javapp." } @InProceedings{BroeninkBakkers99, title = "{C}ommunicating {T}hreads for {J}ava", author= "Broenink, Jan F. and Bakkers, Andr\`{e} W. P. and Hilderink, Gerald H.", editor= "Cook, Barry M.", pages = "243--262", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "The Java * thread model provides support for multithreading within the language and runtime system of Java. The Java synchronization and scheduling strategy is poorly specified and turns out to be of unsatisfactory real-time performance. The idea of Java is to let the underlying operating system specify the synchronization and scheduling principles. This may possibly result in different behavior on different operating systems whereas Sun claims Java to be system independent – \"write once, run everywhere\". In this paper we present a comprehensive specification for a new thread model for the Java platform.The theory of CSP fully specifies the behavior of synchronization and scheduling of threads at a higher level of abstraction, which is based on processes, compositions and synchronization primitives. The CSP concept is well thought-out and has been proven to be successful for realizing concurrent software for real-time and embedded systems. The Communicating Threads for Java (CTJ) packages that is presented in the paper provides a reliable CSP/thread model for Java. The CTJ software is available from our URL http://www.rt.el.utwente.nl/javapp." } @InProceedings{DobinsonStok99, title = "{F}ine {G}rain {P}arallel {P}rocessing on {C}ommodity {P}latforms", author= "Dobinson, R. W. and Stok, P. D. V. van der and Boosten, Marcel", editor= "Cook, Barry M.", pages = "263--276", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "We present a tight integration of a user-level thread scheduler and a zero-copy messaging system that has been designed and optimized for scalable and efficient fine-grain parallel processing, on commodity platforms, with support for fault-tolerance. The system delivers most of the performance of the underlying communication hardware to a multi-threaded application level, while introducing little CPU overhead. This is demonstrated by a performance analysis of an implementation using off-the-shelf commodity products: PCs, running the Linux operating system, equipped with Fast and Gigabit Ethernet network interface cards." } @InProceedings{BakkersStiles99, title = "{CSP} for {J}ava: {M}ultithreading for {A}ll", author= "Bakkers, Andr\`{e} W. P. and Stiles, G. S. and Welch, Peter H. and Hilderink, Gerald H.", editor= "Cook, Barry M.", pages = "277--279", booktitle= "{P}roceedings of {W}o{TUG}-22: {A}rchitectures, {L}anguages and {T}echniques for {C}oncurrent {S}ystems", isbn= "90 5199 480 X", year= "1999", month= "mar", abstract= "Many internet, real-time and embedded applications are most naturally designed using concurrency. Unfortunately, the design of concurrent (multithreaded) programs has the reputation of being extremely difficult and dangerous, due to the possibility of deadlock, livelock, race hazards, or starvation - phenomena not encountered in single-threaded programs. Lea [1] emphasizes concern for the apparent difficulty: \"Liveness considerations in concurrent software development introduce context dependencies that can make the construction of reusable components harder than in strictly sequential settings.\" Two approaches he suggests for design sound tedious and perhaps risky: \"Top-down (safety first): Initially design methods and classes assuming full synchronization (when applicable), and then remove unnecessary synchronization as needed to obtain liveness and efficiency...Bottom up (liveness first): Initially design methods and classes without concern for synchronization policies, then add them via composites, subclassing, and related layering techniques...\" Both suggest lengthy sessions of patching and testing until the application appears to work as desired. Even those intimately connected with Java seem reluctant to employ more than a single thread. The Swing documentation states \"If you can get away with it, avoid using threads. Threads can be difficult to use, and they make programs harder to debug. In general, they just aren\'t necessary for strictly GUI work, such as updating component properties\" [2]. Oaks and Wong [3], also associated with Sun, are more positive, but note that \"Deadlock between threads competing for the same set of locks is the hardest problem to solve in any threaded program. It\'s a hard enough problem, in fact, that we will not solve it or even attempt to solve it.\" Later they state \"Nonetheless, a close examination of the source code is the only option presently available to determine if deadlock is a possibility...\" and add that no tools exist for detecting deadlock in Java programs. We feel, however, based on fifteen years of experience, that concurrent approaches are the best way to design most programs. Done properly (e.g., using CSP [4]) this results in better understanding of the problem and the solution, and leads to much cleaner implementations. A tremendous amount of work has been done on and with CSP in recent years, and the present state of the language and the tools offers the Java programmer excellent facilities for the design and analysis of multithreaded programs. Furthermore, Java designs based on CSP class libraries can now be verified against formal specifications and checked for deadlock and livelock with CASE tools - prior to implementation. We present the CSP model (processes, channels, events, networks) and its binding into (100\% Pure) Java through the CSP class libraries developed at Kent [5] and Twente [6]. We describe some of the tools associated with CSP (e.g., FDR [7]) and demonstrate, in several practical applications, their use for checking specifications and proving the absence of deadlock. We emphasize that CSP concepts are easy to understand and apply and that the engineering benefits they confer on system design and implementation are significant for both real-time and non-real-time multithreaded systems." } @InProceedings{Sunter00, title = "{C}oncurrency in {I}ndustry ({W}ot, no {CSP}s?)", author= "Sunter, Johan P. E.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "Within an international company such as Philips, systems are made from the very small to the extremely large. And although parallelism is an important aspect of system architecture, it is often overlooked. Due to the wide variety of systems, parallelism presents itself in many different shapes, requiring different design approaches. What approaches have been chosen in the past, and do they have something in common? Can we learn from them how to do it better? What do we need in the future?" } @InProceedings{MartinHuddart00, title = "{P}arallel {A}lgorithms for {D}eadlock and {L}ivelock {A}nalysis of {C}oncurrent {S}ystems", author= "Martin, Jeremy M. R. and Huddart, Yvonne", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "1--14", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "Conventional model-checking techniques for analysing concurrent systems for deadlock or livelock are hampered by the problem of exponential state explosion: the overall number of global states that needs to be checked may grow exponentially with the number of component processes in the system. The state-of-the-art commercial tool FDR provides deadlock and livelock analysis but it is limited at present to analysing systems of up to one hundred million global states. The Deadlock Checker tool is capable of analysing very much larger systems by taking certain short-cuts. But this is achieved at the cost of incompleteness -- there are certain deadlock-free and livelock-free networks that may not be proven so using that tool. Here we investigate a different approach. We present parallelised model-checking algorithms for deadlock and livelock analysis and describe their implementation. The techniques are found to scale well running either on a conventional supercomputer or on a PC cluster." } @InProceedings{ZhouStiles00, title = "{T}he {A}utomated {S}erialization of {C}oncurrent {CSP} {S}cripts using {M}athematica", author= "Zhou, Weiyang and Stiles, G. S.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "15--32", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "This report discusses the design and implementation of a package of Mathematica-based tools for serializing scripts describing the behavior of concurrent systems in CSP. Under some conditions, serialization can yield code that is more efficient than multi-process versions and can better meet processor constraints. Under most conditions concurrent design is easier and more reliable so we prefer to design concurrently and only implement serially when necessary. The tools include a set of definitions and procedures to automatically change concurrent code to serial code. Conversions of the following step laws have been implemented thus far: external choice, generalized parallel, and alphabetized parallel; additional laws will be implemented in the next month or so. The tools support the input of the more formal typeset notation of CSP, which makes the script writing intuitive, and can convert the typeset version to the machine-readable version required by software such as FDR. The correctness of the conversions has been checked with the FDR package. This package should be of use to both those regularly working on concurrent systems and those learning CSP." } @InProceedings{VolkerinkHilderink00, title = "{CSP} {D}esign {M}odel and {T}ool {S}upport", author= "Volkerink, H. J. and Hilderink, Gerald H. and Broenink, Jan F. and Veroort, W.A. and Bakkers, Andr\`{e} W. P.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "33--48", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "The CSP paradigm is known as a powerful concept for designing and analysing the architectural and behavioural parts of concurrent software. Although the theory of CSP is useful for mathematicians, the programming language occam has been derived from CSP that is useful for any engineering practice. Nowadays, the concept of occam/CSP can be used for almost every object-oriented programming language. This paper describes a tree-based description model and prototype tool that elevates the use of occam/CSP concepts at design level and performs code generation for the level of implementation in Java, C/C++, and machine-readable CSP. The tool is a kind of browser that is able to assist modern workbenches (like Borland Builder, Microsoft Visual C++ and 20-SIM) with coding concurrency. The tree description model can be used to browse through the generated source code. The tool will guide the user through the design trajectory using supporting messages and several semantic and syntax rule checks. The machine-readable CSP can be read by FDR, enabling more advanced analysis on the design. Early experiments with the prototype tool show that the browser concept, combined with the tree description model, enables a user-friendly way to create a design using the CSP concepts and benefits. The design tool is available from our URL, http://www.rt.el.utwente.nl/javapp." } @InProceedings{RipkeAllen00, title = "{D}istributed {C}omputing using {C}hannel {C}ommunications in {J}ava", author= "Ripke, Andreas and Allen, Alastair R. and Feng, Y.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "49--62", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "Various methods of connecting CSP channels to external software systems are examined. The aim is to facilitate the implementation of distributed heterogeneous systems using channel communication. The paper concentrates on TCP/IP connections in a Java environment. The approaches used are: custom protocol; object serialization stream protocol; Remote Method Invocation (RMI); Common Object Request Broker Architecture CORBA). Practical systems are described and compared." } @InProceedings{WellsClayton00, title = "{A} {C}omparison of {L}inda {I}mplementations in {J}ava", author= "Wells, George and Clayton, Peter and Chalmers, Alan G.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "63--76", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "This paper describes the implementation of an extended version of Linda in Java. The extensions have been made with a view to increasing the efficiency of the underlying communication mechanisms and the flexibility with which data may be accessed, particularly in the area of distributed multimedia applications. The system is compared with two other recent implementations of Linda for Java: JavaSpaces from Sun Microsystems, and TSpaces from IBM. The comparison is performed both qualitatively, comparing and contrasting the features of the systems, and quantitatively, using a simple communication benchmark program and a ray-tracing program to assess the performance and scalability of the different systems for networks of workstations." } @InProceedings{HilderinkBroenink00, title = "{C}onditional {C}ommunication in the {P}resence of {P}riority", author= "Hilderink, Gerald H. and Broenink, Jan F.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "77--98", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "In this paper the behavior of conditional communication in the presence of priority will be described. In the theory of CSP, conditional communications are expressed by a (external) choice construct (also known as the alternative construct) by which the choice of one communication out of a set of communications is non-deterministic. In practice, some communication can be more important than others, so that, the choice is deterministic. Therefore, one can distinguish two prioritized alternative constructs; a symmetric alternative construct (ALT) and an asymmetric alternative construct (PRIALT). Current formal semantics and implementations of the ALT and PRIALT are based on the priorities of communication and not related to the surrounding priorities of communicating processes. This can result in a structural mismatch that can cause performance problems. In this paper a practical solution for realizing fair and unfair conditional communication in the presence of the PAR and the PRIPAR will be discussed." } @InProceedings{LoveMartin00, title = "{S}teering {H}igh-{P}erformance {P}arallel {P}rograms: a {C}ase {S}tudy", author= "Love, P. J. and Martin, Jeremy M. R.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "99--108", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "Computational steering is the ability to visualise the data from a computation in progress and to modify the future behaviour of the computation in response to this. It is often perceived as being something very difficult to implement, especially for parallel computations. However, given a good visualisation environment, we have found that this is not necessarily the case. We have sought to dispel this myth, using a very simple model which makes it easy to 'wire-up' an existing MPI parallel program for steering. New insights may quickly be gained by continually monitoring and guiding the progress of computational simulations, that were perhaps previously analysed only in their final state." } @InProceedings{CannonDenys00, title = "{A} {S}elf-{C}onfiguring {D}istributed {K}ernel for {S}atellite {N}etworks", author= "Cannon, Scott and Denys, Larry", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "109--120", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "The Space Software Laboratory is developing a self-configuring distributed kernel to be used on future satellite missions. The completion of this system will allow a network of heterogeneous processor nodes to communicate and broadcast in a scalable, self-configuring manner. Node applications software will be transparent to the underlying network architecture, message routing, and number of network nodes. Nodes may halt or be reset and later rejoin the network. The kernel will support in-flight programming of individual nodes." } @InProceedings{VugtBakkers00, title = "{A} {C}ruise {C}ontrol in occam based on an {I}mplementation of {KR}o{C} on the {P}hilips 8051 {M}icrocontroller", author= "Vugt, Frank T. M. van and Bakkers, Andr\`{e} W. P.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "121--136", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "This paper summarises the results of the realisation of a Cruise Control system in occam using an implementation of the Kent Retargettable occam Compiler (KRoC) on the Philips 8051 microcontroller. The increase in complexity of systems designed comes with difficulties that can probably be overcome using concurrent programming languages. occam is such a language, originally developed for use with transputers. The KRoC initiative allows one to translate the transputer assembly produced from a program written in occam into the assembly of another processor. In this case, it was implemented for the Philips 8051 microcontroller, which is an 8-bits processor. The design and realisation in occam of the Cruise Control system of Yourdon demonstrate its proper functioning. The generated code is tested using a real-time in-circuit 8051 emulator and special hardware to represent car and interface. The design process using occam is compared to a regular solution using a language like C. Since this port is the first of its kind inasmuch as it is not targeting 'large' processors like the SPARC, important conclusions can be drawn regarding the power of the CSP-concept. The port is not complete yet, future work on it is recommended." } @InProceedings{SenMuller00, title = "{S}ynchronisation in a {M}ultithreaded {P}rocessor", author= "Sen, Shondip and Muller, Henk and May, David", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "137--144", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "A multithreaded architecture exploits instruction level parallelism by interleaving instructions from disjoint thread contexts. As each thread executes within its own instruction stream with private data (the context registers), there is no interdependency between instructions from different threads. This allows high resource utilisation of a super scalar pipelined processor at a very low cost, in terms of complexity and silicon area. A new synchronisation mechanism for a multithreaded architecture is outlined. Two new instructions have been introduced to perform one to one and n-way synchronisation. The operation allows synchronisations to be requested and actioned efficiently on chip in as little as four clock cycles. Barriers and CSP style channels can easily be constructed with this new synchronisation instruction. A brief examination of performance of this multithreaded architecture shows that the optimum number of contexts per multithreaded processing element is four, based on test programs." } @InProceedings{Barnes00, title = "{B}locking {S}ystem {C}alls in {KR}o{C}/{L}inux", author= "Barnes, Frederick R. M.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "155--178", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "This paper describes an extension to Kent Retargetable occam Compiler (KRoC), which enables the execution of a blocking call, without blocking the occam-kernel. This allows a process to make a blocking system call (eg, read, write), without blocking processes running in parallel with it. Blocking calls are implemented using Linux clones which communicate using shared memory, and synchronise using kernel level semaphores. The usefulness of this is apparent in server applications with a need to handle multiple clients simultaneously. An implementation of an occam web-server is described, which uses standard TCP sockets via an occam socket library. The web-server comes with the ability to execute CGI scripts as well as dispensing static pages, which demonstrates some level of OS process management from within occam. However, this mechanism is not limited to blocking in the Linux kernel. On multi-processor machines, the clones are quite free to be scheduled on different processors, allowing computationally heavy processing to be performed aside the occam world, but still with a reasonable level of interaction with it. Using them in this way provides a coarse-grained level of parallelism from within the fine-grained occam world." } @InProceedings{WoodBarnes00, title = "{P}ost-{M}ortem {D}ebugging in {KR}o{C}", author= "Wood, David C. and Barnes, Frederick R. M.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "179--192", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "A simple post-mortem debugging facility has been added to KRoC, to identify and locate run-time errors, including deadlock. It has been implemented for the SPARC/Solaris and i386/Linux versions of KRoC." } @InProceedings{Wood00, title = "{A}n {E}xperiment with {R}ecursion in occam", author= "Wood, David C.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "193--204", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "An experimental version of KRoC has been written that implements recursion in occam, using Brinch Hansen's algorithm for allocating activation records. It shows that efficient parallel recursion is possible in occam" } @InProceedings{SchallerHilderink00, title = "{U}sing {J}ava for {P}arallel {C}omputing - {JCSP} versus {CTJ}", author= "Schaller, Nan C. and Hilderink, Gerald H. and Welch, Peter H.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "205--226", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "Java provides support for concurrent and parallel programming throughthreads, monitors and its socket and Remote Method Invocation (RMI) classes.However, there have been many concerns expressed about the way in which thissupport is provided, e.g., [1][2], citing problems such as improper implementation ofmonitors and difficulty of programming with threads. Hoare’s CommunicatingSequential Processes (CSP) [3][4][5] model fully specifies thread synchronizationand is based on processes, compositions, and channel communication. It provides amathematical notation for describing patterns of communication using algebraicexpressions and contains formal proofs for analyzing, verifying and eliminatingundesirable conditions, such as race hazards, deadlocks, livelock, and starvation.Two independent research efforts provide a CSP based process-oriented designpattern for concurrency implemented in Java: Communicating Sequential Processesfor Java (JCSP) [6] and Communication Threads in Java (CTJ) [7]. In this paper, wecompare these two packages, looking at the philosophy behind their development,their similarities, their differences, their performance, and their use." } @InProceedings{PeelCook00, title = "occam on {F}ield {P}rogrammable {G}ate {A}rrays - {O}ptimising for {P}erformance", author= "Peel, Roger M. A. and Cook, Barry M.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "227--238", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "This paper shows how the parallel occam code for a graphics application has been compiled to run on a Field Programmable Gate Array (FPGA). This application has stringent timing constraints, and many optimisations to the sequencing of operations and occam constructs have been employed to meet them. In particular, two crucial pipelined processes are shown to operate with no control overhead despite containing parallel and looping constructs and channel communications." } @InProceedings{Beton00, title = "libcsp - a {B}uilding mechanism for {CSP} {C}ommunication and {S}ynchronisation in {M}ultithreaded {C} {P}rograms", author= "Beton, Rick D.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "239--250", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "A C library is described which exists to support synchronisation and communication in the CSP model using the Posix Threads API as its basis. This differs from other notable approaches (e.g. [Moores:1999]) in that it uses Posix Threads. Whilst this approach has drawbacks, its main achievement is being easily adopted by people already familiar with Posix Threads and being useful to a wide range of target platforms." } @InProceedings{Teig00, title = "{CSP}: {A}rriving at the {CHAN}nel {I}sland (an {I}ndustrial {P}ractitioner's {D}iary: in {S}earch of a {N}ew {F}airway)", author= "Teig, Øyvind", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "251--262", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "This paper is a non-academic hands-on log of practical experiences of software engineering problems, where the process leading to the decision to use CSP to program real-time systems is on trial. A new and hopefully objective decision process is instigated. What we have previously learnt by using CSP in embedded real-time process control is used as subjective basis (or bias?) for the new process. The conclusion seems to be that CSP should be sufficiently future-proof to justify its use even in new projects. The term CSP is here used as shorthand for both the CSP language proper and different implementations of subsets." } @InProceedings{Moores00, title = "{N}ative {JCSP} - the {CSP} for {J}ava library with a {L}ow-{O}verhead {CSP} {K}ernel", author= "Moores, James", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "263--274", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "The JCSP library provides a superior framework for building concurrent Java applications. Currently, CSP is a collection of classes that uses the standard Java Threads mechanism to provide low-level facilities such a process scheduling and synchronization. The overheads of using Java Threads can be quite large though, especially for synchronization and context switching. This paper begins by describing various options for increasing performance, and then how the standard Java threads work. The integration of the low-overhead CCSP run-time system into a Linux-based Sun JDK 1.2.1 Java Virtual Machine is then described. This integration provides the low-level support required to dramatically increase the performance of the JCSP library's model of concurrency. The paper then looks at the problem of maintaining backward compatibility by preserving the functionality of the existing threads mechanism on which much legacy code depends. The paper finishes by looking at the performance displayed by the current prototype JVM and contrasting it with the performance of both Green (co-operatively scheduled) and Native (operating-system scheduled) Java Threads." } @InProceedings{WelchMartin00, title = "{F}ormal {A}nalysis of {C}oncurrent {J}ava {S}ystems", author= "Welch, Peter H. and Martin, Jeremy M. R.", editor= "Welch, Peter H. and Bakkers, Andr\`{e} W. P.", pages = "275--301", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2000", isbn= "1 58603 077 9", year= "2000", month= "sep", abstract= "Java threads are synchronised through primitives based upon monitor concepts developed in the early 1970s. The semantics of Java's primitives have only been presented in natural language -- this paper remedies this with a simple and formal CSP model. In view of the difficulties encountered in reasoning about any non-trivial interactions between Java threads, being able to perform that reasoning in a formal context (where careless errors can be highlighted by mechanical checks) should be a considerable confidence boost. Further, automated model-checking tools can be used to root out dangerous states (such as deadlock and livelock), find overlooked race hazards and prove equivalence between algorithms (e.g. between optimised and unoptimised versions). A case study using the CSP model to prove the correctness of the JCSP and CTJ channel implementations (which are built using standard Java monitor synchronisation) is presented. In addition, the JCSP mechanism for ALTing (i.e. waiting for and, then, choosing between multiple events) is verified. Given the history of erroneous implementations of this key primitive, this is a considerable relief." } @InProceedings{BastenHoogerbru01, title = "{E}fficient {E}xecution of {P}rocess {N}etworks", author= "Basten, T. and Hoogerbrugge, J.", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "1--14", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "Kahn process networks (KPNs) [1] are a popular modeling technique for media- and signal-processing applications. A KPN makes parallelism and commu-nication in an application explicit; thus, KPNs are a modeling paradigm that is very suitable for multi-processor architectures. We present techniques for the efficient ex-ecution of KPNs, taking into account both execution time and memory usage." } @InProceedings{MayMuller01, title = "{C}opying, {M}oving and {B}orrowing {S}emantics", author= "May, David and Muller, Henk", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "15--26", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "In this paper we discuss primitives for mobilising code and communications. We distinguish three types of semantics for mobility: copying (where an identical copy is created remotely), moving (where the original is destroyed), and borrowing (where the original is moved to the target and back to where it came from at defined moments). We discuss these semantics for mobile code and mobile channels. We have implemented Icarus, a language that uses borrowing semantics for mobile code (the on-statement) and moving semantics for mobile channels (first class channels)." } @InProceedings{Moore01, title = "{P}arallel {G}enetic {A}lgorithms to {F}ind {N}ear {O}ptimal {S}chedules for {T}asks on {M}ultiprocessor {A}rchitectures", author= "Moore, M.", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "27--36", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "Parallel genetic schedulers (PGS) are applied to a combinatorial optimisation problem, the scheduling of multiple, independent, non-identical tasks. The tasks are functionally partitioned and must be distributed over a multicomputer or multiprocessor system. As each task completes execution, a result message must be communicated. Communication occurs over a shared bus. This problem is known to be NP-complete [1]. The PGS execute on a shared memory multiprocessor system and on a simulated SIMD torus. Schedules produced by the PGS are compared to each other, to those found by an exponential-time optimal branch and bound algorithm, and to those found by a linear-time opportunistic algorithm. The PGS produce extremely accurate schedules very quickly. When the PGS are executed with increasing numbers of processors, near linear speedups are obtained with no decrease in the quality of the resulting schedules." } @InProceedings{TrigerONeill01, title = "{A}dapted {OS} {L}ink / {DS} {L}ink {P}rotocols for {U}se in {M}utliprocessor {R}outing {N}etworks", author= "Triger, S. and O'Neill, Brian C. and Clark, S.", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "37--48", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "Inter-processor communications play a vital role in the performance of distributed parallel networks. This document analyses various protocol options for high speed, serial, inter-processor communications for use in embedded multiprocessor systems. The protocol is used to pass information in a fault tolerant routing network. The work has resulted in a custom processor interface, which forms the gateway between the processing node and the distributed communications network, building on previous work. The role of the interface is to provide maximum hardware support for communications between the network and the processor. This alleviates the processor from having to oversee communications transactions and allows it to concentrate on program execution. The research focuses on protocol alterations aimed at improving the fault tolerant aspects of the design when dealing with various forms of network failure. By improving the fault tolerance of the network, communications bottlenecks can be avoided and data throughput can be maximised. Previously, communications across the network had used the OS Links protocol and, experimentally, DS Links. These were analysed and adapted to provide the current communications protocol, which is compared with these protocols. This protocol is more efficient, and helps to provide many features to ensure data integrity." } @InProceedings{Lawrence01a, title = "{S}uccesses and {F}ailures: {E}xtending {CSP}", author= "Lawrence, Adrian E.", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "49--66", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "Standard CSP, timed or untimed, does not include a general treatment of priority, although the PRI ALT constructor is an essential part of occam and hardware compilation languages based upon occam. This is a revised version of the original paper which introduced CSPP, an extension of CSP incorporating priority. CSPP is defined by a novel denotational semantics, Acceptances, based on Successes rather than the usual Failures. The idea is to characterise a process by what it successfully accepts, rather than by what it refuses to do. In the light of experience, it might better have been called 'Responses'. The original Acceptances was exploratory, and tried to avoid constraining the sorts of systems, particularly circuits, that could be described. Experience has shown that it can be substantially simplified at very little cost. A new notation makes it much easier to follow, especially for the non specialist. This revision of the original introduction presents the simplified CSPP while retaining most of the motivational material. It is intended to have something of a tutorial flavour: three other papers, are more condensed, and deal with more technical matters. But the core semantics is common to all four. CSPP provides a rigorous comprehensible and simple foundation for compositional hardware-software codesign. HCSP is a further extension which includes extra facilities needed to describe certain circuits. And a further radical extension lifts the usual restrictions of timed CSP, and describes continuous analogue phenomena. CSPP was first presented informally at the Twente WoTUG--20 technical meeting." } @InProceedings{Lawrence01b, title = "{CSPP} and {E}vent {P}riority", author= "Lawrence, Adrian E.", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "67--92", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "CSPP is an extension of CSP which includes priority as used in standard occam. The occam community has often discussed whether those notions are really adequate, a particular concern being the difficulties associated with priority inversion. One idea is to give priority to sets of events considered independently of the processes that perform them. We call this 'event priority'. Event priority is static in this presentation. But it is possible to handle dynamic priority using a global synchronisation when the 'event priority' changes. Obviously there is no problem for a software system with a central scheduler, but the theory here is addressing a far wider class of systems, in particular massively parallel, widely distributed, implemented in either hardware or software or both. It may be that some higher level of abstraction should replace priority: priority is a mechanism for achieving certain properties, often relating to time and limited resources. Here we content ourselves with finding a formal description of a language including event-priority." } @InProceedings{Lawrence01c, title = "{I}nfinite {T}races, {A}cceptances and {CSPP}", author= "Lawrence, Adrian E.", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "93--102", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "There is a long standing problem when infinite traces are included in denotational semantic models of CSP. Full models fail to be Complete Partial Orders under refinement. This paper introduces a novel, but entirely natural, way of representing infinite behaviour in which refinement is a Complete Partial Order when the alphabet of events is finite. Acceptance semantics also solves the problem of infinite behaviour with an infinite alphabet. That requires a different construction based on a metric space and will be described elsewhere." } @InProceedings{TownerMay01, title = "{T}he `{U}niform {H}eterogeneous {M}ulti-{T}hreaded' {P}rocessor {A}rchitecture", author= "Towner, Daniel and May, David", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "103--116", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "Multi-threaded processor architectures are capable of concurrently execut-ing multiple threads using a shared execution resource. Two of their advantages are their ability to hide latency within a thread, and their high execution efficiency. Un-fortunately, single thread performance is often poor. In this paper we present a simple model of a multi-threaded processor, and show how an occam-like language may be compiled into fine grained threads suitable for executing on this processor. These fine grained threads allow all but the most serial programs to be compiled into multiple threads. Thus, poor single thread performance is avoided by ensuring that sufficient threads are always available, even at the instruction level. We call this technique ‘uni-form heterogeneous multi-threading’ (UHM). A compiler implementing UHM has been built, along with a cycle accurate simulator of a UHM processor. We demon-strate that the processor is capable of good performance, whilst being simple to design and build." } @InProceedings{RischelSun01, title = "{E}vent-{B}ased {D}esign of {C}oncurrent {P}rograms with {J}ava {I}mplementation", author= "Rischel, H. and Sun, H.", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "117--128", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "A systematic design approach to safety-critical systems is introduced by means of the Production Cell case study. The design is documented using CSP-style processes, which allow verifications using formal techniques, as well as programming in Java using the JCSP library." } @InProceedings{VinterAnshus01, title = "{U}sing {T}wo-, {F}our- and {E}ight-{W}ay {M}ultiprocessors as {C}luster {C}omponents", author= "Vinter, Brian and Anshus, Otto J. and Larsen, Tore and Bjørndalen, John Markus", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "129--148", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "This work considers the pros and cons of different size SMPs as nodes in clusters. We investigate the Intel SMP architecture and consider the potential of and some problems with larger node-sizes in clusters of multiprocessors. Six applications that represent different classes of parallel applications are developed in versions that support both shared and distributed memory. Performance measurements are done on three different clusters of multiprocessors, with the purpose of identifying how the number of processors in each SMP node impacts the cluster performance. Our results show that clusters using higher order SMPs do not give a clear performance benefit compared to clusters using two-way SMPs. Off the bench mark-suite of six applications, the performance of two turn out to be independent of node-size, two show an advantage of larger node-sizes, as much as 34 percent improvement of eight-way nodes over a dual-system, while the remaining two show an advantage of dual-processor nodes as big as 11 percent over an eight-way cluster." } @InProceedings{YangStiles01, title = "{G}uarenteed {M}essage {D}elivery {T}ime on {R}eal-{T}ime {D}istributed {S}ystems", author= "Yang, T. -Y. and Stiles, G. S.", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "149--166", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "Real-time systems require guaranteed timely delivery of messages; failure to deliver a message on time may result in failure of the system and possible damage to life and property. We describe here an extension and implementation of an algorithm developed by Kandlur et al. for guaranteed message delivery. We extend this by adding two-phase randomized routing in the channel establishment procedure; this scheme requires each route to go first to a randomly chosen intermediate node, and only then to its actual destination. This scheme balances the load demonstrably better than direct routing, with respect to the likelihood of acceptance of each individual channel. Given certain constraints on the generation and size of messages, it is possible to schedule those messages such that messages arrive within their desired deadlines. Experiments on an 8-node network demonstrate the feasibility of the approach, and provide verification of Kandlur's algorithm." } @InProceedings{WattMay01, title = "{A} {P}rogramming {L}anguage for {H}ardware/{S}oftware {C}o-{D}esign", author= "Watt, D. R. and May, David", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "167--178", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "We have developed a programming language that allows programs to be expressed as single specifications in which any number of processes may be tagged for hardware compilation and the rest are compiled into software. We introduce a number of novel transformations that may be arbitrarily applied to an occam process in order to decompose it into two semantically equivalent concurrent processes. Our compiler targets hardware by compiling one of these processes into a field programmable gate array and the other into x86 object code. Furthermore, the compiler integrates a specialised communications protocol between the two programs that consists of a full-duplex channel implementation, multiplexor and buffers that are dependent on the program structure and that guarantee all external communications are free from deadlock. We demonstrate the elegance of our language and the power of our compiler on a small benchmark program." } @InProceedings{Peel01, title = "{A} {R}econfigurable {H}ost {I}nterconnection {S}cheme for {O}ccam-{B}ased {F}ield {P}rogrammable {G}ate {A}rrays", author= "Peel, Roger M. A.", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "179--192", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "This paper reports on the development of an interconnection scheme for field-programmable gate arrays (FPGAs). These FPGAs may be programmed in the Occam parallel programming language. Now, not only may the inter-process communication channels provided by Occam be used on-chip, but they may also be extended to a host processor using the ubiquitous Universal Serial Bus (USB). Bidirectional channels of BYTEs are carried along this bus to a host processor (running Linux) where they are presented to application code using a device driver that provides similar capabilities to the standard B004 card link driver. A unidirectional end-to-end throughput between Linux processes and FPGA processes, across USB, has been measured as high as 1025 kbytes/sec, although this rate is only achieved in favourable circumstances. Similarly, 410 kbytes/sec may be transferred in both directions simultaneously. Unidirectional transmission rates of more than 600 kbytes/sec, and bidirectional rates of 175-300 kbytes/sec in each direction may be achieved in a wide range of circumstances. The paper presents a range of performance figures, explaining which are limited by the underlying characteristics of the USB bus and which are caused by the current implementation. By implementing a transputer OS-Link in the FPGA, it is possible for a USB- enabled computer to communicate with a network of transputers, providing a convenient - and potentially faster - alternative to previous methods." } @InProceedings{McConnellWinser01, title = "{A} 40 {G}bit/s {N}etwork {P}rocessor {D}esign {P}latform", author= "McConnell, R. and Winser, P.", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "193--212", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "As the Internet evolves, the rapidly increasing demand for bandwidth is matched by a greater need for more intelligence with which to manage and meter the flow of that data to sustain economic growth. Conventional processing architectures and hardwired point solutions are not suited to these conflicting demands; there is an emerging need for a new approach for this data flow processing problem. This paper presents ClearSpeed's integrated Network Processor design platform that embodies many different levels of parallel processing. Designed to balance the bandwidth needs with programmability we introduce the MTAP architecture. An area and power efficient, fine-grained, scalable, multi-threaded parallel processor, designed with a 'bandwidth-centric' architecture and programmed in C. Based on the ClearConnect™ bus, an SoC communication architecture with VCI compliant interfaces, a high-bandwidth system architecture including a number of hardware accelerator units is also described. An example 40Gbit/s programmable and scalable classifier/forwarder is presented, embodying the concepts of the platform. To complete the picture, a comprehensive suite of software and hardware development tools is described." } @InProceedings{PascoeLoader01, title = "{W}orking {T}owards the {A}greement {P}roblem {P}rotocol {V}erification {E}nvironment", author= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "213--230", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "This paper proposes the Agreement Problem Protocol Verification Environment (APPROVE) for the automated formal verification of novel solutions to agreement problems in group communication systems. Agreement problems are characterized by the need for a group of processes to agree on a proposed value and are exemplified by group membership, consensus and fault-tolerance scenarios. Due to their fundamental role, it is important that the correctness of new agreement algorithms be verified formally. In the past, the application of manual proof methods has been met with varying degrees of success, suggesting the need for a less error prone automated approach. An observation concerning previous proofs is that often a significant amount of effort is invested in modeling themes common to all such proofs, albeit using different formalisms. Thus, the APPROVE project aims to address these issues, its envisaged culmination being a usable software framework that exploits model re-use wherever possible." } @InProceedings{East01, title = "{W}orking towards a successor to occam", author= "East, Ian R.", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "231--242", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "occam [1] offers features and attributes that make it unique among programming languages, particularly in the ease and security with which one may program concurrency. After a brief summary of occam's strengths, possible additional features are discussed, including recursion, source code modularity, exception response, and the automatic avoidance of deadlock. Consideration is then given to the inclusion of passive ('data') objects and the possibility of their movement between processes. Transfer primitives are proposed, alongside assignment and communication. Discussion is presented with regard to the potential for a new programming language, building on occam, while preserving its security and simplicity." } @InProceedings{BarnesWelch01, title = "{M}obile {D}ata, {D}ynamic {A}llocation and {Z}ero {A}liasing: {A}n occam {E}xperiment", author= "Welch, Peter H. and Barnes, Frederick R. M.", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "243--264", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "Traditional imperative languages (such as C) and modern object-oriented languages are plagued by uncontrolled resource aliasing problems. Add in concurrency and the problems compound exponentially. Improperly synchronised access to shared (i.e. aliased) resources leads to problems of race-hazard, deadlock, livelock and starvation. This paper describes the binding into occam (a concurrent processing language based on CSP) of a secure, dynamic and efficient way of sharing data between parallel processes with minimal synchronisation overheads. The key new facilities provided are: a movement semantics for assignment and communication, strict zero-aliasing, apparently dynamic memory allocation and automatic zero-or-very-small-unit-time garbage collection. The implementation of this mechanism is also presented, along with some initial performance figures (e.g. 80ns for mobile communication on an 800 MHz Pentium 3). With occam becoming available on a variety of microprocessors for GUI building, internet services and small-memory-footprint embedded products, these capabilities are timely. Lessons are drawn for concurrency back in OO languages - and especially for the JCSP (CSP for Java) package library." } @InProceedings{Barnes01, title = "tranx86 -- {A}n {O}ptimising {ETC} to {IA}32 {T}ranslator", author= "Barnes, Frederick R. M.", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "265--282", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "This paper describes tranx86, a program which converts Extended Transputer Code (ETC) from a modified Inmos occam compiler, into IA32 code for execution on the Intel i386 family of processors within the KRoC/Linux system. Several optimisations are employed in an attempt to maximise performance on this family of processors, including optimisations in the CCSP run-time kernel. These include a graph-colouring type register allocation scheme and various inlining of code. While tranx86 is mostly architecture dependent, effort has been made to allow the use of arbitrary schedulers, although currently CCSP is the only fully supported one. Various benchmark programs are used to compare the performance of this translator with the old system, giving significant time wins in some cases. For the commstime benchmark program on an 800 MHz Pentium-3, the old KRoC/Linux system gave 233 ns per communication (2 context switches); the new one, with optimisations and inlining, gives 67 ns per communication -- more than a 3-fold reduction in overheads." } @InProceedings{Teig01a, title = "{F}rom {S}afe {C}oncurrent {P}rocesses to {P}rocess-{C}lasses? {PLUSSING} {N}ew {C}ode by {ROLLING} out and {C}ompile?", author= "Teig, Øyvind", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "283--304", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "This article expands a concurrent language to support implementation inheritance by making block structures of the super process-class pluggable, and to interface inheritance by making the language's protocol inheritable. The parallel 'object-based' concurrent language occam 2 has been used as a catalyst for the concept, causing the language in fact to become (almost?) 'object-oriented' (OO). The result is white-box reuse between a 'process-class' and its sub process-class, and black-box reuse seen from the client side. Since occam is aliasing free and considered a 'safe' concurrent language, the expansion we discuss here keeps those properties - somewhat unusual for an OO system. This new language should be well suited in safety critical systems, since it has inherited the static (compile-time) and analysable properties from occam proper. Basically, two new keywords are defined: PLUSSING and ROLLING. The language feature suggestion is on sketch level only and therefore not complete, no BNF description exists and no compiler has been written." } @InProceedings{Teig01b, title = "{CHAN}nels to {D}eliver {M}emory? {MOBILE} {S}tructures and {ALT}ing over {M}emory?", author= "Teig, Øyvind", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "305--308", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "Memory objects are assigned to processes over a CHANnel like construct. This way one can wait for an object indefinitely, or with timeout in an ALT construct - coexisting with CHANnel inputs. The run-time SYSTEM will handle requests. Alternatively, a user memory handler process may use the underlying SYSTEM and serve other clients. Occam 2 is used as catalyst language." } @InProceedings{PedersenWagner01, title = "{P}rotocol {V}erification in {M}illipede", author= "Pedersen, Jan Bækgaard and Wagner, Alan", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "309--328", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "In this paper we present the MOPED module of the Millipede debugging system. Millipede is a multi-level debugging sytem for parallel message passing programs. MOPED allows the user to specify a protocol to which the communication of the program should adhere, and authomatically have all the messages sent in the system checked against the protocol. The specification language is small and easy to use, yet powerful enough to specify a wide range of protocols. Program variables can be passed easily to the verification module, allowing the construction of mode dynamic protocol specifications. Protocols can be specified incrementally, starting out very general working towards a more complex specification. Finally, the verification module can be run either online, that is, while the application is executing, or offline, using log files generated when the application was executed." } @InProceedings{Locke01, title = "{T}owards a {V}iable {A}lternative to {OO} -- {E}xtending the occam/{CSP} {P}rogramming {M}odel", author= "Locke, Tom", editor= "Chalmers, Alan G. and Mirmehdi, Majid and Muller, Henk", pages = "329--349", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2001", isbn= "1 58603 202 X", year= "2001", month= "sep", abstract= "Object orientation has become the de facto standard for large scale, general purpose software engineering. In this paper various aspects of object orientation that are against good software engineering practice are highlighted. It is then argued that a communicating process model provides a better platform for component based programming without the discussed pitfalls of OO. At the same time, current CSP based programming technology is shown to be seriously lacking when measured against certain aspects of object oriented languages. This paper is chiefly a discussion of ideas, ideas about extensions to the occam/CSP programming model that could advance the paradigm to the point where it provides a viable alternative to object orientation for general purpose, large scale software engineering. Specifically, three ideas are discussed: mobile processes, polymorphism and routable variant channels." } @InProceedings{Butterfie02, title = "{S}emantics of prialt in {H}andel-{C} (tm)", author= "Butterfield, Andrew", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "1--16", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "This paper discusses the semantics of the prialt construct in Handel-C. The language is essentially a static subset of C, augmented with a parallel construct and channel communication, as found in CSP. All assignments and channel communication events take one clock cycle, with all updates synchronised with the clock edge marking the cycle end. The behaviour of prialt in Handel-C is similar in concept to that of occam, and to the p-priority concept of Adrian Lawrence's CSPP. However, we have to contend with both input and output guards in Handel-C, unlike the situation in occam, although prialts with conflicting priority requirements are not legal in Handel-C. This makes our problem simpler than the more general case including such conflicts considered by Lawrence. We start with an informal discussion of the issues that arise when considering the semantics of Handel-C's prialt construct. We define a resolution function (R) that determines which requests in a collection of prialts become active. We describe a few properties that we expect to hold for resolution, and discuss the issue of compositionality." } @InProceedings{Lawrence02a, title = "{A}cceptances, {B}ehaviours and {I}nfinite {A}ctivity in {CSPP}", author= "Lawrence, Adrian E.", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "17--38", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "The denotational semantics presented here defines an extension of CSP called CSPP. It includes a full description of infinite behaviour in one simple model using only finite traces. This is true for both finite and infinite alphabets. The structure is a complete lattice, and so also a complete partial order, under refinement. Thus recursion is defined by fixed points in the usual way. It is also a complete restriction metric space so this provides an alternative treatment of recursion for contraction mappings." } @InProceedings{Lawrence02b, title = "{HCSP}: {I}mperative {S}tate and {T}rue {C}oncurrency", author= "Lawrence, Adrian E.", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "39--56", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "HCSP is an extension of CSPP which captures the semantics of hardware compilation. Because it is a superset of CSPP, it can describe both hardware and software and so is useful for co-design. The extensions beyond CSPP include: true concurrency; new hardware constructors; and a simple and natural way to represent imperative state. Both CSPP and HCSP were invented to cope with problems that arose while the author was trying to prove that the hardware that he had designed correctly implemented channels between a processor and an FPGA. Standard CSP did not capture priority, yet the circuits in the FPGA and the occam processes in the transputer both depended on priority for their correctness. The attempt to extend CSP rigorously to handle such problems of co-design has led to develoments that seem to have a much wider significance including a new way of unifying theories for imperative programming. This paper reports on the current state of HCSP and focuses on handling imperative state and true concurrency. The acceptance denotational semantics is described briefly." } @InProceedings{PascoeLoader02, title = "{C}onsolidating {T}he {A}greement {P}roblem {P}rotocol {V}erification {E}nvironment", author= "Pascoe, James S. and Loader, Roger J.", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "57--78", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "The Agreement Problem Protocol Verification Environment (APPROVE) has become a mature and robust platform for the automated verification of proposed solutions to agreement problems. APPROVE is based on the Spin model checker and leverages the literate programming tool noweb to provide Promela code supplied with LATEX documentation. The APPROVE discussion opened in Communicating Process Architectures 2001 and described the initial project phases and summarised some preliminary results. This paper presents a follow up, providing a canonical report on the development, application and insight gained from the project." } @InProceedings{BrodskyPedersen02, title = "{O}n the {C}omplexity of {B}uffer {A}llocation in {M}essage {P}assing {S}ystems", author= "Brodsky, Alex and Pedersen, Jan Bækgaard and Wagner, Alan", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "79--96", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "In modern cluster systems message passing functionality is often off-loaded to the network interface card for efficiency reasons. However, this limits the amount of memory available for message buffers. Unfortunately, buffer insufficiency can cause an otherwise correct program to deadlock, or at least slow down. Hence, given a program trace from an execution in an unrestricted environment, determining the minimum number of buffers needed for a safe execution is an important problem. We present three related problems, all concerned with buffer allocation for safe and efficient execution. We prove intractability results for the first two problems and present a polynomial time algorithm for the third." } @InProceedings{PedersenVinter02, title = "{J}ava {P}ast{S}et - {A} {S}tructured {D}istributed {S}hared {M}emory {S}ystem", author= "Pedersen, Kei Simon and Vinter, Brian", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "97--108", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "The architecture and performance of a Java implementation of a structured distributed shared memory system, PastSet, is described. The PastSet abstraction allows programmers to write applications that run efficiently on different architectures, from clusters to widely distributed systems. PastSet is a tuple-based three-dimensional structured distributed shared memory system, which provides the programmer with operations to perform causally ordered reads and writes of tuples to a virtual structured memory space called the PastSet. It has been shown that the original, native code, PastSet was able to outperform MPI and PVM when running real applications and we show that the design translates into Java so that Java PastSet is a qualified competitor to other cluster application programming interfaces for Java." } @InProceedings{Petitpier02, title = "{S}ynchronous {A}ctive {O}bjects {I}ntroduce {CSP}'s {P}rimitives in {J}ava", author= "Petitpierre, Claude", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "109--122", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "This paper presents a proposal of a language, based on synchronous active objects that introduces the CSP primitives into Java. The proposal does not use channels to realise the inter-process communications, but is shown to offer the same expressive power as the channel based solutions. The paper also shows that the rendezvous defined by CSP or our synchronous objects are very well adapted to the industrial development of event driven applications, handling simultaneously GUIs and accesses to remote applications." } @InProceedings{Bj\orndalenAnshus04, title = "{C}onfigurable {C}ollective {C}ommunication in {LAM}-{MPI}", author= "Bjørndalen, John Markus and Anshus, Otto J. and Aarsen, Tore and Vinter, Brian", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "123--134", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "In another paper, we observed that PastSet (our experimental tuple space system) was 1.83 times faster on global reductions than LAM-MPI. Our hypothesis was that this was due to the better resource usage of the PATHS framework (an extension to PastSet that supports orchestration and configuration) due to a mapping of the communication and operations which matched the computing resources and cluster topology better. This paper reports on an experiment to verify this and represents on-going work to add some of the same configurability of PastSet and PATHS to MPI. We show that by adding run-time configurable collective communication, we can reduce the latencies without recompiling the application source code. For the same cluster where we experienced the faster PastSet, we show that Allreduce with our configuration mechanism is 1.79 times faster than the original LAM-MPI Allreduce. We also experiment with the configuration mechanism on 3 different cluster platforms with 2-, 4-, and 8-way nodes. For the cluster of 8-way nodes, we show an improvement by a factor of 1.98 for Allreduce." } @InProceedings{DebattistVella02, title = "{C}ache-{A}ffinity {S}cheduling for {F}ine {G}rain {M}ultithreading", author= "Debattista, Kurt and Vella, Kevin and Cordina, Joseph", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "135--146", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "Cache utilisation is often very poor in multithreaded applications, due to the loss of data access locality incurred by frequent context switching. This problem is compounded on shared memory multiprocessors when dynamic load balancing is introduced and thread migration disrupts cache content. In this paper, we present a technique, which we refer to as *batching*, for reducing the negative impact of fine grain multithreading on cache performance. Prototype schedulers running on uniprocessors and shared memory multiprocessors are described, and finally experimental results which illustrate the improvements observed after applying our techniques are presented." } @InProceedings{CavalcantWoodcock02, title = "{A} {P}redicate {T}ransformer {S}emantics for a {C}oncurrent {L}anguage of {R}efinement", author= "Cavalcanti, Ana and Woodcock, Jim", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "147--166", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "Circus is a combination of Z and CSP; its chief distinguishing feature is the inclusion of the ideas of the refinement calculus. Our main objective is the definition of refinement methods for concurrent programs. The original semantic model for Circus is Hoare and He's unifying theories of programming. In this paper, we present an equivalent semantics based on predicate transformers. With this new model, we provide a more adequate basis for the formalisation of refinement and verification-condition generation rules. Furthermore, this new framework makes it possible to include logical variables and angelic nondeterminism in Circus. The consistency of the relational and predicate transformer models gives us confidence in their accuracy." } @InProceedings{Moseley02, title = "{R}econnetics: {A} {S}ystem for the {D}ynamic {I}mplementation of {M}obile {H}ardware {P}rocesses in {FPGA}s", author= "Moseley, Ralph", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "167--180", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "The capacity to utilise FPGA designs in such a way that they are compositional, mobile, and *interactive*, offers many new possibilities. This holds true for both research and commercial applications. With the system described here, hardware becomes as easy to distribute as software and the mediating links between the two domains allow for manipulation of physical resources in real time. Designs are no longer monolithic *images* downloaded at one time, but mobile entities that can be communicated over a distance and dynamically installed at run-time many times and at many places. Such twin domain designs can be as complex as a processor, or as small in scale as a few logic gates. The run-time system, Reconnetics, provides an environment of high-level control over such elements, which requires little knowledge of the underlying hardware technology." } @InProceedings{GreenAbdallah02, title = "{P}erformance {A}nalysis and {B}ehaviour {T}uning for {O}ptimisation of {C}ommunicating {S}ystems", author= "Green, Mark and Abdallah, Ali E.", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "181--190", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "Improving performance is the main driving force behind the use of parallel systems. Models for performance evaluation and techniques for performance optimisation are crucial for effectively exploiting the computational power of parallel systems. This paper focuses on methods for evaluating the performance of parallel applications built from components using the software architecture methodology. Minor differences in the low-level behaviour of functionally equivalent processing elements can have a dramatic effect upon the performance of the overall system; this confounds attempts to predict performance at any step prior to implementation. VisualNets is a tool supporting the construction and graphical manipulation of interacting systems built from components. It makes use of specifications in the formal method CSP, which enables the relevant component behaviours and the linkage between components to be concisely described. The tool allows the behaviour of the whole system over time, and the patterns of interaction between the components, to be visualised through graphical animation. The graphical display produced facilitates the analysis and evaluation of performance, and highlights areas where performance could be improved via better utilisation of parallel resources. VisualNets also allows the timing properties of the components and of the architecture that underlies them to be changed, to represent different component implementations or platform configurations. A case study, based on the dual pipeline architecture, is presented to show how the graphical animation capability of VisualNets can be used, firstly to evaluate performance, and secondly to guide the development of more efficient versions of the parallel system." } @InProceedings{Pugh02, title = "{C}onfiguration {D}iscovery and {M}apping of a {H}ome {N}etwork", author= "Pugh, Keith", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "191--202", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "A home network comprising many heterogeneous devices requires a scaleable interconnect capable of satisfying the often vastly different network resource demands of the devices. In addition, it is likely that over time the configuration of the network will change as new devices are added to the network and older ones removed or replaced. While it is acceptable for enterprise networks to be managed by a trained network administrator it is unreasonable to expect a home owner to have such expertise. Consequently, a free topology network coupled with a capacity for plug and play that allows nodes to be added anywhere, and at any time without interruption to the operation of the networked system are essential requirements. IEEE 1355 standard technology has the potential to satisfy these criteria. The demand for a free topology and a capacity for plug and play require that the configuration of the network is re-discovered and mapped automatically, and at regular intervals. This paper describes such a configuration mapping process." } @InProceedings{WelchVinter02, title = "{C}luster {C}omputing and {JCSP} {N}etworking", author= "Welch, Peter H. and Vinter, Brian", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "203--222", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "Hoare's algebra of Communicating Sequential Processes (CSP) enables a view of systems as layered networks of concurrent components, generating and responding to events communicated to each other through channels, barriers and other (formally defined) synchronisation primitives. The resulting image and discipline is close to hardware design and correspondingly easy to visualise, reason about, compose and scale. JCSP is a library of Java packages providing an (occam) extended version of this model that may be used alongside, or as a replacement for, the very different threads-and-monitors concurrency mechanisms built into Java. The current release (JCSP 1.0) supports concurrency within a single Java Virtual Machine (which may be multi-processor). This paper reports early experiments with JCSP.net, an extension of JCSP for the dynamic construction of CSP networks across distributed environments. The aims of JCSP.net are to simplify the construction and programming of dynamically distributed and parallel systems. It provides high-level support for CSP architectures, unifying concurrency logic within and between processors. The experiments are on some classical HPC problems, an area of work for which JCSP.net was not primarily designed. However, low overheads in the supporting infrastructure were a primary consideration * along with an intuitive and high-level distributed programming model (based on CSP). Results reported show JCSP holding up well against * and often exceeding * the performance obtained from existing tools such as mpiJava and IBM*s TSpaces. The experimental platform was a cluster of 16 dual-processor PIII Linux machines. It is expected that future optimisations in the pipeline for the JCSP.net infrastructure will improve the results presented here. JCSP and JCSP.net were developed at the University of Kent." } @InProceedings{SmithParsons02, title = "{V}iew-{C}entric {R}easoning for {L}inda and {T}uple {S}pace {C}omputation", author= "Smith, Marc L. and Parsons, Rebecca J. and Hughes, Charles E.", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "223--254", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "In contrast to sequential computation, concurrent computation gives rise to parallel events. Efforts to translate the history of concurrent computations into sequential event traces result in the potential uncertainty of the observed order of these events. Loosely coupled distributed systems complicate this uncertainty even further by introducing the element of multiple imperfect observers of these parallel events. Properties of such systems are difficult to reason about, and in some cases, attempts to prove safety or liveness lead to ambiguities. We present a survey of challenges of reasoning about properties of concurrent systems. We then propose a new approach, view-centric reasoning, that avoids the problem of translating concurrency into a se-quential representation. Finally. we demonstrate the usefulness of view-centric reasoning as a framework for disambiguating the meaning of tuple space predicate operations, versions of which exist commercially in IBM*s T Spaces and Sun*s JavaSpaces." } @InProceedings{Hilderink02, title = "{A} {G}raphical {M}odeling {L}anguage for {S}pecifying {C}oncurrency based on {CSP}", author= "Hilderink, Gerald H.", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "255--284", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "In this paper, we introduce a graphical specification language for modeling concurrency in software design. The language notations are derived from CSP and the resulting designs form so-called CSP diagrams. The notations reflect data-flow aspects, control-flow aspects, and they reflect CSP algebraic expressions that can be used for formal analysis. The designer does not have to be aware of the underlying mathematics. The techniques and rules presented provide guidance to the development of concurrent software architectures. One can detect and reason about compositional conflicts (errors in design), potential deadlocks (errors at run-time), and priority inversion problems (performance burden) at a high level of abstraction. The CSP diagram collaborates with object-oriented and structured methods. The CSP diagram is UMLable and can be presented as a new process diagram for the UML to capture concurrent, real-time, and event-flow oriented software architectures. The extension to the UML is not presented in this paper." } @InProceedings{East02, title = "{T}he '{H}oneysuckle' {P}rogramming {L}anguage: {E}vent and {P}rocess", author= "East, Ian R.", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "285--300", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "A new language for programming systems with Communicating Process Architecture is introduced which builds upon the success of occam. Some of the principal objectives are presented and justified. The means employed to express behaviour are then described, including a transfer primitive, which conveys object ownership as well as value, and an alternation construct. The latter replaces PRI PAR and PRI ALT, and affords explicit expression of conflict-free prioritized reactive (event-driven) behaviour, including exception response. HPL also offers source-code modularity, object encapsulation, and the recursive definition of both object and process. Despite such ambition, a primary aim has been to retain simplicity in abstraction, expression, and implementation." } @InProceedings{BroeninkHilderink02, title = "{A} {C}ommunicating {T}hreads {C}ase {S}tudy: {JIWY}", author= "Broenink, Jan F. and Hilderink, Gerald H. and Jovanovic, Dusko S.", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "311--320", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "We strive to allow a control system designer the power of designing control computer code concurrently and generating it efficiently, in spite of her or his lack of skills in software engineering. This is important for many reasons. Nowdays, it is impossible to separate control engineering from software engineering. There is no way of implementing control strategies other than to transform them into computer code for the chosen processing target. Usually, there are not so many general-purpose programmers available in control engineering research teams in companies and universities. In these cases, software development techniques suffer from insufficient knowledge in disciplines of software modelling, concurrency, reusability and testing. This paper develops a case study whose solution is based upon the CSP principles supported by the Communicating Threads libraries developed at Twente and argues why the techniques are accessible to non-computing-specialist control engineers." } @InProceedings{BarnesWelch02a, title = "{P}rioritised {D}ynamic {C}ommunicating {P}rocesses - {P}art {I}", author= "Barnes, Frederick R. M. and Welch, Peter H.", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "321--352", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "This paper reports continuing research on language design, compilation and kernel support for highly dynamic concurrent reactive systems. The work extends the occam multiprocessing language, which is both sufficiently small to allow for easy experimentation and sufficiently powerful to yield results that are directly applicable to a wide range of industrial and commercial practice. Classical occam was designed for embedded systems and enforced a number of constraints * such as statically pre-determined memory allocation and concurrency limits * that were relevant to that generation of application and hardware technology. Most of these constraints have been removed in this work and a number of new facilities introduced (channel structures, mobile channels, channel ends, dynamic process creation, extended rendezvous and process priorities) that significantly broaden occam*s field of application and raise the level of concurrent system design directly supported. Four principles were set for modifications/enhancements of the language. They must be useful and easy to use. They must be semantically sound and policed (ideally, at compile-time) to prevent mis-use. They must have very lightweight and fast implementation. Finally, they must be aligned with the concurrency model of the original core language, must not damage its security and must not add (significantly) to the ultra-low overheads. These principles have all been observed. All these enhancements are available in the latest release (1.3.3) of KRoC, freely available (GPL/open source) from: http://www.cs.ukc.ac.uk/projects/ofa/kroc/." } @InProceedings{BarnesWelch02b, title = "{P}rioritised {D}ynamic {C}ommunicating {P}rocesses - {P}art {II}", author= "Barnes, Frederick R. M. and Welch, Peter H.", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "353--370", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "This paper illustrates the work presented in 'Part I', giving additional examples of use of channel-types, extended rendezvous and FORKs that lean towards real applications. Also presented are a number of other additions and extensions to the occam language that correct, tidy up or complete facilities that have long existed. These include fixing the PRI ALT bug, allowing an unconditional SKIP guard as the last in a PRI ALT, replicator STEP sizes, run-time computed PAR replication counts, RESULT parameters and abbreviations, nested PROTOCOL definitions, inline array constructors and parallel recursion. All are available in the latest release (1.3.3) of KRoC, freely available (GPL/open source) from: http://www.cs.ukc.ac.uk/projects/ofa/kroc/." } @InProceedings{SouzaPfitscher02, title = "{I}mplementing a {D}istributed {A}lgorithm for {D}etection of {L}ocal {K}nots and {C}ycles in {D}irected {G}raphs", author= "Souza, Geraldo Pereira de and Pfitscher, Gerson Henrique", editor= "Pascoe, James S. and Loader, Roger J. and Sunderam, Vaidy S.", pages = "371--386", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2002", isbn= "1 58603 268 2", year= "2002", month= "sep", abstract= "In general, most deadlocks take form of cycles (in database systems) and knots (in communication systems). Boukerche and Tropper have proposed a distributed algorithm to detect cycles and knots in generic graphs. Their algorithm has a message complexity of 2m vs. (at least) 4m for the Chandy and Misra algorithm, where m is the number of links in the graph, and requires O (n log n) bits of memory, where n is the number of nodes. We have implemented Boukerche's algorithm. Our implementation of the algorithm is based on the construction of processes of the CSP model. The implementation was done using JCSP, an implementation of CSP for Java." } @InProceedings{SchallerMarshall03, title = "{A} {C}omparison of {H}igh {P}erformance, {P}arallel {C}omputing {J}ava {P}ackages", author= "Schaller, Nan C. and Marshall, Sidney W. and Cho, Yu-Fong", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "1--16", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "The high-performance computing community has developed numerous Java packages that support parallel and distributed computing. Most of these packages are designed for the typical parallel message passing and shared memory architectural paradigms. This paper presents the results of a recent study that included a web search for such packages, describes the paradigms implemented in them, and evaluates their performance on a parallel, 4-processor SMP machine using three benchmark programs that represent a mix of typical parallel applications, chosen from The Java Grande Benchmark Suite. A brief description of each package and a discussion its ease of installation and use are also provided." } @InProceedings{Petitpier03, title = "{A} {D}evelopment {M}ethod {B}oosted by {S}ynchronous {A}ctive {O}bjects", author= "Petitpierre, Claude", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "17--32", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "This paper presents a novel development method for interactive and distributedapplications. The benefit that this method provides is that the design gives clearguidance towards the implementation. The method is based on three mainelements: a concept of synchronous active objects that is closely related to thatfound in CSP; the Java environment; and a selection of the diagrams defined byUML. This approach alleviates many of the most serious problems that areencountered when using GUI builders, which hide the application structures andso make it difficult to devise sound architectures. The final part of the paper brieflydescribes an application generator that will help a developer to implement a designwhich is developed according to the approach advocated here." } @InProceedings{East03, title = "{T}utorial: {P}rioritised {S}ervice {A}rchitecture using {H}oneysuckle", author= "East, Ian R.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "33--36", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "An update will be presented on the progress in establishing the Honeysuckleprogramming language [1] and its formal foundations. The latter are formallyaddressed in a paper currently under review for journal publication [2], but willbe summarised. They include formal definitions of service protocol plus servicenetwork/component (SNC) and the PSA design rule (PSADR), from which aproof of a priori deadlock-freedom emerges directly. Freedom from priority conflict(and thus inversion) is also easily guaranteed. Closure in the definition of systemand component guarantees true compositionality under both concurrency andprioritised alternation." } @InProceedings{ArrantssoVinter03, title = "{T}he {G}rid {B}lock {D}evice", author= "Arrantsson, Bardur and Vinter, Brian", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "37--48", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "In this paper we propose a distributed, replicated block device for The Gridbased on the the replication algorithm of Y. Amir[1]. The end goal is to supportapplication-specified semantics, both wrt. replication strategy and the consistencymodel used for reads and writes.We list the proposed features of the Grid Block Device and discuss various methodsof implementation." } @InProceedings{HappeVinter03, title = "{D}istributed {S}hared {M}emory in {G}lobal {A}rea {N}etworks", author= "Happe, Hans Henrik and Vinter, Brian", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "49--62", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "Distributed Shared Memory (DSM) has many advantages in heterogeneousenvironments, such as geographically distant clusters or The Grid. These includes:locality utilization and replication transparency. The fact that processes communicateindirectly through memory rather than directly, is giving DSM these advantages.This paper presents the design of Global PastSet (GPS) which is a DSM systemtargeted at global area networks. GPS is based on the DSM system PastSet [1] that hasbeen very effective in homogeneous cluster environments. GPS utilizes consistencycontrol migration and replication to scale in heterogeneous environments. This hasresulted in a token-based mutual exclusion algorithm that considers locality and analgorithm for locating replicas. GPS has been simulated in multi-cluster environmentswith up to 2048 nodes with very promising results." } @InProceedings{RajuRong03, title = "{A}utomatic {C}onversion of {CSP} to {CTJ}, {JCSP}, and {CCSP}", author= "Raju, V. and Rong, L. and Stiles, G. S.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "63--81", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "We present tools that automatically convert a subset of machine-readable CSPscript to executable Java or C code. CSP is used to design and verify thecorrectness of large and complex systems of processes that interact only viaexplicit synchronous messages. These systems can be implemented in Javausing CTJ or JCSP, packages that add CSP-like features to Java, or in CCSP, apackage that adds similar features to standard C. Implementation of CSP systemscan be tedious and error-prone when large numbers of processes andcommunications are involved, and sorting out errors in channel naming or theordering of messages can be very time-consuming. The tools we have developedminimize such problems by converting the verified CSP descriptions ofcommunicating processes directly into Java or C code, thus guaranteeing thatchannels are correctly named and the communications occur in the proper order.This process can significantly cut development time." } @InProceedings{ONeillMoore03, title = "{A} {S}ingle {C}hip {S}olution for {D}istributed {P}rocessing {S}ystems", author= "O'Neill, Brian C. and Moore, P.W. and Clark, S.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "83--90", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "This paper describes a processor and an inter-processor communications interfaceintegrated on a single chip for use in a distributed processing system. The system isbased on work of the electronic systems design and parallel processing group at theNottingham Trent University. The four main elements of the chip design areprocessor, memory, communication interface and packet routing switch all integratedunto one chip. This design is achieved by the use of the ALTERA ARM basedExcalibur system on a programmable chip (SOPC) containing an embedded processorand programmable logic. The paper describes the communication features andimplementation carried out by the research group to achieve this single chip processor." } @InProceedings{SmithHughes03, title = "{T}he denotational {S}emantics of {V}iew-{C}entric {R}easoning", author= "Smith, Marc L. and Hughes, Charles E. and Burke, Kyle W.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "91--98", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "Both Lawrence’s HCSP [1] and Smith, et al’s VCR [2] (an earlier versionappears in [3]) extend CSP [4] with representations of truly concurrent events. Previously,VCR was described using an operational semantics, while the semantics ofHCSP’s Acceptances model, like those of the predominant CSP models described byRoscoe [5] (e.g., Traces, Failures / Divergences), are denotational. We now present adenotational semantics for VCRand, in so doing, propose an extension toHCSP (andpossibly other existing CSP models) to support View-Centric Reasoning. This workbrings VCR a step closer to being drawn within Hoare and He’s Unifying Theories ofProgramming [6] for further comparisons." } @InProceedings{Lawrence03, title = "{O}vertures and hesitant offers: hiding in {CSPP}", author= "Lawrence, Adrian E.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "97--109", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "Hiding is an important and characteristic part of CSP. Defining it in thepresence of priority for CSPP needs care. The ideas of overtures and hesitant offersintroduced here arise naturally in the context of Acceptances. They provide clearinsight into the behaviour of hidden processes. And particularly illuminate the originof the nondeterminism which frequently arises from hiding.Keywords: CSP; CSPP; Denotational semantics; formal methods; concurrency; parallelsystems; occam; hardware compilation; priority; hiding." } @InProceedings{HilderinkBroenink03, title = "{S}ampling and timing a task for the environmental process", author= "Hilderink, Gerald H. and Broenink, Jan F.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "111--124", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "Sampling and timing is considered a responsibility of the environment ofcontroller software. In this paper we will illustrate a concept whereby anenvironmental process and multi-way events play an important role in applyingtiming for untimed CSP software architectures. We use this timing concept forbuilding our control applications based on CSP concepts and with our CSP for C++(CTC++) library. We present a concept of sampling of control applications that isorthogonal to the application. This implies global timing on the basis of timedevents. We also support traditional local timing on the based of timed processes," } @InProceedings{DullerPanesar03, title = "{P}arallel {P}rocessing - the pico{C}hip way!", author= "Duller, Andrew and Panesar, Gajinder and Towner, Daniel", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "125--138", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "This paper describes a new approach to parallel processing within thewell targetted application domain of wireless communications systems, using thepicoArrayTM. The picoArrayTM is a tiled-processor architecture, containing 430 heterogeneousprocessors, connected through a novel, compile-time scheduled interconnect.We show how the features of the picoArrayTM allow deterministic processing tobe achieved, and how the tool chain allows programming to be performed effectivelyin a combination of high level assembly language and C. By handling a wide varietyof types of processing within the picoArrayTM a single design flow can be usedto produce complex communications systems. The effectiveness of this approach isdemonstrated through the use of the picoArrayTM to build a working 3G base-station." } @InProceedings{BrownWelch03, title = "{A}n {I}ntroduction to the {K}ent {C}++{CSP} {L}ibrary", author= "Brown, Neil C.C. and Welch, Peter H.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "139--156", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "This paper reports on a CSP library for C++, developed over the past yearat the University of Kent. It is based on the OO-design and API of JCSP and thelightweight algorithms of KRoC occam, with extensions to exploit specific C++ capabilities(such as templates). Both user-level and operating system threads are usedto provide a range of implementation options and semantics (e.g. for managing blockingsystem calls intelligently) that run efficiently under eitherWindows or Linux. Thelibrary is presented from the user’s point of view, mainly by way of a tutorial. Implementationdetails are also outlined and some benchmark results given. The performanceof C++CSP is between that of KRoC occam and JCSP — fairly close toKRoC." } @InProceedings{GonzalezBustacara03, title = "{A}gents for {C}oncurrent {P}rogramming", author= "Gonzalez, Enrique and Bustacara, Cesar and Avila, Jamir", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "157--166", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "This paper aims to demonstrate that concepts from Distributed Artificial Intelligence are very useful to design concurrent systems. The BESA framework and the AOPOA methodology are introduced as tools to achieve this goal. The Behavior-oriented, Event-driven and Social-based Agent (BESA) framework combines the concepts of MultiAgent Systems with the design of concurrent systems: an agent can be constructed as a set of behaviors; the notion of behaviors can be directly applied to concurrent systems design using the Agent Oriented Programming paradigm. The internal architecture of a BESA agent integrates two important features: a modular composition of behaviors and an event dispatcher based in a select like mechanism. The Agent Oriented Programming based in an Organizational Approach (AOPOA) methodology provides a systematic procedure to build complex system based in three concepts: a hierarchical recursive decomposition of the system, a goal-oriented role identification, and an evolution of the cooperation relationships linking the system components." } @InProceedings{NicoleEllis03, title = "occam for reliable embedded systems: lightweight runtime and model checking", author= "Nicole, Denis A. and Ellis, Sam and Hancock, Simon", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "167--172", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "We describe some more recent developments of the SPoC system. We describe a new module in the occam compiler which performs substantial simplifications of the run-time demands made by the compiled code. This has been used successfully both to target a simple PIC microcontroller and to generate input for the SMV model checker." } @InProceedings{CampbellStiles03, title = "{T}he {T}rebuchet", author= "Campbell, John and Stiles, G. S.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "173--183", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "The Trebuchet is a hardware architecture for machines implementedfrom conventional software source programs. It is pseudo-asynchronous in that itdecouples the system clock from the computational logic, reducingelectromagnetic interference, smoothing current draw, and reducing pipelinelatency, key benefits of asynchronous designs. Performance of example programsis given." } @InProceedings{Boosten03, title = "{F}ormal {C}ontracts: {E}nabling {C}omponent {C}omposition", author= "Boosten, Marcel", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "185--197", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "Traditional component interaction is based on interface calls and callbacks. Such interaction can introduce integration faults, i.e., side effects at the moment of component integration. Solutions to such problems can be hard to apply, and may require drastic changes in the design of the involved components. This paper introduces Formal Contracts, a software construct that allows side-effect free component interaction, and thereby avoids the introduction of integration faults. Furthermore, via a state machine representing the inter-component contract, Formal Contracts, in addition to the static aspects, formally specify the dynamic aspects of component interaction. Formal Contracts are a pragmatic software mechanism that supports the full development cycle: from the specification and decomposition until the debugging, composition, and test of a system." } @InProceedings{SchweigleBarnes03, title = "{F}lexible, {T}ransparent and {D}ynamic occam {N}etworking {W}ith {KR}o{C}.net", author= "Schweigler, Mario and Barnes, Frederick R. M. and Welch, Peter H.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "199--224", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "KRoC.net is an extension to KRoC supporting the distribution of occamchannels over networks, including the internet. Starting in 2001, the development ofKRoC.net has gone through a number of stages, each one making the system moreflexible, transparent and dynamic. It now enables the occam programmer to set upand close network channels dynamically. Configuration has been simplified. All occamPROTOCOLs can now be sent over network channels, without need for conversion.Many of the new dynamic features in occam have been used to improve KRoC.net.Many of the concepts in KRoC.net are similar to those in the JCSP Network Edition(JCSP.net), KRoC.net’s counterpart in the JCSP world. This paper will give an overviewover KRoC.net, its usage, its design and implementation, and its future. It willalso provide some benchmarks and discuss how the new occam features are beingused in the latest KRoC.net version." } @InProceedings{CronieHoeksema03, title = "{A} {CSP}-based {P}rocessing {A}rchitecture for a {F}lexible {MIMO}-{OFDM} {T}estbed", author= "Cronie, H. S. and Hoeksema, F. W. and Slump, C. H.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "225--233", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "Future wireless communication systems require novel techniques to increasethe bitrate, coverage and mobility. One of these techniques is spatial multiplexingand we have investigated the use of a CSP-based kernel in the implementation ofa spatial multiplexing testbed. It turns out that the use of the CSP-based kernel notonly provides a good way of system modeling, but also provides a very scalable softwarearchitecture for the testbed. In future, we can change several system parameterswithout changing the software architecture. With the testbed we were able to verifythe concept of spatial multiplexing in an office environment." } @InProceedings{OrlicBroenink03, title = "{R}eal-time and fault tolerance in distributed control software", author= "Orlic, Bojan and Broenink, Jan F.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "235--250", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "Closed loop control systems typically contain multitude of spatially distributed sensors and actuators operated simultaneously. So those systems are parallel and distributed in their essence. But mapping this parallelism onto the given distributed hardware architecture, brings in some additional requirements: safe multithreading, optimal process allocation, real-time scheduling of bus and network resources. Nowadays, fault tolerance methods and fast even online reconfiguration are becoming increasingly important. All those often conflicting requirements, make design and implementation of real-time distributed control systems an extremely difficult task, that requires substantial knowledge in several areas of control and computer science. Although many design methods have been proposed so far, none of them had succeeded to cover all important aspects of the problem at hand. [1] Continuous increase of production in embedded market, makes a simple and natural design methodology for real-time systems needed more then ever." } @InProceedings{Barnes03, title = "occwserv: {A}n occam {W}eb-{S}erver", author= "Barnes, Frederick R. M.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "251--268", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "This paper presents ‘occwserv’, the occam web-server. This is a highlyconcurrent web-server, written in the occam multi-processing language, that supportsthe majority of the HTTP/1.1 protocol. Dynamic process and channel creation mechanismsare used to create scalable ‘server-farms’, each responsible for a particular webserverfunction - for example, reading client requests or running CGI processes. Thedesign of the web-server is presented, along with some early performance benchmarkresults. Although performance may appear a limiting factor (when compared to otherweb-servers such as Apache), much is gained from the simplicity and security of occam.Extending the web-server with new functionality, for example, is intuitive andlargely trivial - with the guarantees that code is free from race-hazard and aliasingerrors. An experimental non-standard addition, the OGI (occam Gateway Interface),is also presented. This provides a mechanism for dynamically loading and attachingpre-compiled occam processes to the running web-server, that can then handle oneor multiple client connections. A text-based style adventure game is examined briefly,that allows multiple clients to interact within a \"multi-user dungeon\" (MUD) styleenvironment." } @InProceedings{BarnesJacobson03, title = "{RM}o{X}: {A} raw-metal occam {E}xperiment", author= "Jacobsen, Christian L. and Barnes, Frederick R. M. and Vinter, Brian", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "269--288", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "Operating-systems are the core software component of many modern computersystems, ranging from small specialised embedded systems through to largedistributed operating-systems. This paper presents RMoX: a highly concurrent CSPbasedoperating-system written in occam. The motivation for this stems from theoverwhelming need for reliable, secure and scalable operating-systems. The majorityof operating-systems are written in C, a language that easily offers the level offlexibility required (for example, interfacing with assembly routines). C compilers,however, provide little or no mechanism to guard against race-hazard and aliasing errors,that can lead to catastrophic run-time failure (as well as to more subtle errors,such as security loop-holes). The RMoX operating-system presents a novel approachto operating-system design (although this is not the first CSP-based operating-system).Concurrency is utilised at all levels, resulting in a system design that is well defined,easily understood and scalable. The implementation, using the KRoC extended occam,provides guarantees of freedom from race-hazard and aliasing errors, and makesextensive use of the recently added support for dynamic process creation and channelmobility. Whilst targeted at mainstream computing, the ideas and methods presentedare equally applicable for small-scale embedded systems - where advantage can bemade of the lightweight nature of RMoX (providing fast interrupt responses, for example)." } @InProceedings{ArvindSoteloSal03, title = "{S}cheduling for {ILP} in the '{P}rocessor-as-a-{N}etwork'", author= "Arvind, D.K. and Sotelo-Salazar, S.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "289--304", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "This paper explores the idea of the processor as an asynchronous network,called the micronet, of functional units which compute concurrently and communicateasynchronously. A micronet-based asynchronous processor exposes spatial as well astemporal concurrency. We analyse the performance of the ‘processor-as-a-network’by comparing three scheduling algorithms for exploiting Instruction Level Parallelism(ILP). Schedulers for synchronous architectures have relied on deterministic instructionexecution times. In contrast, ILP scheduling in micronet-based architectures is achallenge as it is less certain in advance when instructions start execution and whenresults become available. Performance results comparing the three schedulers are presentedfor SPEC95 benchmarks executing on a cycle-accurate model of the micronetarchitecture." } @InProceedings{Moore03, title = "{A}ccurate {C}alculation of {D}eme {S}izes for a {P}arallel {G}enetic {S}cheduling {A}lgorithm", author= "Moore, M.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "305--313", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "The accuracies of three equations to determine the size of populations for serial and parallel genetic algorithms are evaluated when applied to a parallel genetic algorithm that schedules tasks on a cluster of computers connected via shared bus. This NP-complete problem is representative of a variety of optimisation problems for which genetic algorithms (GAs) have been shown to effectively approximate the optimal solution. However, empirical determination of parameters needed by both serial and parallel GAs is time-consuming, often impractically so in production environments. The ability to predetermine parameter values mathematically eliminates this difficulty. The parameter that exerts the most influence over the solution quality of a parallel genetic algorithm is the population size of the demes. Comparisons here show that the most accurate equation for the scheduling application is Cant\`{u}-Paz' serial population sizing calculation based on the gambler's ruin model [1]. The study presented below is part of an ongoing analysis of the effectiveness of parallel genetic algorithm parameter value computations based on schema theory. The study demonstrates that the correct deme size can be predetermined quantitatively for the scheduling problem presented here, and suggests that this may also be true for similar optimisation problems. This work is supported by NASA Grant NAG9-140." } @InProceedings{HilderinkJovanovic03, title = "{A} multimodal robotic control law modelled and implemented by the {CSP} - {GML}/{CT} framework", author= "Hilderink, Gerald H. and Jovanovic, Dusko S. and Broenink, Jan F.", editor= "Broenink, Jan F. and Hilderink, Gerald H.", pages = "315--334", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2003", isbn= "1 58603 381 6", year= "2003", month= "sep", abstract= "We use several formal methodologies for developing control applicationsat our Control Engineering research group. An important methodology we use fordesigning and implementing control software architecture is based on CSP concepts.These concepts allow us to glue multidisciplinary activities together and allow forformal stepwise refinement from design down to its implementation. This paperillustrates a trajectory and shows the usefulness of CSP diagrams for a simplemechatronic system. The simulation tool 20-SIM is used for creating the controllaws and our CTC++ package is used for coding in C++." } @InProceedings{Roscoe04, title = "{F}initary {R}efinement {C}hecks for {I}nfinitary {S}pecifications", author= "Roscoe, A. W.", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "1--18", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "We see how refinement against a variety of infinite-state CSP specifications can be translated into finitary refinement checks. Methods used include turning a process into its own specification inductively, and we recall Wolper's discovery that data independence can be used for this purpose." } @InProceedings{PhillipsStiles04, title = "{A}n {A}utomatic {T}ranslation of {CSP} to {H}andel-{C}", author= "Phillips, Jonathan D. and Stiles, G. S.", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "19--38", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "We present tools that convert a subset of CSP into Handel-C code. Handel-C is similar to the standard C programming language, and can be itself converted to produce files to program an FPGA. We thus now have a process that can directly generate hardware from a verified high-level description. The CSP to Handel-C translator makes use of the Lex and Yacc programming tools. The Handel-C code produced is functional, but not necessarily optimized for all situations. The translator has been tested using several CSP scripts of varying complexity. The functionality of the resulting Handel-C programs has been verified with simulations, and two scripts were further checked with successful implementations on an FPGA." } @InProceedings{Peschansk04, title = "{O}n {L}inear {T}ime and {C}ongruence in {C}hannel-{P}assing {C}alculi", author= "Peschanski, Frederic", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "39--54", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "Process algebras such as CSP or the Pi-calculus are theories to reason about concurrent software. The Pi-calculus also introduces channel passing to address specific issues in mobility. Despite their similarity, the languages expose salient divergences at the formal level. CSP is built upon trace semantics while labelled transition systems and bisimulation are the privileged tools to discuss the Pi-calculus semantics. In this paper, we try to bring closer both approaches at the theoretical level by showing that proper trace semantics can be built upon the Pi-calculus. Moreover, by introducing locations, we obtain the same discriminative power for both the trace and bisimulation equivalences, in the particular case of early semantics. In a second part, we propose to develop the semantics of a slightly modified language directly in terms of traces. This language retains the full expressive power of the Pi-calculus and most notably supports channel passing. Interestingly, the resulting equivalence, obtained from late semantics, exhibits a nice congruence property over process expressions." } @InProceedings{East04a, title = "{P}rioritised {S}ervice {A}rchitecture", author= "East, Ian R.", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "55--70", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "Previously, Martin gave formal conditions under which a simple design rule guarantees deadlock-freedom in a system with service (client-server) architecture. Both conditions and design rule may be statically verified. Here, they are re-arranged to define service protocol, service network (system), and service network component, which together form a model for system abstraction. Adding mutual exclusion of service provision and dependency between service connections enriches abstraction and is shown to afford compositionality. Prioritised alternation of service provision further enriches abstraction while retaining deadlock-freedom and denying priority conflict, given appropriate new design rules." } @InProceedings{DullerPanesar04, title = "{D}ebugging and {V}erification of {P}arallel {S}ystems - the pico{C}hip {W}ay", author= "Duller, Andrew and Panesar, Gajinder and Towner, Daniel", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "71--84", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "This paper describes the methods that have been developed for debugging and verifying systems using devices from the picoArray(TM) family. In order to increase the computational ability of these devices the hardware debugging support has been kept to a minimum and the methods and tools described take this into account. An example of how some of these methods have been used to produce an 802.16 system is given. The important features of the new PC102 device are outlined." } @InProceedings{ClaytonKerridge04, title = "{A}ctive {S}erial {P}ort: {A} {C}omponent for {JCSPN}et {E}mbedded {S}ystems", author= "Clayton, Sarah and Kerridge, Jon", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "85--98", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "The javax.comm package provides basic low-level access between Java programs and external input-output devices, in particular, serial devices. Such communications are handled using event listener technology similar to that used in the AWT package. Using the implementation of active AWT components as a model we have constructed an active serial port (ASP), using javax.comm, that gives a channel interface that is more easily incorporated into a JCSPNet collection of processes. The ASP has been tested in a real-time embedded system used to collect data from infrared detectors used to monitor the movement of pedestrians. The collected data is transferred across an Ethernet from the serial port process to the data manipulation processes. The performance of the JCSPNet based system has been compared with that supplied by the manufacturer of the detector and we conclude by showing how a complete monitoring system could be constructed in a scalable manner." } @InProceedings{JacobsonJadud04, title = "{T}he {T}ransterpreter: {A} {T}ransputer {I}nterpreter", author= "Jacobsen, Christian L. and Jadud, Matthew C.", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "99--106", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "We have written the Transterpreter, a virtual machine for executing the transputer instruction set. This interpreter is a small, portable, and extensible run-time, intended to be easily ported to handheld computers, mobile phones, and other embedded contexts. In striving for this level of portability, occam programs compiled to Transputer byte-code can currently be run on desktop computers, handhelds, and even the LEGO Mindstorms robotics kit." } @InProceedings{Schweigle04, title = "{A}dding {M}obility to {N}etworked {C}hannel-{T}ypes", author= "Schweigler, Mario", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "107--126", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "This paper reports the specification of a sound concept for the mobility of network-channel-types in KROC.net. The syntax and semantics of KROC.net have also been modified in order to integrate it more seamlessly into the occam-pi language. These new features are currently in the process of being implemented. Recent developments in occam-pi and KROC (such as mobile processes and live / dead channel-type-ends) are described, together with their impact on KROC.net. This paper gives an overview of the recent developments in KROC.net, and presents its proposed final semantics, as well as the proposed interface between the KROC.net infrastructure and the KROC compiler." } @InProceedings{VinterBj\orndalen04, title = "{A} {C}omparison of {T}hree {MPI} {I}mplementations", author= "Vinter, Brian and Bjørndalen, John Markus", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "127--136", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "Various implementations of MPI are becoming available as MPI is slowly emerging as the standard API for parallel programming on most platforms. The open source implementations LAM-MPI and MPICH are the most widely used, while commercial implementations are usually tied to special hardware platforms. This paper compares these two open-source MPI-implementations to one of the commercially available implementations, MESH-MPI from MESH-Technologies. We find that the commercial implementation is significantly faster than the open-source implementations, though LAM-MPI does come out on top in some benchmarks." } @InProceedings{HappeVinter04, title = "{A}n {E}valuation of {I}nter-{S}witch {C}onnections", author= "Happe, Hans Henrik and Vinter, Brian", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "137--146", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "In very large clusters it is not possible to get Ethernet switches that are large enough to support the whole cluster, thus a configuration with multiple switches are needed. This work seeks to evaluate the interconnection strategies for a new 300+ CPU cluster at the University of Southern Denmark. The focal point is a very inexpensive switch from D-Link which unfortunately offers only 24 Gb ports. We investigate different inter-switch connections and their impact at application level." } @InProceedings{Lawrence04a, title = "{O}bserving {P}rocesses", author= "Lawrence, Adrian E.", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "147--156", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "This paper discusses the sorts of observations of processes that are appropriate to capture priority. The standard denotational semantics for CSP are based around observations of traces and refusals. Choosing to record a little more detail allows extensions of CSP which describe some very general processes including those that include priority. A minimal set of observations yields a language and semantics remarkably close to the standard Failures-Divergences model of CSP which is described in a companion paper. A slightly richer set of observations yields a somewhat less abstract language." } @InProceedings{Lawrence04b, title = "{T}riples", author= "Lawrence, Adrian E.", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "157--184", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "The most abstract form of acceptance semantics for a variant of CSPP is outlined. It encompasses processes which may involve priority, but covers a much wider class of systems including real time behaviour. It shares many of the features of the standard Failures-Divergences treatment: thus it is only a Complete Partial Order when the alphabet of events is finite." } @InProceedings{Brown04, title = "{C}++{CSP} {N}etworked", author= "Brown, Neil C.C.", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "185--200", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "One year ago, the Kent C++CSP Library was presented at this conference. C++CSP is an implementation of CSP ideas in C++. After it was presented, C++CSP was released to the world at large under the Lesser GNU Public Licence. It had always been the author's intention to develop a network capability in the library. This paper details the development of a network capability for the library and the results of benchmarks, which are encouragingly fast." } @InProceedings{BarnesWelch04, title = "{C}ommunicating {M}obile {P}rocesses", author= "Barnes, Frederick R. M. and Welch, Peter H.", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "201--218", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "This paper presents a new model for mobile processes in occam-pi. A process, embedded anywhere in a dynamically evolving network, may suspend itself mid-execution, be safely disconnected from its local environment, moved (by communication along a channel), reconnected to a new environment and reactivated. Upon reactivation, the process resumes execution from the same state (i.e. data values and code positions) it held when it suspended. Its view of its environment is unchanged, since that is abstracted by its synchronisation (e.g. channels and barriers) interface and that remains constant. The environment behind that interface will (usually) be completely different. The mobile process itself may contain any number of levels of dynamic sub-network. This model is simpler and, in some ways, more powerful than our earlier proposal, which required a process to terminate before it could be moved. Its formal semantics and implementation, however, throw up extra challenges. We present details and performance of an initial implementation." } @InProceedings{MartinTiskin04, title = "{D}ynamic {BSP}: {T}owards a {F}lexible {A}pproach to {P}arallel {C}omputing over the {G}rid", author= "Martin, Jeremy M. R. and Tiskin, Alex V.", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "219--226", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "The Bulk Synchronous model of parallel programming has proved to be a successful paradigm for developing portable, scalable, high performance software. Originally developed for use with traditional supercomputers, it was later applied to networks of workstations. Following the emergence of grid computing, new programming models are needed to exploit its potential. We consider the main issues relating to adapting BSP for this purpose, and propose a new model Dynamic BSP, which brings together many elements from previous work in order to deal with quality-of-service and heterogeneity issues. Our approach uses a task-farmed implementation of supersteps." } @InProceedings{Goldsmith04, title = "{CSP}: {T}he {B}est {C}oncurrent-{S}ystem {D}escription {L}anguage in the {W}orld - {P}robably!", author= "Goldsmith, Michael", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "227--232", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "CSP, Hoare's Communicating Sequential Processes, is one of the formalisms that underpins the antecedents of CPA, and this year celebrates its Silver Jubilee. Formal Systems' own FDR refinement checker is among the most powerful explicit exhaustive finite-state exploration tools, and is tailored specifically to the CSP semantics. The CSPm ASCII form of CSP, in which FDR scripts are expressed, is the de-facto standard for CSP tools. Recent work has experimentally extended the notation to include a probabilistic choice construct, and added functionality into FDR to produce models suitable for analysis by the Birmingham University PRISM tool." } @InProceedings{BroeninkJovanovic04, title = "{G}raphical {T}ool for {D}esigning {CSP} {S}ystems", author= "Broenink, Jan F. and Jovanovic, Dusko S.", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "233--252", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "For a broad acceptance of an engineering paradigm, a graphical notation and supporting design tool seem inevitable. This paper discusses certain issues of developing a design environment for building systems based on CSP. Some of the issues discussed depend specifically on the underlying theory of CSP, while a number of them are common for any graphical notation and supporting tools, such as provisions for complexity management and design overview." } @InProceedings{East04b, title = "{T}owards a {S}emantics for {P}rioritized {A}lternation", author= "East, Ian R.", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "253--264", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "A new prioritised alternation programming construct and CSP operator have previously been suggested by the author to express behaviour that arises with machine-level prioritised vectored interruption. The semantics of each is considered, though that of prioritisation is deferred given the current lack of consensus regarding a suitable domain. Defining axioms for the operator are tentatively proposed, along with possible laws regarding behaviour. Lastly, the issue of controlled termination of component and construct is explored. This is intended as only a first step towards a complete semantics." } @InProceedings{OliveiraCavalcant04, title = "{R}efining {I}ndustrial {S}cale {S}ystems in {C}ircus", author= "Oliveira, Marcel and Cavalcanti, Ana and Woodcock, Jim", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "281--310", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "Circus is a new notation that may be used to specify both data and behaviour aspects of a system, and has an associated refinement calculus. Although a few case studies are already available in the literature, the industrial fire control system presented in this paper is, as far as we know, the largest case study on the Circus refinement strategy. We describe the refinement and present some new laws that were needed. Our case study makes extensive use of mutual recursion; a simplified notation for specifying such systems and proving their refinements is proposed here." } @InProceedings{Sputh04, title = "{K}-{CSP} {C}omponent {B}ased {D}evelopment of {K}ernel {E}xtensions", author= "Sputh, Bernhard H.C.", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "311--324", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "Kernel extension development suffers from two problems. Firstly, there is little to no code reuse. This is caused by the fact that most kernel extensions are coded in the C programming language. This language only allows code reuse either by using `copy and paste' or by using libraries. Secondly, the poor separation of synchronisation and functionality code makes it difficult to change one without affecting the other. It is, therefore, difficult to use the synchronisation mechanisms correctly. The approach proposed in this paper tries to solve these problems by introducing a component based programming model for kernel extensions, and a system based on this proposal is implemented for the Linux kernel. The language used for the implementation is Objective-C, and as a synchronisation mechanism Communicating Sequential Processes is used. This model allows the functionality and synchronisation of a component to be developed separately. Furthermore, due to the use of Communicating Sequential Processes it is possible to verify the correctness of the synchronisation. An example given in this paper illustrates how easy it is to use the K-CSP environment for development." } @InProceedings{FaustSputh04, title = "{C}haining {C}ommunications {A}lgorithms with {CSP}", author= "Faust, Oliver and Sputh, Bernhard H.C. and Endler, David", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "325--338", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "Software Defined Radio (SDR) requires a reliable, fast and flexible method to chain parameterisable algorithms. Communicating Sequential Processes (CSP) is a design methodology, which offers exactly these properties. This paper explores the idea of using a Java implementation of CSP (JCSP) to model a flexible algorithm chain for Software Defined Radio. JCSP offers the opportunity to distribute algorithms on different processors in a multiprocessor environment, which gives a speed up and keeps the system flexible. If more processing power is required another processor can be added. In order to cope with the high data rate requirement of SDR, optimized data transfer schemes were developed. The goal was to increase the overall system efficiency by reducing the synchronisation overhead of a data transfer between two algorithms. To justify the use of CSP in SDR, a system incorporating CSP was compared with a conventional system, in single and multiprocessor environments." } @InProceedings{PeelJavier04, title = "{U}sing {CSP} to {V}erify {A}spects of an {O}ccam-to-{FPGA} {C}ompiler", author= "Peel, Roger M. A. and Javier, Wong Han Feng", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "339--352", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "This paper reports on the progress made in developing techniques for the verification of an occam to FPGA compiler.The compiler converts occam programs into logic circuits that are suitable for loading into field-programmable gate arrays (FPGAs). Several levels of abstraction of these circuits provide links to conventional hardware implementations. Communicating Sequential Processes (CSP) has then been used to model these circuits. This CSP has been subjected to tests for deadlock and livelock freedom using the Failures-Divergence Refinement tool (FDR). In addition, FDR has been used to prove that the circuits emitted have behaviours equivalent to CSP specifications of the original occam source codes." } @InProceedings{Smith04, title = "{F}ocussing on {T}races to {L}ink {VCR} and {CSP}", author= "Smith, Marc L.", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "353--360", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "View-Centric Reasoning (VCR) replaces CSP's perfect observer with multiple, possibly imperfect observers. To employ view-centric reasoning within existing CSP models requires a bookkeeping change. Specifically, VCR introduces parallel events as a new primitive for constructing traces, and distinguishes two types of event traces: histories and views. Previously, we gave the operational semantics of VCR, and demonstrated the utility of parallel event traces to reason for the first time unambiguously about the meaning of the Linda predicate operations rdp() and inp(). The choice of using an operational semantics to describe VCR makes direct comparison with CSP difficult; therefore, work is ongoing to recast VCR denotationally, then link it with the other CSP models within Hoare and He's Unifying Theories of Programming. Initial efforts in this direction led to a comparison of VCR with Lawrence's HCSP. In this paper, we present some recent insights and abstractions - inspired by modern quantum physics - that have emerged whilst contemplating parallel event traces in light of the unifying theories. These insights lead to a more natural expression of VCR traces, in the sense that they more closely resemble CSP traces, thus forming a basis for linking VCR and CSP." } @InProceedings{TanakaFukuchi04, title = "{D}esign of a {T}ransputer {C}ore and {I}mplementation in an {FPGA}", author= "Tanaka, Makoto and Fukuchi, Naoya and Ooki, Yutaka and Fukunaga, Chikara", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "361--372", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "We have made an IP (Intellectual Property) core for the T425 transputer. The same machine instructions as the transputer are executable in this IP core (we call it TPCORE). To create an IP code for the transputer has two aspects. On one hand, if we could succeed in building our own one and put it in an FPGA, we could apply it as a core processor in a distributed system. We also intend to put it in a VLSI chip. On the other hand, if we can extend our transputer development starting from a very conventional one to more sophisticated ones, as Inmos proceeded to the T9000, we will eventually find our technological breakthrough for the bottlenecks that the original transputer had, such as the restriction of the number of communication channels. It is important to have an IP core for the transputer. Although TPCORE uses the same register set with the same functionality as transputer and follows the same mechanisms for link communication between two processes and interrupt handling, the implementation must be very different from original transputer. We have extensively used the micro-code ROM to describe any states that TPCORE must take. Using this micro code ROM for the state transition description, we could implement TPCORE economically on FPGA space and achieve efficient performance." } @InProceedings{AbdallahDamaj04, title = "{R}econfigurable {H}ardware {S}ynthesis of the {IDEA} {C}ryptographic {A}lgorithm", author= "Abdallah, Ali E. and Damaj, I. W.", editor= "East, Ian R. and Duce, David and Green, Mark and Martin, Jeremy M. R. and Welch, Peter H.", pages = "387--416", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2004", isbn= "1 58603 458 8", year= "2004", month= "sep", abstract= "The paper focuses on the synthesis of a highly parallel reconfigurable hardware implementation for the International Data Encryption Algorithm (IDEA). Currently, IDEA is well known to be a strong encryption algorithm. The use of such an algorithm within critical applications, such as military, requires efficient, highly reliable and correct hardware implementation. We will stress the affordability of such requirements by adopting a methodology that develops reconfigurable hardware circuits by following a transformational programming paradigm. The development starts from a formal functional specification stage. Then, by using function decomposition and provably correct data refinement techniques, powerful high-order functions are refined into parallel implementations described in Hoare's communicating sequential processes notation(CSP). The CSP descriptions are very closely associated with Handle-C hardware description language (HDL) program fragments. This description language is employed to target reconfigurable hardware as the final stage in the development. The targeted system in this case is the RC-1000 reconfigurable computer. In this paper different designs for the IDEA corresponding to different levels of parallelism are presented. Moreover, implementation, realization, and performance analysis and evaluation are included." } @InProceedings{East05, title = "{I}nterfacing with {H}oneysuckle by {F}ormal {C}ontract", author= "East, Ian R.", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "1--11", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "Honeysuckle is a new programming language that allows systems to be constructed from processes which communicate under service (client-server or master-servant) protocol. The model for abstraction includes a formal definition of both service and service-network (system or component). Any interface between two components thus forms a binding contract which will be statically verified by the compiler. An account is given of how such an interface is constructed and expressed in Honeysuckle, including how it may encapsulate state, and how access may be shared and distributed. Implementation is also briefly discussed." } @InProceedings{Kerridge05, title = "{G}roovy {P}arallel! {A} {R}eturn to the {S}pirit of occam?", author= "Kerridge, Jon and Barclay, Ken and Savage, John", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "13--28", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "For some years there has been much activity in developing CSP-like extensions to a number of common programming languages. In particular, a number of groups have looked at extensions to Java. Recent developments in the Java platform have resulted in groups proposing more expressive problem solving environments. Groovy is one of these developments. Four constructs are proposed that support the writing of parallel systems using the JCSP package. The use of these constructs is then demonstrated in a number of examples, both concurrent and parallel. A mechanism for writing XML descriptions of concurrent systems is described and it is shown how this is integrated into the Groovy environment. Finally conclusions are drawn relating to the use of the constructs, particularly in a teaching and learning environment." } @InProceedings{Jovanovic05, title = "{O}n {I}ssues of {C}onstructing an {E}xception {H}andling {M}echanism for {CSP}-{B}ased {P}rocess-{O}riented {C}oncurrent {S}oftware", author= "Jovanovic, Dusko S. and Orlic, Bojan and Broenink, Jan F.", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "29--41", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "This paper discusses issues, possibilities and existing approaches for fitting an exception handling mechanism (EHM) in CSP-based process-oriented software architectures. After giving a survey on properties desired for a concurrent EHM, specific problems and a few principal ideas for including exception handling facilities in CSP-designs are discussed. As one of the CSP-based frameworks for concurrent software, we extend CT (Communicating Threads) library with the exception handling facilities. The extensions result in two different EHM models whose compliance with the most important demands of concurrent EHMs (handling simultaneous exceptions, the mechanism formalization and efficient implementation) are observed." } @InProceedings{Rem05, title = "{A}utomatic {H}andel-{C} {G}eneration from {MATLAB}® and {S}imulink® for {M}otion {C}ontrol with an {FPGA}", author= "Rem, Bart and Gopalakrishnan, Ajeesh and Geelen, Tom J. H. and Roebbers, Herman", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "43--69", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "In this paper, we demonstrate a structured approach to proceed from development in a high level-modeling environment to testing on the real hardware. The concept is introduced by taking an example scenario that involves automatic code generation of Handel-C for FPGAs. The entire process is substantiated with a prototype that generates Handel-C code from MATLAB®/Simulink® for most common Simulink® blocks. Furthermore, we establish the potential of the notion by generating Handel-C for an FPGA, which controls the flow of paper through the scanning section of a printer/copier. Additionally, we present another method to generate Handel-C from a state-based specification. Finally, to verify and validate the behavior of the generated code, we execute several levels of simulation, including software-in-the-loop and hardware-in-the-loop simulations." } @InProceedings{SputhAllen05, title = "{JCSP}-{P}oison: {S}afe {T}ermination of {CSP} {P}rocess {N}etworks", author= "Sputh, Bernhard H.C. and Allen, Alastair R.", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "71--107", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "This paper presents a novel technique for safe partial or complete process network termination. The idea is to have two types of termination messages / poison: LocalPoison and GlobalPoison. Injecting GlobalPoison into a process network results in a safe termination of the whole process network. In contrast, injected LocalPoison only terminates all processes until it is filtered out by Poison-Filtering Channels. This allows the creation of termination domains inside a process network. To make handling of a termination message easy, it is delivered as an exception and not as a normal message. The necessary Poisonable- and Poison-Filtering-Channels have been modelled in CSP and checked using FDR. A proof of concept implementation for Communicating Sequential Processes for Java (JCSP) has been developed and refined. Previously, JCSP offered no safe way to terminate the process network. When the user terminated the program, the Java Virtual Machine (JVM) simply stops all threads (processes), without giving the processes the chance to perform clean up operations. A similar technique is used to perform partial termination of process networks in JCSP, making it unsafe as well. The technique presented in this paper is not limited to JCSP, but can easily be ported to other CSP environments. Partial process network termination can be applied in the area of Software Defined Radio (SDR), because SDR systems need to be able to change their signal processing algorithms during runtime." } @InProceedings{ChalmersKerridge05, title = "jcsp.mobile: {A} {P}ackage {E}nabling {M}obile {P}rocesses and {C}hannels", author= "Chalmers, Kevin and Kerridge, Jon", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "109--127", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "The JCSPNet package from Quickstone provides the capability of transparently creating a network of processes that run across a TCP/IP network. The package also contains mechanisms for creating mobile processes and channels through the use of filters and the class Dynamic Class Loader, though their precise use is not well documented. The package jcsp.mobile rectifies this position and provides a set of classes and interfaces that facilitates the implementation of systems that use mobile processes and channels. In addition, the ability to migrate processes and channels from one processor to another is also implemented. The capability is demonstrated using a multi-user game running on an ad-hoc wireless network using a workstation and four PDAs." } @InProceedings{Gardner05, title = "{CSP}++: {H}ow {F}aithful to {CSP}m?", author= "Gardner, W. B.", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "129--146", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "CSP++ is a tool that makes specifications written in CSPm executable and extensible. It is the basis for a technique called selective formalism, which allows part of a system to be designed in verifiable CSPm statements, automatically translated into C++, and linked with functions coded in C++. This paper describes in detail the subset of CSPm that can be accurately translated by CSP++, and how the CSP semantics are achieved by the runtime framework. It also explains restrictions that apply to coding in CSPm for software synthesis, and the rationale for those restrictions." } @InProceedings{Schoute05, title = "{F}ast {D}ata {S}haring within a {D}istributed, {M}ultithreaded {C}ontrol {F}ramework for {R}obot {T}eams", author= "Schoute, Albert L. and Seesink, Remco and Dierssen, Werner and Kooij, Niek", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "147--154", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "In this paper a data sharing framework for multi-threaded, distributed control programs is described that is realized in C++ by means of only a few, powerful classes and templates. Fast data exchange of entire data structures is supported using sockets as communication medium. Access methods are provided that preserve data consistency and synchronize the data exchange. The framework has been successfully used to build a distributed robot soccer control system running on as many computers as needed." } @InProceedings{HappeVinter05, title = "{I}mproving {TCP}/{IP} {M}ulticasting with {M}essage {S}egmentation", author= "Happe, Hans Henrik and Vinter, Brian", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "155--163", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "Multicasting is a very important operation in high performance parallel applications. Making this operation efficient in supercomputers has been a topic of great concern. Much effort has gone into designing special interconnects to support the operation. Today\&\#8217;s huge deployment of NoWs (Network of Workstations) has created a high demand for efficient software-based multicast solutions. These systems are often based on low-cost Ethernet interconnects without direct support for group communication. Basically TCP/IP is the only widely supported method of fast reliable communication, though it is possible to improve Ethernet performance at many levels \&\#8211; i.e., by-passing the operating system or using physical broadcasting. Low-level improvements are not likely to be accepted in production environments, which leaves TCP/IP as the best overall choice for group communication. In this paper we describe a TCP/IP based multicasting algorithm that uses message segmentation in order to lower the propagation delay. Experiments have shown that TCP is very inefficient when a node has many active connections. With this in mind we have designed the algorithm so that it has a worst-case propagation path length of O(log n) with a minimum of connections per node. We compare our algorithm with the binomial tree algorithm often used in TCP/IP MPI implementations." } @InProceedings{Sampson05, title = "{L}azy {C}ellular {A}utomata with {C}ommunicating {P}rocesses", author= "Sampson, Adam T. and Welch, Peter H. and Barnes, Frederick R. M.", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "165--175", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "Cellular automata (CAs) are good examples of systems in which large numbers of autonomous entities exhibit emergent behaviour.Using the occam-pi and JCSP communicating process systems, we show how to construct \&\#8220;lazy\&\#8221; and \&\#8220;just-in-time\&\#8221; models of cellular automata, which permit very efficient parallel simulation of sparse CA populations on shared-memory and distributed systems." } @InProceedings{Smith05, title = "{A} {U}nifying {T}heory of {T}rue {C}oncurrency {B}ased on {CSP} and {L}azy {O}bservation", author= "Smith, Marc L.", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "177--188", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "What if the CSP observer were lazy? This paper considers the consequences of altering the behavior of the CSP observer. Specifically, what implications would this new behavior have on CSP\&\#8217;s traces? Laziness turns out to be a useful metaphor. We show how laziness permits transforming CSP into a model of true concurrency (i.e., non-interleaved trace semantics). Furthermore, the notion of a lazy observer supports tenets of view-centric reasoning (VCR): parallel events (i.e., true concurrency), multiple observers (i.e., different views), and the possibility of imperfect observation. We know from the study of programming languages that laziness is not necessarily a negative quality; it provides the possibility of greater expression and power in the programswe write. Similarly, within the context of the Unifying Theories of Programming, a model of true concurrency\&\#8212; VCR \&\#8212; becomes possible by permitting (even encouraging) the CSP observer to be lazy." } @InProceedings{Vinter05, title = "{T}he {A}rchitecture of the {M}inimum intrusion {G}rid ({M}i{G})", author= "Vinter, Brian", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "189--201", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "This paper introduces the philosophy behind a new Grid model, the Minimum intrusion Grid, MiG. The idea behind MiG is to introduce a \&\#8216;fat\&\#8217; Grid infrastructure which will allow much \&\#8216;slimmer\&\#8217; Grid installations on both the user and resource side. This paper presents the ideas of MiG, some initial designs and finally a status report of the implementation." } @InProceedings{Klebanov05, title = "{V}erification of {JCSP} {P}rograms", author= "Klebanov, Vladimir and Rümmer, Philipp and Schlager, Steffen and Schmitt, Peter H.", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "203--218", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "We describe the first proof system for concurrent programs based on Communicating Sequential Processes for Java (JCSP). The system extends a complete calculus for the JavaCard Dynamic Logic with support for JCSP, which is modeled in terms of the CSP process algebra. Together with a novel efficient calculus for CSP, a rule system is obtained that enables JCSP programs to be executed symbolically and to be checked against temporal properties. The proof system has been implemented within the KeY tool and is publicly available." } @InProceedings{Wiggers05, title = "{A}rchitecture {D}esign {S}pace {E}xploration for {S}treaming {A}pplications through {T}iming {A}nalysis", author= "Wiggers, Maarten H. and Kavaldjiev, Nikolay and Smit, Gerard J. M. and Jansen, Pierre G.", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "219--233", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "In this paper we compare the maximum achievable throughput of different memory organisations of the processing elements that constitute a multiprocessor system on chip. This is done by modelling the mapping of a task with input and output channels on a processing element as a homogeneous synchronous dataflow graph, and use maximum cycle mean analysis to derive the throughput. In a HiperLAN\2 case study we show how these techniques can be used to derive the required clock frequency and communication latencies in order to meet the application\&\#8217;s throughput requirement on a multiprocessor system on chip that has one of the investigated memory organisations." } @InProceedings{DimmichJacobsen05, title = "{A} {F}oreign {F}unction {I}nterface {G}enerator for occam-pi", author= "Dimmich, Damian J. and Jacobsen, Christian L.", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "235--248", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "occam-pi is a programming language based on the CSP process algebra and the pi-calculus, and has a powerful syntax for expressing concurrency. occam-pi does not however, come with interfaces to a broad range of standard libraries (such as those used for graphics or mathematics). Programmers wishing to use these must write their own wrappers using occam-pi’s foreign function interface, which can be tedious and time consuming. SWIG offers automatic generation of wrappers for libraries written in C and C++, allowing access to these for the target languages supported by SWIG. This paper describes the occam-pi module for SWIG, which will allow automatic wrapper generation for occam-pi, and will ensure that occam-pi’s library base can be grown in a quick and efficient manner. Access to database, graphics and hardware interfacing libraries can all be provided with relative ease when using SWIG to automate the bulk of the work." } @InProceedings{Barnes05, title = "{I}nterfacing {C} and occam-pi", author= "Barnes, Frederick R. M.", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "249--260", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", } @InProceedings{Bjorndalen05, title = "{I}nteractive {C}omputing with the {M}inimum intrusion {G}rid ({M}i{G})", author= "Bjørndalen, John Markus and Anshus, Otto J. and Vinter, Brian", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "261--273", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "Grid computing is finally starting to provide solutions for capacity computing, that is problem solving where there is a large number of independent tasks for execution. This paper describes the experiences with using Grid for capability computing, i.e. solving a single task efficiently. The chosen capability application is driving a very large display which requires enormous processing power due to its huge graphic resolution (7168 x 3072 pixels). Though we use an advanced Grid middleware, the conclusion is that new features are required to provide such coordinated calculations as the present application requires." } @InProceedings{SaifhashemiBeerel05, title = "{H}igh {L}evel {M}odeling of {C}hannel-{B}ased {A}synchronous {C}ircuits {U}sing {V}erilog", author= "Saifhashemi, Arash and Beerel, Peter A.", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "275--288", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "In this paper we describe a method for modeling channel-based asynchronous circuits using Verilog HDL. We suggest a method to model CSP-like channels in Verilog HDL. This method also describes nonlinear pipelines and high level channel timing properties, such as forward and backward latencies, minimum cycle time, and slack. Using Verilog enables us to describe the circuit at many levels of abstraction and to use the commercially available CAD tools." } @InProceedings{WelchBarnes05, title = "{M}obile {B}arriers for occam-pi: {S}emantics, {I}mplementation and {A}pplication", author= "Welch, Peter H. and Barnes, Frederick R. M.", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "289--316", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "This paper introduces a safe language binding for CSP multiway events (barriers\&\#8212;both static and mobile) that has been built into occam-pi (an extension of the classical occam language with dynamic parallelism, mobile processes and mobile channels). Barriers provide a simple way for synchronising multiple processes and are the fundamental control mechanism underlying both CSP (Communicating Sequential Processes) and BSP (Bulk Synchronous Parallelism). Formal semantics (through modelling in classical CSP), implementation details and early performance benchmarks (16 nanoseconds per process per barrier synchronisation on a 3.2 GHz Pentium IV) are presented, along with some likely directions for future research. Applications are outlined for the fine-grained modelling of dynamic systems, where barriers are used for maintaining simulation time and the phased execution of time steps, coordinating safe and desired patterns of communication between millions (and more) of processes. This work forms part of our TUNA project, investigating emergent properties in large dynamic systems (nanite assemblies)." } @InProceedings{Hilderink05, title = "{E}xception {H}andling {M}echanism in {C}ommunicating {T}hreads for {J}ava", author= "Hilderink, Gerald H.", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "317--334", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "The concept of exception handling is important for building reliable software. An exception construct is proposed in this paper, which implements an exception handling mechanism that is suitable for concurrent software architectures. The aim of this exception construct is to bring exception handling to a high-level of abstraction such that exception handling does scale well with the complexity of the system. This is why the exception construct supports a CSP-based software design approach. The proposed exception construct embraces informal semantics, but which are intuitive and suitable to software engineering. The exception construct is prototyped in the CSP for Java library, called CTJ." } @InProceedings{Jakson05, title = "{R}16: a {N}ew {T}ransputer {D}esign for {FPGA}s", author= "Jakson, John", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "335--362", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "This paper describes the ongoing development of a new FPGA hosted Transputer using a Load Store RISC style Multi Threaded Architecture (MTA). The memory system throughput is emphasized as much as the processor throughput and uses the recently developed Micron 32MByte RLDRAM which can start fully random memory cycles every 3.3ns with 20ns latency when driven by an FPGA controller. The R16 shares an object oriented Memory Manager Unit (MMU) amongst multiple low cost Processor Elements (PEs) until the MMU throughput limit is reached. The PE has been placed and routed at over 300MHz in a Xilinx Virtex-II Pro device and uses around 500 FPGA basic cells and 1 Block RAM. The 15 stage pipeline uses 2 clocks per instruction to greatly simplify the hardware design which allows for twice the clock frequency of other FPGA processors. There are instruction and cycle accurate simulators as well as a C compiler in development. The compiler can now emit optimized small functions needed for further hardware development although compiling itself requires much work. Some occam and Verilog language components will be added to the C base to allow a mixed occam and event driven processing model. Eventually it is planned to allow occam or Verilog source to run as software code or be placed as synthesized co processor hardware attached to the MMU." } @InProceedings{Stewart05, title = "{T}owards {S}trong {M}obility in the {S}hared {S}ource {CLI}", author= "Stewart, Johnston and Nixon, Patrick and Walsh, Tim and Ferguson, Ian", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "363--373", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "Migrating a thread while preserving its state is a useful mechanism to have in situations where load balancing within applications with intensive data processing is required. Strong mobility systems, however, are rarely developed or implemented as they introduce a number of major challenges into the implementation of the system. This is due to the fact that the underlying infrastructure that most computers operate on was never designed to accommodate such a system, and because of this it actually impedes the development of these systems to some degree. Using a system based around a virtual machine, such as Microsoft\&\#8217;s Common Language Runtime (CLR), circumnavigates many of these problems by abstracting away system differences. In this paper we outline the architecture of the threading mechanism in the shared source version of the CLR known as the Shared Source Common Language Infrastructure (SSCLI). We also outline how we are porting strong mobility into the SSCLI, taking advantage of its virtual machine." } @InProceedings{Groothuis05, title = "g{CSP} occam {C}ode {G}eneration for {RM}o{X}", author= "Groothuis, Marcel A. and Liet, Geert K. and Broenink, Jan F.", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "375--383", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "gCSP is a graphical tool for creating and editing CSP diagrams. gCSP is used in our labs to generate the embedded software framework for our control systems. As a further extension to our gCSP tool, an occam code generator has been constructed. Generating occam from CSP diagrams gives opportunities to use the Raw-Metal occam eXperiment (RMoX) as a minimal operating system on the embedded control PCs in our mechatronics laboratory. In addition, all processors supported by KRoC can be reached from our graphical CSP tool. The commstime benchmark is used to show the trajectory for gCSP code generation for the RMoX operating system. The result is a simple means for using RMoX in our laboratory for our control systems. We want to use RMoX for future research on distributed control and for performance comparisons between a minimal operating system and our CTC++/RT-linux systems." } @InProceedings{Ivanovici05, title = "{A}ssessing {A}pplication {P}erformance in {D}egraded {N}etwork {E}nvironments: an {FPGA}-based {A}pproach", author= "Ivanovici, Mihai and Beuran, Razvan and Davies, Neil", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "385--395", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", abstract= "Network emulation is a technique that allows real-application performance assessment under controllable and reproducible conditions. We designed and implemented a hardware network emulator on an FPGA-based custom-design PCI platform. Implementation was facilitated by the use of the Handel-C programming language, that allows rapid development and fast translation into hardware and has specific constructs for developing systems with concurrent processes. We report on tests performed with web-browsing applications." } @InProceedings{Hofstee05, title = "{C}ommunication and {S}ynchronisation in the {C}ell {P}rocessor", author= "Hofstee, H. Peter", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "397--397", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", } @InProceedings{Stravers05, title = "{H}omogeneous {M}ultiprocessing for {C}onsumer {E}lectronics", author= "Stravers, Paul", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "399--399", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", } @InProceedings{Peeters05, title = "{H}andshake {T}echnology: {H}igh {W}ay to {L}ow {P}ower", author= "Peeters, Ad", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "401--401", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", } @InProceedings{Broadfoot05, title = "{I}f {C}oncurrency in {S}oftware is {S}o {S}imple, {W}hy is it {S}o {H}ard?", author= "Broadfoot, Guy", editor= "Broenink, Jan F. and Roebbers, Herman and Sunter, Johan P. E. and Welch, Peter H. and Wood, David C.", pages = "403--403", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2005", isbn= "978-1-58603-561-7", year= "2005", month= "sep", } @InProceedings{CookWalker06, title = "{S}pace{W}ire - {DS}-{L}inks {R}eborn", author= "Cook, Barry M. and Walker, Paul", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "1--12", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "DS-links were created to provide a low-latency, high performance data link between parallel processors. When the primary processor using them was withdrawn these links largely disappeared from view but were, in fact, still being used (albeit not for parallel computing) in the Space industry. The potential for these links, with their simple implementation, led to their adoption, in modified form, for a growing range of data communication applications. In 2003, the European Space Agency published a definition of DS-links known as SpaceWire. We briefly describe the original DS-links and detail how SpaceWire has kept or modified them to produce a now popular technology with a rapidly increasing number of implementations and wide take-up." } @InProceedings{LehmbergOlsen06, title = "{A}n {I}ntroduction to {CSP}.{NET}", author= "Lehmberg, Alex and Olsen, Martin N.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "13--30", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "This paper reports on CSP.NET, developed over the last three months at the University of Copenhagen. CSP.NET is an object oriented CSP library designed to ease concurrent and distributed programming in Microsoft.NET 2.0. The library supports both shared memory multiprocessor systems and distributed-memory multicomputers and aims towards making the architecture transparent to the programmer. CSP.NET exploits the power of .NET Remoting to provide the distributed capabilities and like JCSP, CSP.NET relies exclusively on operating system threads. A Name Server and a workerpool are included in the library, both implemented as Windows Services. This paper presents CSP.NET from a users perspective and provides a tutorial along with some implementation details and performance tests." } @InProceedings{Chalmers06, title = "{P}erformance {E}valuation of {JCSP} {M}icro {E}dition: {JCSP}me", author= "Chalmers, Kevin and Kerridge, Jon and Romdhani, Imed", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "31--40", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "Java has become a development platform that has migrated from its initial focus for small form devices, to large full scale desktop and server applications and finally back to the small in the form of Java enabled mobile phones. Here we discuss the necessary requirements to convert the existing JCSP framework so that it can be used in these resource constrained systems. We also provide some performance comparisons on various platforms to evaluate this implementation." } @InProceedings{KerridgeChalmers06, title = "{U}biquitous {A}ccess to {S}ite {S}pecific {S}ervices by {M}obile {D}evices: the {P}rocess {V}iew.", author= "Kerridge, Jon and Chalmers, Kevin", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "41--58", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "The increasing availability of tri-band mobile devices with mobile phone, wi-fi and Bluetooth capability means that the opportunities for increased access by mobile devices to services provided within a smaller locality becomes feasible. This increase in availability might, however, be tempered by users switching off their devices as they are overloaded with a multitude of messages from a variety of sources. A wide range of opportunities can be realised if we can provide a managed environment in which people can access wireless services specific to a particular physical site or location in a ubiquitous manner, independent of the service, and they can also choose from which services they are willing to receive messages. These opportunities range from retail promotions as a person walks down the street, to shopper specific offers as people enter stores that utilise reward card systems, to information about bus arrivals at a bus stop, additional curatorial information within a museum and access to health records within a hospital environment. The CPA paradigm offers a real opportunity to provide such capability with mobile processes, rather than the current approach that, typically, gives users access to web pages." } @InProceedings{ChalmersClayton06, title = "{CSP} for .{NET} {B}ased on {JCSP}", author= "Chalmers, Kevin and Clayton, Sarah", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "59--76", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "We present a CSP framework developed for the .NET platform, building upon the ideas developed for the JCSP library. Discussing the development of the core functionality and then onto extra features in .NET that can be taken advantage of, we have created an initial platform that can provide simple development of CSP style process networks. However, we demonstrate that the Microsoft .NET implementation is more resource hungry for multi-threaded applications than other approaches considered in this paper." } @InProceedings{SchweiglerSampson06, title = "pony - {T}he occam-pi {N}etwork {E}nvironment", author= "Schweigler, Mario and Sampson, Adam T.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "77--108", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "Although concurrency is generally perceived to be a hard subject, it can in fact be very simple, provided that the underlying model is simple. The occam-pi parallel processing language provides such a simple yet powerful concurrency model that is based on CSP and the pi-calculus. This paper presents pony, the occam-pi Network Environment. occam-pi and pony provide a new, unified, concurrency model that bridges inter- and intra-processor concurrency. This enables the development of distributed applications in a transparent, dynamic and highly scalable way. The first part of this paper discusses the philosophy behind pony, explains how it is used, and gives a brief overview of its implementation. The second part evaluates pony's performance by presenting a number of benchmarks." } @InProceedings{Faust06, title = "{A} {S}tudy of {P}ercolation {P}henomena in {P}rocess {N}etworks", author= "Faust, Oliver and Sputh, Bernhard H.C. and Allen, Alastair R.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "109--121", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "Percolation theory provides models for a wide variety of natural phenomena. One of these phenomena is the dielectric breakdown of composite materials. This paper describes how we implemented the percolation model for dielectric breakdown in a massively parallel processing environment. To achieve this we modified the breadth-first search algorithm such that it works in probabilistic process networks. Formal methods were used to reason about this algorithm. Furthermore, this algorithm provides the basis for a JCSP implementation which models dielectric breakdowns in composite materials. The implementation model shows that it is possible to apply formal methods in probabilistic processing environments." } @InProceedings{Sputh06, title = "{P}ortable {CSP} {B}ased {D}esign for {E}mbedded {M}ulti-{C}ore {S}ystems", author= "Sputh, Bernhard H.C. and Faust, Oliver and Allen, Alastair R.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "123--134", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "Modern lifestyle depends on embedded systems. They are everywhere: sometimes they are hidden and at other times they are handled as a fashion accessory. In order to serve us better they have to do more and more tasks at the same time. This calls for sophisticated mechanisms to handle concurrency. In this paper we present CSP (Communicating Sequential Processes) as a method which helps to solve a number of problems of embedded concurrent systems. To be specific, we describe implementations of the commstime benchmark in multithreaded, multiprocessor and architecture fusion systems. An architecture fusion system combines machine and hardware-logic architectures. Our results are twofold. First, architecture fusion systems outperform all the other systems we tested. Second, we implemented all the systems without a change in the design philosophy. The second point is the more important result, because it shows the power of CSP based design methods." } @InProceedings{KumarStiles06, title = "{A} {JCSP}.net {I}mplementation of a {M}assively {M}ultiplayer {O}nline {G}ame", author= "Kumar, Shyam and Stiles, G. S.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "135--149", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "We have developed a simple massively multiplayer online game system as a test bed for evaluating the usefulness and performance of JCSP.net. The system consists of a primary login server, secondary servers managing play on geographically distinct playing fields, and an arbitrary number of players. The basic structure of the game system is fairly simple, and has been verified to be free from deadlock and livelock using CSP and FDR. The JCSP.net implementation is straight-forward and includes over-writing buffers so that disconnected players will not block the servers and other players. Performance tests on local area networks under Windows demonstrate that five secondary servers easily support 1,000 machine-generated players making moves every two to five seconds. The player move end-to-end time was about 65 milliseconds, which is considered fast enough to support fast-action online games. Conversion from Windows to Linux required minimal effort; limited tests confirmed that versions using Linux alone, and Windows and Linux together, were also successful." } @InProceedings{OrlicBroenink06a, title = "{S}ystem{CSP} - {V}isual {N}otation", author= "Orlic, Bojan and Broenink, Jan F.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "151--177", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "This paper introduces SystemCSP - a design methodology based on a visual notation that can be mapped onto CSP expressions. SystemCSP is a graphical design specification language aimed to serve as a basis for the specification of formally verifiable component-based designs of distributed real-time systems. It aims to be a graphical formalism that covers various aspects needed for the design of distributed real-time systems in single framework." } @InProceedings{OrlicBroenink06b, title = "{I}nteracting {C}omponents", author= "Orlic, Bojan and Broenink, Jan F.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "179--202", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "SystemCSP is a graphical modeling language based on both CSP and concepts of component-based software development. The component framework of SystemCSP enables specification of both interaction scenarios and relative execution ordering among components. Specification and implementation of interaction among participating components is formalized via the notion of interaction contract. The used approach enables incremental design of execution diagrams by adding restrictions in different interaction diagrams throughout the process of system design. In this way all different diagrams are related into a single formally verifiable system. The concept of reusable formally verifiable interaction contracts is illustrated by designing set of design patterns for typical fault tolerance interaction scenarios." } @InProceedings{Happe06, title = "{TCP} {I}nput {T}hreading in {H}igh {P}erformance {D}istributed {S}ystems", author= "Happe, Hans Henrik", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "203--213", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "TCP is the only widely supported protocol for reliable communication. Therefore, TCP is the obvious choice when developing distributed systems that need to work on a wide range of platforms. Also, for this to work a developer has to use the standard TCP interface provided by a given operating system. This work explores various ways to use TCP in high performance distributed systems. More precisely, different ways to use the standard Unix TCP API efficiently are explored, but the findings apply to other operating systems as well. The main focus is how various threading models affect TCP input in a process that has to handle both computation and I/O. The threading models have been evaluated in a cluster of Linux workstations and the results show that a model with one dedicated I/O thread generally is good. It is at most 10\% slower than the best model in all tests, while the other models are between 30 to 194\% slower in specific tests." } @InProceedings{Dimmich06, title = "{A} {C}ell {T}ransterpreter", author= "Dimmich, Damian J. and Jacobsen, Christian L. and Jadud, Matthew C.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "215--224", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "The Cell Broadband Engine is a hybrid processor which consists of a PowerPC core and eight vector co-processors on a single die. Its unique design poses a number of language design and implementation challenges. To begin exploring these challenges, we have ported the Transterpreter to the Cell Broadband Engine. The Transterpreter is a small, portable runtime for concurrent languages and can be used as a platform for experimenting with language concepts. This paper describes a preliminary attempt at porting the Transterpreter runtime to the Cell Broadband Engine and explores ways to program it using a concurrent language." } @InProceedings{Simpson06, title = "{M}obile {R}obot {C}ontrol: {T}he {S}ubsumption {A}rchitecture and occam-pi", author= "Simpson, Jonathan and Jacobsen, Christian L. and Jadud, Matthew C.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "225--236", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "Brooks' subsumption architecture is a design paradigm for mobile robot control that emphasises re-use of modules, decentralisation and concurrent, communicating processes. Through the use of occam-pi the subsumption architecture can be put to use on general purpose modern robotics hardware, providing a clean and robust development approach for the creation of robot control systems." } @InProceedings{Brown06a, title = "{R}ain: {A} {N}ew {C}oncurrent {P}rocess-{O}riented {P}rogramming {L}anguage", author= "Brown, Neil C.C.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "237--251", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "This paper details the design of a new concurrent process-oriented programming language, Rain. The language borrows heavily from occam-p and C++ to create a new language based on process-oriented programming, marrying channel-based communication, a clear division between statement and expression, and elements of functional programming. An expressive yet simple type system, coupled with templates, underpins the language. Modern features such as Unicode support and 64-bit integers are included from the outset, and new ideas involving permissions and coding standards are also proposed. The language targets a new virtual machine, which is detailed in a companion paper along with benchmarks of its performance." } @InProceedings{Brown06b, title = "{R}ain {VM}: {P}ortable {C}oncurrency through {M}anaging {C}ode", author= "Brown, Neil C.C.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "253--267", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "A long-running recent trend in computer programming is the growth in popularity of virtual machines. However, few have included good support for concurrency - a natural mechanism in the Rain programming language. This paper details the design and implementation of a secure virtual machine with support for concurrency, which enables portability of concurrent programs. Possible implementation ideas of many-to-many threading models for the virtual machine kernel are discussed, and initial benchmarks are presented. The results show that while the virtual machine is slow for standard computation, it is much quicker at running communication-heavy concurrent code - within an order of magnitude of the same native code." } @InProceedings{Jacobsen06, title = "{N}ative {C}ode {G}eneration using the {T}ransterpreter.", author= "Jacobsen, Christian L. and Dimmich, Damian J. and Jadud, Matthew C.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "269--280", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "We are interested in languages that provide powerful abstractions for concurrency and parallelism that execute everywhere, efficiently. Currently, the existing runtime environments for the occam-pi programming language provide either one of these features (portability) or some semblance of the other (performance). We believe that both can be achieved through the careful generation of C from occam-pi, and demonstrate that this is possible using the Transterpreter, a portable interpreter for occam-pi, as our starting point." } @InProceedings{BurginSmith06, title = "{C}ompositions of {C}oncurrent {P}rocesses", author= "Burgin, Mark and Smith, Marc L.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "281--296", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "Using the extended model for view-centric reasoning, EVCR, we focus on the many possibilities for concurrent processes to be composed. EVCR is an extension of VCR, both models of true concurrency; VCR is an extension of CSP, which is based on an interleaved semantics for modeling concurrency. VCR, like CSP, utilizes traces of instantaneous events, though VCR permits recording parallel events to preserve the perception of simultaneity by the observer(s). But observed simultaneity is a contentious issue, especially for events that are supposed to be instantaneous. EVCR addresses this issue in two ways. First, events are no longer instantaneous; they occur for some duration of time. Second, parallel events need not be an all-or-nothing proposition; it is possible for events to partially overlap in time. Thus, EVCR provides a more realistic and appropriate level of abstraction for reasoning about concurrent processes. With EVCR, we begin to move from observation to the specification of concurrency, and the compositions of concurrent processes. As one example of specification, we introduce a description of I/O-PAR composition that leads to simplified reasoning about composite I/O-PAR processes." } @InProceedings{Hilderink06, title = "{S}oftware {S}pecification {R}efinement and {V}erification {M}ethod with {I}-{M}athic {S}tudio.", author= "Hilderink, Gerald H.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "297--310", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "A software design usually manifests a composition of software specifications. It consists of hierarchies of black box and white box specifications which are subject to refinement verification. Refinement verification is a model-checking process that proves the correctness of software specifications using formal methods. Although this is a powerful tool for developing reliable and robust software, the applied mathematics causes a serious gap between academics and software engineers. I-Mathic comprehends a software specification refinement and verification method and a supporting toolset, which aims at eliminating the gap through hiding the applied mathematics by practical modelling concepts. The model-checker FDR is used for refinement verification and detecting deadlocks and livelocks in software specifications. We have improved the method by incorporating CSP programming concepts into the specification language. These concepts make the method suitable for a broader class of safety-critical concurrent systems. The improved I-Mathic is illustrated in this paper." } @InProceedings{Ritson06, title = "{V}ideo {P}rocessing in occam-pi", author= "Ritson, Carl G. and Sampson, Adam T. and Barnes, Frederick R. M.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "311--329", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "The occam-pi language provides many novel features for concurrent software development. This paper describes a video processing framework that explores the use of these features for multimedia applications. Processes are used to encapsulate operations on video and audio streams; mobile data types are used to transfer data between them efficiently, and mobile channels allow the process network to be dynamically reconfigured at runtime. We present demonstration applications including an interactive video player. Preliminary benchmarks show that the framework has comparable overhead to multimedia systems programmed using traditional methods." } @InProceedings{Teig06, title = "{N}o {B}locking on {Y}esterday's {E}mbedded {CSP} {I}mplementation (the {R}ubber {B}and of {G}etting it {R}ight and {S}imple)", author= "Teig, Øyvind", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "331--338", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "This article is a follow-up after the paper \textquotedblFrom message queue to ready queue\textquotedbl, presented at the ERCIM Workshop last year. A (mostly) synchronous layer had been implemented on top of an existing asynchronous run-time system. After that workshop, we discovered that the initial implementation contained two errors: both concerning malignant process rescheduling associated with timers and 'reuse' of the input side of a channel. Also, the set of process/dataflow patterns was not sufficient. To keep complexity low, we have made two new patterns to reflect better the semantic needs inherent in the application. Our assumption of correctness is also, this time, based both on heuristics and 'white-board reasoning'. However, both the previous and this paper have been produced before any first shipment of the product, and well within full-scale testing. Our solutions and way of attacking the problems have been in an industrial tradition." } @InProceedings{McEwan06, title = "{A} {C}ircus {D}evelopment and {V}erification of an {I}nternet {P}acket {F}ilter.", author= "McEwan, Alistair A.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "339--362", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "In this paper, we present the results of a significant and large case study in Circus. Development is top-down - from a sequential abstract specification about which safety properties can be verified, to a highly concurrent implementation on a Field Programmable Gate Array. Development steps involve applying laws of Circus allowing for the refinement of specifications; confidence in the correctness of the development is achieved through the applicability of the laws applied; proof obligations are discharged using the model-checker for CSP, FDR, and the theorem prover for Z, Z/Eves. An interesting feature of this case study is that the design of the implementation is guided by domain knowledge of the application - the application of this domain knowledge is supported by, rather than constrained by the calculus. The design is not what would have been expected had the calculus been applied without this domain knowledge. Verification highlights a curious error made in early versions of the implementation that were not detected by testing." } @InProceedings{Pedersen06, title = "{C}lassification of {P}rogramming {E}rrors in {P}arallel {M}essage {P}assing {S}ystems", author= "Pedersen, Jan Bækgaard", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "363--376", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "In this paper we investigate two major topics; firstly, through a survey given to graduate students in a parallel message passing programming class, we categorize the errors they made (and the ways they fixed the bugs) into a number of categories. Secondly, we analyze these answers and provide some insight into how software could be built to aid the development, deployment, and debugging of parallel message passing systems. We draw parallels to similar studies done for sequential programming, and finally show how the idea of multilevel debugging relates to the results from the survey." } @InProceedings{Barnes06, title = "{C}ompiling {CSP}", author= "Barnes, Frederick R. M.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "377--388", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", abstract= "CSP, Hoare's Communicating Sequential Processes, is a formal language for specifying, implementing and reasoning about concurrent processes and their interactions. Existing software tools that deal with CSP directly are largely concerned with assisting formal proofs. This paper presents an alternative use for CSP, namely the compilation of CSP systems to executable code. Themain motivation for this work is in providing a means to experimentwith relatively large CSP systems, possibly consisting millions of concurrent processes - something that is hard to achieve with the tools currently available." } @InProceedings{Welch06, title = "{A} {F}ast {R}esolution of {C}hoice between {M}ultiway {S}ynchronisations", author= "Welch, Peter H.", editor= "Welch, Peter H. and Kerridge, Jon and Barnes, Frederick R. M.", pages = "389--389", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2006", isbn= "978-1-58603-671-3", year= "2006", month= "sep", } @InProceedings{Hoare07, title = "{F}ine-grain {C}oncurrency", author= "Hoare, Tony", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "1--20", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "I have been interested in concurrent programming since about 1963, when its associated problems contributed to the failure of the largest software project that I have managed. When I moved to an academic career in 1968, I hoped that I could find a solution to the problems by my research. Quite quickly I decided to concentrate on coarse-grained concurrency, which does not allow concurrent processes to share main memory. The only interaction between processes is confined to explicit input and output commands. This simplification led eventually to the exploration of the theory of Communicating Sequential Processes. Since joining Microsoft Research in 1999, I have plucked up courage at last to look at fine-grain concurrency, involving threads which interleave their access to main memory at the fine granularity of single instruction execution. By combining the merits of a number of different theories of concurrency, one can paint a relatively simple picture of a theory for the correct design of concurrent systems. Indeed, pictures are a great help in conveying the basic understanding. This paper presents some on-going directions of research that I have been pursuing with colleagues in Cambridge \&\#8211; both at Microsoft Research and in the University Computing Laboratory." } @InProceedings{May07, title = "{C}ommunicating {P}rocess {A}rchitecture for {M}ulticores", author= "May, David", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "21--32", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "Communicating process architecture can be used to build efficient multicore chips scaling to hundreds of processors. Concurrent processing, communications and input-output are supported directly by the instruction set of the cores and by the protocol used in the on-chip interconnect. Concurrent programs are compiled directly to the chip exploiting novel compiler optimisations. The architecture supports a variety of programming techniques, ranging from statically configured process networks to dynamic reconfiguration and mobile processes." } @InProceedings{BrookePaige07, title = "{L}azy {E}xploration and {C}hecking of {CSP} {M}odels with {CSP}sim", author= "Brooke, Philip J and Paige, Richard F.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "33--50", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "We have recently constructed a model, and carried out an analysis, of a concurrent extension to an object-oriented language at a level of abstraction above threads. The model was constructed in CSP. We subsequently found that existing CSP tools were unsuitable for reasoning about and analysing this model, so it became necessary to create a new tool to handle CSP models: CSPsim. We describe this tool, its capabilities and algorithms, and compare it with the related tools, FDR2 and ProBE. We illustrate CSPsim's usage with examples from the model. The tool's on-the-fly construction of successor states is important for exhaustive and non-exhaustive state exploration. Thus we found CSPsim to be particularly useful for parallel compositions of components with infinite states that reduce to finite-state systems." } @InProceedings{Huntbach07, title = "{T}he {C}ore {L}anguage of {A}ldwych", author= "Huntbach, Matthew", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "51--66", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "Aldwych is a general purpose programming language which we have developed in order to provide a mechanism for practical programming which can be thought of in an inherently concurrent way. We have described Aldwych elsewhere in terms of a translation to a concurrent logic language. However, it would be more accurate to describe it as translating to a simple operational language which, while able to be represented in a logic-programming like syntax, has lost much of the baggage associated with \&\#8220;logic programming\&\#8221;. This language is only a little more complex than foundational calculi such as the pi-calculus. Its key feature is that all variables are moded with a single producer, and some are linear allowing a reversal of polarity and hence interactive communication." } @InProceedings{YangPoppleton07, title = "{JCSP}ro{B}: {I}mplementing {I}ntegrated {F}ormal {S}pecifications in {C}oncurrent {J}ava", author= "Yang, Letu and Poppleton, Michael R.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "67--88", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "The ProB model checker provides tool support for an integrated formal specification approach, combining the classical state-based B language with the event based process algebra CSP. In this paper, we present a developing strategy for implementing such a combined ProB specification as a concurrent Java program. A Java implementation of the combined B and CSP model has been developed using a similar approach to JCSP. A set of translation rules relates the formal model to its Java implementation, and we also provide a translation tool JCSProB to automatically generate a Java program from a ProB specification. To demonstrate and exercise the tool, several B/CSP models, varying both in syntactic structure and behavioural/concurrency properties, are translated by the tool. The models manifest the presence and absence of various safety, deadlock, and bounded fairness properties; the generated Java code is shown to faithfully reproduce them. Run-time safety and bounded fairness checking is also demonstrated. The Java programs are discussed to demonstrate our implementation of the abstract B/CSP concurrencymodel in Java. In conclusion we consider the effectiveness and generality of the implementation strategy." } @InProceedings{Fernandes07, title = "{C}omponents with {S}ymbolic {T}ransition {S}ystems: a {J}ava {I}mplementation of {R}endezvous", author= "Fernandes, Fabricio and Passama, Robin and Royer, Jean-Claude", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "89--108", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "Component-based software engineering is becoming an important approach for system development. A crucial issue is to fill the gap between high-level models, needed for design and verification, and implementation. This paper introduces first a component model with explicit protocols based on symbolic transition systems. It then presents a Java implementation for it that relies on a rendezvous mechanism to synchronize events between component protocols. This paper shows how to get a correct implementation of a complex rendezvous in presence of full data types, guarded transitions and, possibly, guarded receipts." } @InProceedings{East07, title = "{C}oncurrent/{R}eactive {S}ystem {D}esign with {H}oneysuckle", author= "East, Ian R.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "109--118", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "Honeysuckle is a language in which to describe systems with prioritized service architecture (PSA), whereby processes communicate values and (mobile) objects deadlock-free under client-server protocol. A novel syntax for the description of service (rather than process) composition is presented and the relation to implementation discussed. In particular, the proper separation of design and implementation becomes possible, allowing independent abstraction and verification." } @InProceedings{OrlicBroenink07a, title = "{CSP} and {R}eal-{T}ime: {R}eality or {I}llusion?", author= "Orlic, Bojan and Broenink, Jan F.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "119--148", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "This paper deals with the applicability of CSP in general and SystemCSP, as a notation and design methodology based on CSP, in particular in the application area of real-time systems. The paper extends SystemCSP by introducing time-related operators as a way to specify time properties. Since SystemCSP aims to be used in practice of real-time systems development, achieving real-time in practice is also addressed. The mismatch between the classical scheduling theories and CSP paradigm is explored. Some practical ways to deal with this mismatch are presented." } @InProceedings{Kerridge07, title = "{T}esting and {S}ampling {P}arallel {S}ystems", author= "Kerridge, Jon", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "149--162", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "The testing of systems using tools such as JUnit is well known to the sequential programming community. It is perhaps less well known to the parallel computing community because it relies on systems terminating so that system outputs can be compared with expected outputs. A highly parallel architecture is described that allows the JUnit testing of non-terminating MIMD process based parallel systems. The architecture is then extended to permit the sampling of a continuously running system. It is shown that this can be achieved using a small number of additional components that can be easily modified to suit a particular sampling situation. The system architectures are presented using a Groovy implementation of the JCSP and JUnit packages." } @InProceedings{Chalmers07, title = "{M}obility in {JCSP}: {N}ew {M}obile {C}hannel and {M}obile {P}rocess {M}odels", author= "Chalmers, Kevin and Kerridge, Jon and Romdhani, Imed", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "163--182", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "The original package developed for network mobility in JCSP, although useful, revealed some limitations in the underlying models permitting code mobility and channel migration. In this paper, we discuss these limitations, as well as describe the new models developed to overcome them. The models are based on two different approaches to mobility in other fields, mobile agents and Mobile IP, providing strong underlying constructs to build upon, permitting process and channel mobility in networked JCSP systems in a manner that is transparent to the user." } @InProceedings{Brown07, title = "{C}++{CSP}2: {A} {M}any-to-{M}any {T}hreading", author= "Brown, Neil C.C.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "183--206", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "The advent of mass-market multicore processors provides exciting new opportunities for parallelism on the desktop. The original C++CSP \&\#8211; a library providing concurrency in C++ \&\#8211; used only user-threads, which would have prevented it taking advantage of this parallelism. This paper details the development of C++CSP2, which has been built around a many-to-many threading model that mixes user-threads and kernel-threads, providing maximum flexibility in taking advantage of multicore and multi-processor machines. New and existing algorithms are described for dealing with the run-queue and implementing channels, barriers and mutexes. The latter two are benchmarked to motivate the choice of algorithm.Most of these algorithms are based on the use of atomic instructions, to gain maximal speed and efficiency. Other issues related to the new design and related to implementing concurrency in a language like C++ that has no direct support for it, are also described. The C++CSP2 library will be publicly released under the LGPL before CPA 2007." } @InProceedings{OrlicBroenink07b, title = "{D}esign {P}rinciples of the {S}ystem{CSP} {S}oftware {F}ramework", author= "Orlic, Bojan and Broenink, Jan F.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "207--228", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "SystemCSP is a graphical design specification language aimed to serve as a basis for the specification of formally verifiable component-based designs. This paper defines a mapping from SystemCSP designs to a software implementation. The possibility to reuse existing practical implementations was analyzed. Comparison is given for different types of execution engines usable in implementing concurrent systems. The main part of the text introduces and explains the design principles behind the software implementation. A synchronization mechanism is introduced that can handle CSP kind of events with event ends possibly scattered on different nodes and OS threads, and with any number of participating event ends, possibly guarded by alternative constructs." } @InProceedings{Bjorndalen07, title = "{P}y{CSP} - {C}ommunicating {S}equential {P}rocesses for {P}ython", author= "Bjørndalen, John Markus and Vinter, Brian and Anshus, Otto J.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "229--248", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "The Python programming language is effective for rapidly specifying programs and experimenting with them. It is increasingly being used in computational sciences, and in teaching computer science. CSP is effective for describing concurrency. It has become especially relevant with the emergence of commodity multi-core architectures. We are interested in exploring how a combination of Python and CSP can benefit both the computational sciences and the hands-on teaching of distributed and parallel computing in computer science. To make this possible, we have developed PyCSP, a CSP library for Python. PyCSP presently supports the core CSP abstractions. We introduce the PyCSP library, its implementation, a few performance benchmarks, and show example code using PyCSP. An early prototype of PyCSP has been used in this year\&\#8217;s Extreme Multiprogramming Class at the CS department, university of Copenhagen with promising results." } @InProceedings{RitsonWelch07, title = "{A} {P}rocess-{O}riented {A}rchitecture for {C}omplex {S}ystem {M}odelling", author= "Ritson, Carl G. and Welch, Peter H.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "249--266", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "A fine-grained massively-parallel process-oriented model of platelets (potentially artificial) within a blood vessel is presented. This is a CSP inspired design, expressed and implemented using the occam-pi language. It is part of the TUNA pilot study on nanite assemblers at the universities of York, Surrey and Kent. The aim for this model is to engineer emergent behaviour fromthe platelets, such that they respond to a wound in the blood vessel wall in a way similar to that found in the human body \&\#8211; i.e. the formation of clots to stem blood flow from the wound and facilitate healing. An architecture for a three dimensional model (relying strongly on the dynamic and mobile capabilities of occam-pi) is given, along with mechanisms for visualisation and interaction. The biological accuracy of the current model is very approximate. However, its process-oriented nature enables simple refinement (through the addition of processes modelling different stimulants/inhibitors of the clotting reaction, different platelet types and other participating organelles) to greater and greater realism. Even with the current system, simple experiments are possible and have scientific interest (e.g. the effect of platelet density on the success of the clotting mechanism in stemming blood flow: too high or too low and the process fails). General principles for the design of large and complex system models are drawn. The described case study runs to millions of processes engaged in ever-changing communication topologies. It is free from deadlock, livelock, race hazards and starvation by design, employing a small set of synchronisation patterns for which we have proven safety theorems." } @InProceedings{Razavi07, title = "{C}oncurrency {C}ontrol and {R}ecovery {M}anagement for {O}pen e-{B}usiness {T}ransactions", author= "Razavi, Amir R. and Moschoyiannis, Sotiris K. and Krause, Paul J.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "267--286", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "Concurrency control mechanisms such as turn-taking, locking, serialization, transactional locking mechanism, and operational transformation try to provide data consistency when concurrent activities are permitted in a reactive system. Locks are typically used in transactional models for assurance of data consistency and integrity in a concurrent environment. In addition, recovery management is used to preserve atomicity and durability in transaction models. Unfortunately, conventional lock mechanisms severely (and intentionally) limit concurrency in a transactional environment. Such lock mechanisms also limit recovery capabilities. Finally, existing recovery mechanisms themselves afford a considerable overhead to concurrency. This paper describes a new transaction model that supports release of early results inside and outside of a transaction, decreasing the severe limitations of conventional lock mechanisms, yet still warranties consistency and recoverability of released resources (results). This is achieved through use of a more flexible locking mechanism and by using two types of consistency graph. This provides an integrated solution for transaction management, recovery management and concurrency control. We argue that these are necessary features for management of long-term transactions within \"digital ecosystems\" of small to medium enterprises." } @InProceedings{JorgensenSuenson07, title = "trancell - an {E}xperimental {ETC} to {C}ell {BE} {T}ranslator", author= "Jørgensen, Ulrik Schou and Suenson, Espen", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "287--298", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "This paper describes trancell, a translator and associated runtime environment that allows programs written in the occam programming language to be run on the Cell BE microarchitecture. trancell cannot stand alone, but requires the front end from the KRoC/Linux compiler for generating Extended Transputer Code (ETC), which is then translated into native Cell SPU assembly code and linked with the trancell runtime. The paper describes the difficulties in implementing occam on the Cell, notably the runtime support required for implementing channel communications and true parallelism. Various benchmarks are examined to investigate the success of the approach." } @InProceedings{Sputh07, title = "{A} {V}ersatile {H}ardware-{S}oftware {P}latform for {I}n-{S}itu {M}onitoring {S}ystems", author= "Sputh, Bernhard H.C. and Faust, Oliver and Allen, Alastair R.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "299--312", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "In-Situ Monitoring systems measure and relay environmental parameters. From a system design perspective such devices represent one node in a network. This paper aims to extend the networking idea from the system level towards the design level. We describe In-Situ Monitoring systems as network of components. In the proposed design these components can be implemented in either hardware or software. Therefore, we need a versatile hardware-software platform to accommodate the particular requirements of a wide range of In-Situ Monitoring systems. The ideal testing ground for such a versatile hardware-software platform are FPGAs (Field Programmable Gate Arrays) with embedded CPUs. The CPUs execute software processes which represent software components. The FPGA part can be used to implement hardware components in the form of hardware processes and it can be used to interface to other hardware components external to the processor. In effect this setup constitutes a network of communicating sequential processes within a chip. This paper presents a design flow based on the theory of CSP. The idea behind this design flow is to have a CSP model which is turned into a network of hardware and software components. With the proposed design flow we have extended the networking aspect of sensor networks towards the system design level. This allows us to treat In-Situ Measurement systems as sub-networks within a sensor network. Furthermore, the CSP based approach provides abstract models of the functionality which can be tested. This yields more reliable system designs." } @InProceedings{Teig07, title = "{H}igh {C}ohesion and {L}ow {C}oupling: the {O}ffice {M}apping {F}actor", author= "Teig, Øyvind", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "313--322", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "This case observation describes how an embedded industrial software architecture was \&\#8220;mapped\&\#8221; onto an office layout. It describes a particular type of program architecture that does this mapping rather well. The more a programmer knows what to do, and so may withdraw to his office and do it, the higher the cohesion or completeness. The less s/he has to know about what is going on in other offices, the lower the coupling or disturbance. The project, which made us aware of this, was an embedded system built on the well-known process data-flow architecture. All interprocess communication that carried data was on synchronous, blocking channels. In this programming paradigm, it is possible for a process to refuse to \&\#8220;listen\&\#8221; on a channel while it is busy doing other things. We think that this in a way corresponds to closing the door to an office. When another process needs to communicate with such a process, it will simply be blocked (and descheduled). No queuing is done. The process, or the programmer, need not worry about holding up others. The net result seems to be good isolation of work and easier implementation. The isolation also enables faster pinpointing of where an error may be and, hence, in fixing the error in one place only. Even before the product was shipped, it was possible to keep the system with close to zero known errors. The paradigm described here has become a valuable tool in our toolbox. However, when this paradigm is used, one must also pay attention should complexity start to grow beyond expectations, as it may be a sign of too high cohesion or too little coupling." } @InProceedings{RitsonBarnes07, title = "{A} {P}rocess {O}riented {A}pproach to {USB} {D}river {D}evelopment", author= "Ritson, Carl G. and Barnes, Frederick R. M.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "323--338", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "Operating-systems are the core software component of many modern computer systems, ranging from small specialised embedded systems through to large distributed operating-systems. The demands placed upon these systems are increasingly complex, in particular the need to handle concurrency: to exploit increasingly parallel (multi-core) hardware; support increasing numbers of user and system processes; and to take advantage of increasingly distributed and decentralised systems. The languages and designs that existing operating-systems employ provide little support for concurrency, leading to unmanageable programming complexities and ultimately errors in the resulting systems; hard to detect, hard to remove, and almost impossible to prove correct.Implemented in occam-p, a CSP derived language that provides guarantees of freedom from race-hazards and aliasing error, the RMoX operating-system represents a novel approach to operating-systems, utilising concurrency at all levels to simplify design and implementation. This paper presents the USB (universal serial bus) device-driver infrastructure used in the RMoX system, demonstrating that a highly concurrent process-orientated approach to device-driver design and implementation is feasible, efficient and results in systems that are reliable, secure and scalable." } @InProceedings{Simpson07, title = "{A} {N}ative {T}ransterpreter for the {LEGO} {M}indstorms {RCX}", author= "Simpson, Jonathan and Jacobsen, Christian L. and Jadud, Matthew C.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "339--348", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "The LEGO Mindstorms RCX is a widely deployed educational robotics platform. This paper presents a concurrent operating environment for the Mindstorms RCX, implemented natively using occam-pi running on the Transterpreter virtual machine. A concurrent hardware abstraction layer aids both the developer of the operating system and facilitates the provision of process-oriented interfaces to the underlying hardware for students and hobbyists interested in small robotics platforms." } @InProceedings{Welch07, title = "{I}ntegrating and {E}xtending {JCSP}", author= "Welch, Peter H. and Brown, Neil C.C. and Moores, James and Chalmers, Kevin and Sputh, Bernhard H.C.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "349--369", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "This paper presents the extended and re-integrated JCSP library of CSP packages for Java. It integrates the differing advances made by Quickstone's JCSP Network Edition and the \"core\" library maintained at Kent. A more secure API for connecting networks and manipulating channels is provided, requiring significant internal re-structuring. This mirrors developments in the occam-pi language for mandated direction specifiers on channel-ends. For JCSP, promoting the concept of channel-ends to first-class entities has both semantic benefit (the same as for occampi) and increased safety. Major extensions include alting barriers (classes supporting external choice over multiple multi-way synchronisations), channel output guards (straightforward once we have the alting barriers), channel poisoning (for the safe and simple termination of networks or sub-networks) and extended rendezvous on channel communications (that simplify the capture of several useful synchronisation design patterns). Almost all CSP systems can now be directly captured with the new JCSP. The new library is available under the LGPL open source license." } @InProceedings{Singh07, title = "{H}ardware/{S}oftware {S}ynthesis and {V}erification {U}sing {E}sterel", author= "Singh, Satnam", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "371--378", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "The principal contribution of this paper is the demonstration of a promising technique for the synthesis of hardware and software from a single specification which is also amenable to formal analysis. We also demonstrate how the notion of synchronous observers may provide a way for engineers to express formal assertions about circuits which may be more accessible then the emerging grammar based approaches. We also report that the semantic basis for the system we evaluate pays dividends when formal static analysis is performed using model checking." } @InProceedings{McEwanSchneider07, title = "{M}odeling and {A}nalysis of the {AMBA} {B}us {U}sing {CSP} and {B}", author= "McEwan, Alistair A. and Schneider, Steve", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "379--398", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "In this paper, we present a formal model and analysis of the AMBA Advanced High-performance Bus (AHB) on-chip bus. The model is given in CSP\textbar\textbarB\&\#8212;an integration of the process algebra CSP and the state-based formalism B. We describe the theory behind the integration of CSP and B. We demonstrate how the model is developed from the informal ARM specification of the bus. Analysis is performed using the model-checker ProB. The contribution of this paper may be summarised as follows: presentation of work in progress towards a formal model of the AMBA AHB protocol such that it may be used for inclusion in, and analysis of, co-design systems incorporating the bus, an evaluation of the integration of CSP and B in the production of such a model, and a demonstration and evaluation of the ProB tool in performing this analysis. The work in this paper was carried out under the Future Technologies for Systems Design Project at the University of Surrey, sponsored by AWE." } @InProceedings{IfillSchneider07, title = "{A} {S}tep {T}owards {R}efining and {T}ranslating {B} {C}ontrol {A}nnotations to {H}andel-{C}", author= "Ifill, Wilson and Schneider, Steve", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "399--424", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "Research augmenting B machines presented at B2007 has demonstrated how fragments of control flow expressed as annotations can be added to associated machine operations, and shown to be consistent. This enables designers\&\#8217; understanding about local relationships between successive operations to be captured at the point the operations are written, and used later when the controller is developed. This paper introduces several new annotations and I/O into the framework to take advantage of hardware\&\#8217;s parallelism and to facilitate refinement and translation. To support the new annotations additional CSP control operations are added to the control language that now includes: recursion, prefixing, external choice, if-then-else, and sequencing. We informally sketch out a translation to Handel-C for prototyping." } @InProceedings{GrantEvans07, title = "{T}owards the {F}ormal {V}erification of a {J}ava {P}rocessor in {E}vent-{B}", author= "Grant, Neil and Evans, Neil", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "425--442", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "Formal verification is becoming more and more important in the production of high integrity microprocessors. The general purpose formal method called Event-B is the latest incarnation of the B Method: it is a proof-based approach with a formal notation and refinement technique for modelling and verifying systems. Refinement enables implementation-level features to be proven correct with respect to an abstract specification of the system. In this paper we demonstrate an initial attempt to model and verify Sandia National Laboratories' Score processor using Event-B. The processor is an (almost complete) implementation of a Java Virtual Machine in hardware. Thus, refinement-based verification of the Score processor begins with a formal specification of Java bytecode. Traditionally, B has been directed at the formal development of software systems. The use of B in hardware verification could provide a means of developing combined software/hardware systems, i.e. codesign." } @InProceedings{Wickstrom07, title = "{A}dvanced {S}ystem {S}imulation, {E}mulation and {T}est ({ASSET})", author= "Wickstrom, Gregory", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "443--464", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "Maturing embeddable real-time concepts into deployable high consequence systems faces numerous challenges. Although overcoming these challenges can be aided by commercially available processes, toolsets, and components, they often fall short of meeting the needs at hand. This paper will review the development of a framework being assembled to address many of the shortcomings while attempting to leverage commercial capabilities as appropriate." } @InProceedings{Duller07, title = "{D}evelopment of a {F}amily of {M}ulti-{C}ore {D}evices {U}sing {H}ierarchical {A}bstraction", author= "Duller, Andrew and Gray, Alan and Towner, Daniel and Iles, Jamie and Panesar, Gajinder and Robbins, Will", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "465--478", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "picoChip has produced a range of commercially deployed multi-core devices, all of which have the same on-chip deterministic communications structure (the picoBus) but vary widely in the number and type of cores which make up the devices. Systems are developed from processes connected using unidirectional signals. Individual processes are described using standard C or assembly language and are grouped together in a hierarchical description of the overall system. This paper discusses how families of chips may be developed by \"hardening\" structures in the hierarchy of an existing software system. Hardening is the process of replacing sets of communicating processes with an equivalent hardware accelerator, without changing the interface to that sub-system. Initial development is performed using a completely software implementation, which has advantages in terms of \"time to market\". When cost/power reductions are required, the proposed hardening process can be used to convert certain parts of a design into fixed hardware. These can then be included in the next generation of the device. The same tool chain is used for all devices and this means that verification of the hardware accelerator against the original system is simplified. The methodology discussed has been used to produce a family of devices which have been deployed in a wide range of wireless applications around the world." } @InProceedings{TodmanLuk07, title = "{D}omain {S}pecific {T}ransformations for {H}ardware {R}ay {T}racing", author= "Todman, Tim and Luk, Wayne", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "479--492", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "We present domain-specific transformations of the ray-tracing algorithm targeting reconfigurable hardware devices. Ray tracing is a computationally intensive algorithm used to produce photorealistic images of three-dimensional scenes.We show how the proposed transformations can adapt the basic ray-tracing algorithm to a breadth-first style, and give estimates for the hardware needed for realtime raytracing." } @InProceedings{VladimirovaWu07, title = "{A} {R}econfigurable {S}ystem-on-{C}hip {A}rchitecture for {P}ico-{S}atellite {M}issions", author= "Vladimirova, Tanya and Wu, Xiaofeng", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "493--502", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "Spacecraft operate in the unique space environment and are exposed to various types of radiation. Radiation effects can damage the on-board electronic circuits, particularly silicon devices. There is a pressing need for a remote upgrading capability which will allow electronic circuits on-board satellites to self-repair and evolve their functionality. One approach to addressing this need is to utilize the hardware reconfigurability of Field Programmable Gate Arrays. FPGAs nowadays are suitable for implementation of complex on-board system-on-chip designs. Leading-edge technology enables innovative solutions, permitting lighter picosatellite systems to be designed. This paper presents a reconfigurable system-onchip architecture for pico-satellite on-board data processing and control. The SoC adopts a modular bus-centric architecture using the AMBA bus and consists of soft intellectual property cores. In addition the SoC is capable of remote partial reconfiguration at run time." } @InProceedings{CassarAbela07, title = "{T}ransactional {CSP} {P}rocesses", author= "Cassar, Gail and Abela, Patrick", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "503--504", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "Long-lived transactions (LLTs) are transactions intended to be executed over an extended period of time ranging from seconds to days. Traditional transactions maintain data integrity through ACID properties which ensure that: a transaction will achieve an \"all-or-nothing\" effect (atomicity); system will be in a legal state before a transaction begins and after it ends (consistency); a transaction is treated independently from any other transactions (isolation); once a transaction commits, its effects are not lost (durability). However, it is impractical and undesirable to maintain full ACID properties throughout the whole duration of a long lived transaction. Transaction models for LLTs, relax the ACID properties by organizing a long-lived transaction as a series of activities. Each activity is a discrete transactional unit of work which releases transactional locks upon its execution. Activities are executed in sequence and can either commit, rollback or suspend execution of the transaction. The long-lived transaction commits if all its activities complete successfully. If any of the activities fail, the long lived transaction should roll back by undoing any work done by already completed activities. Unless an activity requires the result of a previously committed activity, there is no constraint which specifies that the various activities belonging to a long lived transaction execute sequentially. Our proposed research focuses on combining long lived transactions and CSP such that independent activities execute in parallel thus achieving flexibility and better performance for long lived transactions. Very much as the occam CSP-based constructs, SEQ and PAR, allow processes to be executed sequentially or concurrently, the proposed SEQ\_LLT and PAR\_LLT constructs can be used to specify the sequential or concurrent execution of transactions. Two activities that are coordinated with the SEQ\_LLT construct are evaluated in such a way that the second activity is executed only after the first activity commits. This corresponds to the SEQ construct which, from a concurrency perspective, executes in such a way that the second process starts its execution after the first process is complete. Similarly, PAR\_LLT specifies that activities can start their execution, independently from whether any other activities have committed their transaction or not. We also use the same synchronization mechanisms provided by CSP to have concurrent activities communicate with one another. An activity which \"waits\" on a channel for communication with another concurrent activity is automatically suspended (and its transactional locks released) until it receives a message from another activity. A prototype implementation of the described constructs and some example applications have been implemented on SmartPay LLT (a platform loosely based on JSR95 developed by Ixaris Systems). This work has been part of an undergraduate dissertation at the University of Malta." } @InProceedings{BurginSmith07, title = "{A}lgebras of {A}ctions in {C}oncurrent {P}rocesses", author= "Burgin, Mark and Smith, Marc L.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "505--506", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "We introduce a high-level metamodel, EAP (event-action-process), for reasoning about concurrent processes. EAP shares with CSP notions of observable events and processes, but as its name suggests, EAP is also concerned with actions. Actions represent an intermediate level of event composition that provide the basis for a hierarchical structure that builds up from individual, observable events, to processes that may themselves be units of composition. EAP\&\#8217;s composition hierarchy corresponds to the reality that intermediate units of composition exist, and that these intermediate units don\&\#8217;t always fall neatly within process boundaries. One prominent example of an intermediate unit of composition, or action, is threads. Threads of execution are capable of crossing process boundaries, and one popular programming paradigm, object-oriented programming, encourages this approach to concurrent program design. While we may advocate for more disciplined, process-oriented design, the demand for better models for reasoning about threads remains. On a more theoretical level, traces of a computation are also actions. Traces are event structures, composed by the CSP observer, according to a set of rules for recording the history of a computation. In one of the author\&\#8217;s model for viewcentric reasoning (VCR), the CSP observer is permitted to record simultaneous events without interleaving; and in previous joint work by the authors, the extended VCR (EVCR) model permits the CSP observer to record events with duration, so that events may overlap entirely, partially, or not at all. Sequential composition may be viewed as a special case of parallel composition\&\#8212;one of many forms of composition we wish to be better able to reason about. Since such diverse types of composition exist, at the event, action, and process levels; and because such problematic actions as threads exist in real systems, we must find more appropriate models to reason about such systems. To this end, we are developing algebras at different levels of compositionality to address these goals. In particular, we are interested in a corresponding hierarchy of algebras, at the event, action, and process levels. The present focus of our efforts is at the action level, since these are the least well understood. This talk presents fundamental notions of actions and examples of actions in the context of real systems. A diversity of possible compositions at the action level will be revealed and discussed, as well as our progress on the action algebra itself." } @InProceedings{Dimmich07, title = "{U}sing occam-pi {P}rimitives with the {C}ell {B}roadband {E}ngine", author= "Dimmich, Damian J.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "507--508", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "The Cell Broadband Engine has a unique non-heterogeneous archi- tecture, consisting of an on-chip network of one general purpose PowerPC pro- cessor (the PPU), and eight dedicated vector processing units (the SPUs). These processors are interconnected by a high speed ring bus, enabling the use of different logical network topologies. When programming the Cell Broadband Engine using languages such as C, a developer is faced with a number of chal- lenges. For instance, parallel execution and synchronisation between proces- sors, as well as concurrency on individual processors, must be explicitly, and carefully, managed. It is our belief that languages explicitly supporting concur- rency are able to offer much better abstractions for programming architectures such as the Cell Broadband Engine. Support for running occam- programs on the Cell Broadband Engine has existed in the Transterpreter for some time. This support has however not featured efficient inter-processor communication and barrier synchronisation, or automatic deadlock detection. We discuss some of the changes required to the occam- scheduler to support these features on the Cell Broadband Engine. The underlying on-chip communication and synchronisation mechanisms are explored in the development of these new scheduling algorithms. Benchmarks of the communications performance are provided, as well as a discussion of how to use the occam- language to distribute a program onto a Cell Broadband Engine\&\#8217;s processors. The Transterpreter runtime, which already has support for the Cell Broadband Engine, is used as the platform for these experiments. The Transterpreter can be found at www.transterpreter.org." } @InProceedings{Ritson07, title = "{S}hared-{M}emory {M}ulti-{P}rocessor {S}cheduling {A}lgorithms for {CCSP}", author= "Ritson, Carl G.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "509--510", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "CCSP is a monolithic C library which acts as the run-time kernel for occam- programs compiled with the Kent Retargetable occam Compiler (KRoC). Over the past decade, it has grown to encompass many new and powerful features to support the occam-pi language as that has evolved \&\#8211; and continues to evolve \&\#8211; from classical occam. However, despite this wealth of development, the general methodology by which processes are scheduled and executed has changed little from its transputer inspired origins. This talk looks at applying previous research and new ideas to the CCSP scheduler in an effort to exploit fully the potential of new mass-market multicore processor systems. The key objective is to introduce support for shared-memory multicore systems, whilst maintaining the low scheduling overheads that occam-pi users have come to expect. Fundamental to this objective are wait-free data-structures, per-processor run-queues, and a strong will to consolidate and simplify the existing code base." } @InProceedings{Sampson07, title = "{C}ompiling occam to {C} with {T}ock", author= "Sampson, Adam T.", editor= "McEwan, Alistair A. and Schneider, Steve and Ifill, Wilson and Welch, Peter H.", pages = "511--512", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2007", isbn= "978-1-58603-767-3", year= "2007", month= "jul", abstract= "Tock is a new occam compiler from the University of Kent, the latest result of many years\&\#8217; research into compiling concurrent languages. The existing occam compiler generates bytecode which is then translated into native instructions; this reduces opportunities for native code optimisation and limits portability. Tock translates occam into C using the CIF concurrent runtime interface, which can be compiled to efficient native code by any compiler supporting the C99 language standard. The resulting programs combine the safety and featherweight concurrency of occam with the performance and portability of C. Unlike previous attempts at translating occam to C, Tock\&\#8217;s output resembles handwritten CIF code; this eases debugging and takes better advantage of the C compiler\&\#8217;s optimisation facilities. Written in the purely functional language Haskell, Tock uses monadic combinator parsing and generic data structure traversal to provide a flexible environment for experimenting with new compiler and language features." } @InProceedings{Kerridge08d, title = "{S}anta's {G}roovy {H}elper", author= "Kerridge, Jon", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "This talk is prompted by the work on the Santa Claus problem presented elsewhere in this conference by Jason Hurt and Matt Pedersen. A compact version of their solution, using the Groovy macro-extensions to Java and JCSP, will be shown. Listeners should first have attended the presentation of the referenced paper." } @InProceedings{Dixon08, title = "{D}esigning with {S}oftware {D}efined {S}ilicon", author= "Dixon, A.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "This talk will introduce the XMOS XS1-G4 multi-core device and the associated development kit. The design tools and the XC language which can be used to write concurrent software, including direct access to physical input and output pins, will be presented. The concurrency support in XC has its roots in CSP and occam. The flexibility of the XS1 architecture will be shown by demonstrating a number of applications; these include interfacing, communications, motor control and media processing." } @InProceedings{Warren08, title = "{PICOMS}: {P}rioritised {I}nferred {C}hoice {O}ver {M}ultiway {S}ynchronisation", author= "Warren, Douglas N.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "The ability to make a choice over multiway synchronisations (COMS) has always been an integral part of CSP. However, it is something that has been conspicuous by its absence from many concurrent languages, limiting their expressive power. Implementation of a 2-phase commit protocol to resolve such choice can result in large overheads, caused by synchronisation offers having to be withdrawn. The recent Oracle (single-phase) algorithm resolves COMS efficiently, for shared memory concurrency at least. However, the Oracle only deals with \textlessi\textgreaterarbitrary\textless/i\textgreater choice and does not obviously extend to \textlessi\textgreaterprioritised\textless/i\textgreater choice (where we assume the priorities of the participating processes are not in conflict). PICOMS is a proposed efficient method for resolving COMS that honours non-conflicting priorities, with only a modest increase in complexity over the Oracle method." } @InProceedings{Barnes08, title = "{T}owards {G}uaranteeing {P}rocess {O}riented {P}rogram {B}ehaviour", author= "Barnes, Frederick R. M.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "Though we have language guarantees for avoiding race-hazards, and design-rules and formal-methods for guaranteeing freedom from deadlock, livelock and starvation, the work involved in checking the latter typically discourages their use. This talk briefly examines a new approach to guaranteeing process behaviour in occam-\π, that removes most, if not all, of the leg-work involved in checking programs manually \– a process that itself is error prone. Behaviour specifications are given in-program, that our experimental compiler checks against the actual implementation. Furthermore, the compiler is capable of generating the behavioural specification of any process, which it does using a CSP-like language, for use with separate compilation or for other formal verification." } @InProceedings{Roebbers08, title = "{H}andel-{C} {S}ource {L}evel {D}ebugging", author= "Roebbers, Herman", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "Until now, there has been no real source level debugger for Handel-C on the FPGA, such as we are used to having for standard CPUs. As the result of a student graduation project, we now have a possibility to do just that: setting/removing breakpoints, inspecting variables, etc. The talk will provide an impression of what has been achieved and looks a little into the future." } @InProceedings{Kerridge08c, title = "{L}ego {R}obots {U}sing {JCSP}", author= "Kerridge, Jon", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "This talk will demonstrate Lego Mindstorms (TM) robots programmed using leJOS, JCSP and Java. It previews the presentation of \textlessq\textgreaterJCSPre: the Robot Edition To Control LEGO NXT Robots\textless/q\textgreater later in the conference." } @InProceedings{Abramsky08, title = "{T}ypes, {O}rthogonality and {G}enericity: {S}ome {T}ools for {C}ommunicating {P}rocess {A}rchitectures", author= "Abramsky, Samson", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "1--13", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "We shall develop a simple and natural formalization of the idea of \textlessi\textgreaterclient-server\textless/i\textgreater architectures, and, based on this, define a notion of \textlessi\textgreaterorthogonality\textless/i\textgreater between clients and servers, which embodies strong correctness properties, and exposes the rich logical structure inherent in such systems. Then we generalize from pure clients and servers to \textlessi\textgreatercomponents\textless/i\textgreater, which provide some services to the environment, and require others from it. We identify the key notion of \textlessi\textgreatercomposition\textless/i\textgreater of such components, in which some of the services required by one component are supplied by another. This allows complex systems to be built from ultimately simple components. We show that this has the logical form of the \textlessi\textgreaterCut rule\textless/i\textgreater, a fundamental principle of logic, and that it can be enriched with a suitable notion of \textlessi\textgreaterbehavioural types\textless/i\textgreater based on orthogonality, in such a way that correctness properties are preserved by composition. We also develop the basic ideas of how logical constructions can be used to develop \textlessi\textgreaterstructured interfaces\textless/i\textgreater for systems, with operations corresponding to logical rules. Finally, we show how the setting can be enhanced, and made more robust and expressive, by using \textlessi\textgreaternames\textless/i\textgreater (as in the \π-calculus) to allow clients to bind dynamically to generic instances of services." } @InProceedings{OHalloran08, title = "{H}ow to {S}oar with {CSP}", author= "O'Halloran, Colin", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "15--15", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "In this talk, I shall discuss work on the necessary technology required for flight clearance of Autonomous Aircraft employing Agents by reducing the certification problem to small verifiable steps that can be carried out by a machine. The certification of such Agents falls into two parts: the validation of the safety of the Agent; and the verification of the implementation of the agent. The work focuses on the Soar agent language and the main results are: \textlessul\textgreater \textlessli\textgreatera language subset for Soar, designed for formal analysis; \textlessli\textgreatera formal model of the Soar subset written in CSP; \textlessli\textgreatera prototype translator \textquotedblSoar2Csp\textquotedbl from Soar to the CSP model; \textlessli\textgreatera framework for static analysis of Soar agents through model checking using FDR2; \textlessli\textgreaterthe identification of \textquotedblhealthiness conditions\textquotedbl required of any Soar Agent; \textlessli\textgreatera verifiable implementation of the CSP based Soar agents on an FPGA. \textless/ul\textgreater" } @InProceedings{WelchBarnes08, title = "{A} {CSP} {M}odel for {M}obile {C}hannels", author= "Welch, Peter H. and Barnes, Frederick R. M.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "17--33", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "CSP processes have a static view of their environment \— a \textlessi\textgreaterfixed\textless/i\textgreater set of events through which they synchronise with each other. In contrast, the \π-calculus is based on the dynamic construction of events (channels) and their distribution over pre-existing channels. In this way, process networks can be constructed dynamically with processes acquiring new connectivity. For the construction of complex systems, such as Internet trading and the modeling of living organisms, such capabilities have an obvious attraction. The occam-\π multiprocessing language is built upon classical occam, whose design and semantics are founded on CSP. To address the dynamics of complex systems, occam-\π extensions enable the movement of channels (and multiway synchronisation barriers) through channels, with constraints in line with previous occam discipline for safe and efficient programming. This paper reconciles these extensions by building a formal (operational) semantics for mobile channels entirely within CSP. These semantics provide two benefits: formal analysis of occam-\π systems using mobile channels and formal specification of implementation mechanisms for mobiles used by the occam-\π compiler and run-time kernel." } @InProceedings{Sufrin08, title = "{C}ommunicating {S}cala {O}bjects", author= "Sufrin, Bernard", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "35--54", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "In this paper we introduce the core features of CSO (Communicating Scala Objects) \— a notationally convenient embedding of the essence of occam in a modern, generically typed, object-oriented programming language that is compiled to Java Virtual Machine (JVM) code. Initially inspired by an early release of JCSP, CSO goes beyond JCSP expressively in some respects, including the provision of a unitary extended rendezvous notation and appropriate treatment of subtype variance in channels and ports. Similarities with recent versions of JCSP include the treatment of channel ends (we call them ports) as parameterized types. Ports and channels may be transmitted on channels (including inter-JVM channels), provided that an obvious design rule \— the ownership rule \— is obeyed. Significant differences with recent versions of JCSP include a treatment of network termination that is significantly simpler than the \textlessq\textgreaterpoisoning\textless/q\textgreater approach (perhaps at the cost of reduced programming convenience), and the provision of a family of type-parameterized channel implementations with performance that obviates the need for the special-purpose scalar-typed channel implementations provided by JCSP. On standard benchmarks such as Commstime, CSO communication performance is close to or better than that of JCSP and Scala's Actors library." } @InProceedings{KorsgaardHendseth08, title = "{C}ombining {EDF} {S}cheduling with occam using the {T}oc {P}rogramming {L}anguage", author= "Korsgaard, Martin and Hendseth, Sverre", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "55--66", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "A special feature of the occam programming language is that its concurrency support is at the very base of the language. However, its ability to specify scheduling requirements is insufficient for use in some real-time systems. Toc is an experimental programming language that builds on occam, keeping occam's concurrency mechanisms, while fundamentally changing its concept of time. In Toc, deadlines are specified directly in code, replacing occam's priority constructs as themethod for controlling scheduling. Processes are scheduled lazily, in that code is not executed without an associated deadline. The deadlines propagate through channel communications, which means that a task blocked by a channel that is not ready will transfer its deadline through the channel to the dependent task. This allows the deadlines of dependent tasks to be inferred, and also creates a scheduling effect similar to priority inheritance. A compiler and run-time system has been implemented to demonstrate these principles." } @InProceedings{Brown08a, title = "{C}ommunicating {H}askell {P}rocesses: {C}omposable {E}xplicit {C}oncurrency {U}sing {M}onads", author= "Brown, Neil C.C.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "67--83", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "Writing concurrent programs in languages that lack explicit support for concurrency can often be awkward and difficult. Haskell's monads provide a way to explicitly specify sequence and effects in a functional language, and monadic combinators allow composition of monadic actions, for example via parallelism and choice \— two core aspects of Communicating Sequential Processes (CSP).We show how the use of these combinators, and being able to express processes as first-class types (monadic actions) allow for easy and elegant programming of process-oriented concurrency in a new CSP library for Haskell: Communicating Haskell Processes." } @InProceedings{Sampson08, title = "{T}wo-{W}ay {P}rotocols for occam-\π", author= "Sampson, Adam T.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "85--97", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "In the occam-\π programming language, the client-server communication pattern is generally implemented using a pair of unidirectional channels. While each channel's protocol can be specified individually, no mechanism is yet provided to indicate the relationship between the two protocols; it is therefore not possible to statically check the safety of client-server communications. This paper proposes two-way protocols for individual channels, which would both define the structure of messages and allow the patterns of communication between processes to be specified.We show how conformance to two-way protocols can be statically checked by the occam-\π compiler using Honda's session types. These mechanisms would considerably simplify the implementation of complex, dynamic client-server systems." } @InProceedings{East08, title = "{P}rioritized {S}ervice {A}rchitecture: {R}efinement and {V}isual {D}esign", author= "East, Ian R.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "99--113", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "Concurrent/reactive systems can be designed free of deadlock using prioritized service architecture (PSA), subject to simple, statically verified, design rules. The Honeysuckle Design Language (HDL) enables such service-oriented design to be expressed purely in terms of communication, while affording a process-oriented implementation, using the Honeysuckle Programming Language (HPL). A number of enhancements to the service model for system abstraction are described, along with their utility. Finally, a new graphical counterpart to HDL (HVDL) is introduced that incorporates all these enhancements, and which facilitates interactive stepwise refinement." } @InProceedings{Schneider08, title = "{E}xperiments in {T}ranslating {CSP}\textbar\textbar{B} to {H}andel-{C}", author= "Schneider, Steve and Treharne, Helen and McEwan, Alistair A. and Ifill, Wilson", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "115--133", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "This paper considers the issues involved in translating specifications described in the CSP\textbar\textbarB formal method into Handel-C. There have previously been approaches to translating CSP descriptions to Handel-C, and the work presented in this paper is part of a programme of work to extend it to include the B component of a CSP\textbar\textbarB description. Handel-C is a suitable target language because of its capability of programming communication and state, and its compilation route to hardware. The paper presents two case studies that investigate aspects of the translation: a buffer case study, and an abstract arbiter case study. These investigations have exposed a number of issues relating to the translation of the B component, and have identified a range of options available, informing more recent work on the development of a style for CSP\textbar\textbarB specifications particularly appropriate to translation to Handel-C." } @InProceedings{Groothuis08, title = "{FPGA} {B}ased {C}ontrol of a {P}roduction {C}ell {S}ystem", author= "Groothuis, Marcel A. and Van Zuijlen, Jasper J.P. and Broenink, Jan F.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "135--148", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "Most motion control systems for mechatronic systems are implemented on digital computers. In this paper we present an FPGA based solution implemented on a low cost Xilinx Spartan III FPGA. A Production Cell setup with multiple parallel operating unit is chosen as test case. The embedded control software for this system is designed in gCSP using a reusable layered CSP based software structure. gCSP is extended with automatic Handel-C code generation for configuring the FPGA. Many motion control systems use floating point calculations for the loop controllers. Low cost general purpose FPGAs do not implement hardware-based floating point units. The loop controllers for this system are converted from floating point to integer-based calculations using a stepwise refinement approach. The result is a completely FPGAbased motion control system with better performance figures than previous CPUbased implementations." } @InProceedings{Athaide08, title = "{S}hared-{C}lock {M}ethodology for {T}ime-{T}riggered {M}ulti-{C}ores", author= "Athaide, Keith F. and Pont, Michael J. and Ayavoo, Devaraj", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "149--162", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "The co-operative design methodology has significant advantages when used in safety-related systems. Coupled with the time-triggered architecture, the methodology can result in robust and predictable systems. Nevertheless, use of a co-operative design methodology may not always be appropriate especially when the system possesses tight resource and cost constraints. Under relaxed constraints, it might be possible to maintain a co-operative design by introducing additional software processing cores to the same chip. The resultant multi-core microcontroller then requires suitable design methodologies to ensure that the advantages of time-triggered co-operative design are maintained as far as possible. This paper explores the application of a time-triggered distributed-systems protocol, called \textlessq\textgreatershared-clock\textless/q\textgreater, on an eight-core microcontroller. The cores are connected in a mesh topology with no hardware broadcast capabilities and three implementations of the shared-clock protocol are examined. The custom multi-core system and the network interfaces used for the study are also described. The network interfaces share higher level serialising logic amongst channels, resulting in low hardware overhead when increasing the number of channels." } @InProceedings{Faust08a, title = "{T}ransfer {R}equest {B}roker: {R}esolving {I}nput-{O}utput {C}hoice", author= "Faust, Oliver and Sputh, Bernhard H.C. and Allen, Alastair R.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "163--177", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "The refinement of a theoretical model which includes external choice over output and input of a channel transaction into an implementation model is a longstanding problem. In the theory of communicating sequential processes this type of external choice translates to resolving input and output guards. The problem arises from the fact that most implementation models incorporate only input guard resolution, known as alternation choice. In this paper we present the transaction request broker process which allows the designer to achieve external choice over channel ends by using only alternation. The resolution of input and output guards is refined into the resolution of input guards only. To support this statement we created two models. The first model requires resolving input and output guards to achieve the desired functionality. The second model incorporates the transaction request broker to achieve the same functionality by resolving only input guards.We use automated model checking to prove that both models are trace equivalent. The transfer request broker is a single entity which resolves the communication between multiple transmitter and receiver processes." } @InProceedings{Badban08, title = "{M}echanical {V}erification of a {T}wo-{W}ay {S}liding {W}indow {P}rotocol", author= "Badban, Bahareh and Fokkink, Wan and Van De Pol, Jaco", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "179--202", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "We prove the correctness of a two-way sliding window protocol with piggybacking, where the acknowledgments of the latest received data are attached to the next data transmitted back into the channel. The window size of both parties are considered to be finite, though they can be of different sizes. We show that this protocol is equivalent (branching bisimilar) to a \textlessi\textgreaterpair of FIFO\textless/i\textgreater queues of finite capacities. The protocol is first modeled and manually proved for its correctness in the process algebraic language of \μCRL. We use the theorem prover PVS to formalize and to mechanically prove the correctness. This implies both safety and liveness (under the assumption of fairness)." } @InProceedings{Sputh08, title = "{RRABP}: {P}oint-to-{P}oint {C}ommunication over {U}nreliable {C}omponents", author= "Sputh, Bernhard H.C. and Faust, Oliver and Allen, Alastair R.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "203--217", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "This paper establishes the security, stability and functionality of the resettable receiver alternating bit protocol. This protocol creates a reliable and blocking channel between sender and receiver over unreliable non-blocking communication channels. Furthermore, this protocol permits the sender to be replaced at any time, but not under all conditions without losing a message. The protocol is an extension to the alternating bit protocol with the ability for the sender to synchronise the receiver and restart the transmission. The resulting protocol uses as few messages as possible to fulfil its duty, which makes its implementation lightweight and suitable for embedded systems. An unexpected outcome of this work is the large number of different messages needed to reset the receiver reliably." } @InProceedings{Faust08b, title = "{IC}2{IC}: a {L}ightweight {S}erial {I}nterconnect {C}hannel for {M}ultiprocessor {N}etworks", author= "Faust, Oliver and Sputh, Bernhard H.C. and Allen, Alastair R.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "219--235", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "IC2IC links introduce blocking functionality to a low latency high performance data link between independent processors. The blocking functionality was achieved with the so-called alternating bit protocol. Furthermore, the protocol hardens the link against message loss and message duplication. This paper provides a detailed discussion of the link signals and the protocol layer. The practical part shows an example implementation of the IC2IC serial link. This example implementation establishes an IC2IC link between two configurable hardware devices. Each device incorporates a process network which implements the IC2IC transceiver functionality. This example implementation helped us to explore the practical properties of the IC2IC serial interconnect. First, we verified the blocking capability of the link and second we analysed different reset conditions, such as disconnect and bit-error." } @InProceedings{OpreanPedersen08, title = "{A}synchronous {A}ctive {O}bjects in {J}ava", author= "Oprean, George and Pedersen, Jan Bækgaard", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "237--254", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "Object Oriented languages have increased in popularity over the last two decades. The OO paradigm claims to model the way objects interact in the real world. All objects in the OO model are passive and all methods are executed synchronously in the thread of the caller. Active objects execute their methods in their own threads. The active object queues method invocations and executes them one at a time. Method invocations do not overlap, thus the object cannot be put into or seen to be in an inconsistent state. We propose an active object system implemented by extending the Java language with four new keywords: \textlesscode\textgreateractive\textless/code\textgreater, \textlesscode\textgreaterasync\textless/code\textgreater, \textlesscode\textgreateron\textless/code\textgreater and \textlesscode\textgreaterwaitfor\textless/code\textgreater. We have modified Sun's open-source compiler to accept the new keywords and to translate them to regular Java code during desugaring phase. We achieve this through the use of RMI, which as a side effect, allows us to utilize a cluster of work stations to perform distributed computing" } @InProceedings{Kerridge08a, title = "{JCSP}re: the {R}obot {E}dition {T}o {C}ontrol {LEGO} {NXT} {R}obots", author= "Kerridge, Jon and Panayotopoulos, Alex and Lismore, Patrick", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "255--270", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "JCSPre is a highly reduced version of the JCSP (Communicating Sequential Processes for Java) parallel programming environment. JCSPre has been implemented on a LEGO Mindstorms NXT brick using the LeJOS Java runtime environment. The LeJOS environment provides an abstraction for the NXT Robot in terms of Sensors, Sensor Ports and Motors, amongst others. In the implementation described these abstractions have been converted into the equivalent active component that is much easier to incorporate into a parallel robot controller. Their use in a simple line following robot is described, thereby demonstrating the ease with which robot controllers can be built using parallel programming principles. As a further demonstration we show how the line following robot controls a slave robot by means of Bluetooth communications." } @InProceedings{Chalmers08a, title = "{A} {C}ritique of {JCSP} {N}etworking", author= "Chalmers, Kevin and Kerridge, Jon and Romdhani, Imed", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "271--291", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "We present a critical investigation of the current implementation of JCSP Networking, examining in detail the structure and behavior of the current architecture. Information is presented detailing the current architecture and how it operates, and weaknesses in the implementation are raised, particularly when considering resource constrained devices. Experimental work is presented that illustrate memory and computational demand problems and an outline on how to overcome these weaknesses in a new implementation is described. The new implementation is designed to be lighter weight and thus provide a framework more suited for resource constrained devices which are a necessity in the field of ubiquitous computing." } @InProceedings{RitsonSimpson08, title = "{V}irtual {M}achine {B}ased {D}ebugging for occam-\π", author= "Ritson, Carl G. and Simpson, Jonathan", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "293--307", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "While we strive to create robust language constructs and design patterns which prevent the introduction of faults during software development, an inevitable element of human error still remains.We must therefore endeavor to ease and accelerate the process of diagnosing and fixing software faults, commonly known as debugging. Current support for debugging occam-\π programs is fairly limited. At best the developer is presented with a reference to the last known code line executed before their program abnormally terminated. This assumes the program does in fact terminate, and does not instead live-lock. In cases where this support is not sufficient, developers must instrument their own tracing support, \textlessq\textgreater\textlesscode\textgreaterprintf\textless/code\textgreater style\textless/q\textgreater. An exercise which typically enlightens one as to the true meaning of concurrency ... In this paper we explore previous work in the field of debugging occam programs and introduce a new method for run-time monitoring of occam-\π applications, based on the Transterpreter virtual machine interpreter. By adding a set of extensions to the Transterpreter, we give occam-\π processes the ability to interact with their execution environment. Use of a virtual machine allows us to expose program execution state which would otherwise require non-portable or specialised hardware support. Using a model which bears similarities to that applied when debugging embedded systems with a JTAG connection, we describe debugging occam-\π by mediating the execution of one execution process from another." } @InProceedings{BjorndalenSampson08, title = "{P}rocess-{O}riented {C}ollective {O}perations", author= "Bjørndalen, John Markus and Sampson, Adam T.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "309--328", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "Distributing process-oriented programs across a cluster of machines requires careful attention to the effects of network latency. The MPI standard, widely used for cluster computation, defines a number of collective operations: efficient, reusable algorithms for performing operations among a group of machines in the cluster. In this paper, we describe our techniques for implementing MPI communication patterns in process-oriented languages, and how we have used them to implement collective operations in PyCSP and occam-\π on top of an asynchronous messaging framework. We show how to make use of collective operations in distributed processoriented applications. We also show how the process-oriented model can be used to increase concurrency in existing collective operation algorithms." } @InProceedings{BrownSmith08, title = "{R}epresentation and {I}mplementation of {CSP} and {VCR} {T}races", author= "Brown, Neil C.C. and Smith, Marc L.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "329--345", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "Communicating Sequential Processes (CSP) was developed around a formal algebra of processes and a semantics based on traces (and failures and divergences). A trace is a record of the events engaged in by a process. Several programming languages use, or have libraries to use, CSP mechanisms to manage their concurrency. Most of these lack the facility to record the trace of a program. A standard trace is a flat list of events but structured trace models are possible that can provide more information such as the independent or concurrent engagement of the process in some of its events. One such trace model is View-Centric Reasoning (VCR), which offers an additional model of tracing, taking into account the multiple, possibly imperfect views of a concurrent computation. This paper also introduces \textlessq\textgreaterstructural\textless/q\textgreater traces, a new type of trace that reflects the nested parallelism in a CSP system. The paper describes the automated generation of these three trace types in the Communicating Haskell Processes (CHP) library, using techniques which could easily be applied in other libraries such as JCSP and C++CSP2. The ability to present such traces of a concurrent program assists in understanding the behaviour of real CHP programs and for debugging when the trace behaviours are wrong. These ideas and tools promote a deeper understanding of the association between practicalities of real systems software and the underlying CSP formalism." } @InProceedings{FriborgVinter08, title = "{CSPB}uilder - {CSP} based {S}cientific {W}orkflow {M}odeling", author= "Friborg, Rune Møllegard and Vinter, Brian", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "347--363", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "This paper introduces a framework for building CSP based applications, targeted for clusters and next generation CPU designs. CPUs are produced with several cores today and every next CPU generation will feature even more cores, resulting in a requirement for concurrency not previously demanded. The framework is CSP-presented as a scientific workflow model, specialized for scientific computing application. The purpose of the framework is to enable scientists to gain access to large parallel computation resources, which have been off limits because of the difficulty of concurrent programming using threads and locks." } @InProceedings{SimpsonJacobsen08, title = "{V}isual {P}rocess-{O}riented {P}rogramming for {R}obotics", author= "Simpson, Jonathan and Jacobsen, Christian L.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "365--380", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "When teaching concurrency, using a \textlessi\textgreaterprocess-oriented language\textless/i\textgreater, it is often introduced through a visual representation of programs in the form of \textlessi\textgreaterprocess network diagrams\textless/i\textgreater. These diagrams allow the design of and abstract reasoning about programs, consisting of concurrently executing communicating processes, without needing any syntactic knowledge of the eventual implementation language. Process network diagrams are usually drawn on paper or with general-purpose diagramming software, meaning the program must be implemented as syntactically correct program code before it can be run. This paper presents \textlessi\textgreaterPOPed\textless/i\textgreater, an introductory parallel programming tool leveraging process network diagrams as a visual language for the creation of process-oriented programs. Using only visual layout and connection of pre-created components, the user can explore process orientation without knowledge of the underlying programming language, enabling a \textlessq\textgreaterprocesses first\textless/q\textgreater approach to parallel programming. POPed has been targeted specifically at basic robotic control, to provide a context in which introductory parallel programming can be naturally motivated." } @InProceedings{HurtPedersen08, title = "{S}olving the {S}anta {C}laus {P}roblem: a {C}omparison of {V}arious {C}oncurrent {P}rogramming {T}echniques", author= "Hurt, Jason and Pedersen, Jan Bækgaard", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "381--396", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "The Santa Claus problem provides an excellent exercise in concurrent programming. It can be used to show the simplicity or complexity of solving problems using a particular set of concurrency mechanisms and offers a comparison of these mechanisms. Shared-memory constructs, message passing constructs, and process oriented constructs will be used in various programming languages to solve the Santa Claus Problem. Various concurrency mechanisms available will be examined and analyzed as to their respective strengths and weaknesses." } @InProceedings{Kerridge08b, title = "{M}obile {A}gents and {P}rocesses using {C}ommunicating {P}rocess {A}rchitectures", author= "Kerridge, Jon and Haschke, Jens-Oliver and Chalmers, Kevin", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "397--410", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "The mobile agent concept has been developed over a number of years and is widely accepted as one way of solving problems that require the achievement of a goal that cannot be serviced at a specific node in a network. The concept of a mobile process is less well developed because implicitly it requires a parallel environment within which to operate. In such a parallel environment a mobile agent can be seen as a specialization of a mobile process and both concepts can be incorporated into a single application environment, where both have well defined requirements, implementation and functionality. These concepts are explored using a simple application in which a node in a network of processors is required to undertake some processing of a piece of data for which it does not have the required process. It is known that the required process is available somewhere in the network. The means by which the required process is accessed and utilized is described. As a final demonstration of the capability we show how a mobile meeting organizer could be built that allows friends in a social network to create meetings using their mobile devices given that they each have access to the others' on-line diaries." } @InProceedings{TateBate08, title = "{YASS}: a {S}calable {S}ensornet {S}imulator for {L}arge {S}cale {E}xperimentation", author= "Tate, Jonathan and Bate, Iain", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "411--430", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "Sensornets have been proposed consisting of thousands or tens of thousands of nodes. Economic and logistical considerations imply predeployment evaluation must take place through simulation rather than field trials. However, most current simulators are inadequate for networks with more than a few hundred nodes. In this paper we demonstrate some properties of sensornet application and protocols that only emerge when considered at scale, and cannot be effectively addressed by representative small-scale simulation. We propose a novel multi-phase approach to radio propagation modelling which substantially reduces computational overhead without significant loss in accuracy." } @InProceedings{Kosek08, title = "{M}odelling a {M}ulti-{C}ore {M}edia {P}rocessor {U}sing {JCSP}", author= "Kosek, Anna and Kerridge, Jon and Syed, Aly", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "431--443", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "Manufacturers are creating multi-core processors to solve specialized problems. This kind of processor can process tasks faster by running them in parallel. This paper explores the usability of the Communicating Sequential Processes model to create a simulation of a multi-core processor aimed at media processing in hand-held mobile devices. Every core in such systems can have different capabilities and can generate different amounts of heat depending on the task being performed. Heat generated reduces the performance of the core. We have used mobile processes in JCSP to implement the allocation of tasks to cores based upon the work the core has done previously." } @InProceedings{Brown08b, title = "{H}ow to {M}ake a {P}rocess {I}nvisible", author= "Brown, Neil C.C.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "445--445", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "Sometimes it is useful to be able to invisibly splice a process into a channel, allowing it to observe (log or present to a GUI) communications on the channel without breaking the synchronous communication semantics. occam-\π's extended rendezvous when reading from a channel made this possible; the invisible process could keep the writer waiting until the real reader had accepted the forwarded communication. This breaks down when it is possible to have choice on outputs (also known as output guards). An extended rendezvous for writing to a channel fixes this aspect but in turn does not support choice on the input. It becomes impossible to keep your process invisible in all circumstances. This talk explains the problem, and proposes a radical new feature that would solve it." } @InProceedings{vanderSteen08, title = "{D}esigning {A}nimation {F}acilities for g{CSP}", author= "van der Steen, Hans T.J. and Groothuis, Marcel A. and Broenink, Jan F.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "447--447", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "To improve feedback on how concurrent CSP-based programs run, the graphical CSP design tool (gCSP) has been extended with animation facilities. The state of processes, constructs, and channel ends are indicated with colours both in the gCSP diagrams and in the composition tree (hierarchical tree showing the structure of the total program). Furthermore, the contents of the channels are also shown. In this Fringe session, we will present and demonstrate this prototype animation facility, being the result of the MSc project of Hans van der Steen, and ask for feedback." } @InProceedings{SampsonBrown08, title = "{T}ock: {O}ne {Y}ear {O}n", author= "Sampson, Adam T. and Brown, Neil C.C.", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "449--449", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "Tock is a compiler for concurrent programming languages under development at the University of Kent. It translates occam-\π and Rain into portable, high-performance C or C++. It is implemented in Haskell using the nanopass approach, and aims to make it easy to experiment with new language and compiler features. Since our initial presentation of Tock at CPA 2007, we have added new frontends and backends, implemented a parallel usage checker based on the Omega test, improved the effectiveness of Tock's test suite, developed more efficient tree traversals using generic programming \– and more besides! In this fringe session, we will describe our recent work on Tock, discuss our plans for the project, and show how it can be of use to other process-oriented programming researchers." } @InProceedings{Chalmers08b, title = "{I}ntroducing {JCSP} {N}etworking 2.0", author= "Chalmers, Kevin", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "451--451", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "The original implementation of JCSP Networking is based on the T9000 model of virtual channels across a communications mechanism, and can be considered sufficiently adequate for applications which are not resource constrained or liable to connection failure. However, work undertaken has revealed a number of limitations due to excessive resource usage, lack of sufficient error handling, reliance on Java serialization, and reliance on now deprecated features of JCSP. These problems reflect badly when considering JCSP Networking in a broader sense beyond the normal desktop. In this talk, a brief overview on how these problems have been overcome is presented. This will be followed by some tutorial examples on how to use JCSP Networking 2.0. This should be familiar to current JCSP Networking users, but new additions to the library should make it easier for novices to get started. The new underlying protocol is also presented, which should enable interoperability between various platforms beyond the Java desktop environment. The new version of JCSP Networking is currently available from the JCSP Subversion repository, under the Networking-2 branch. Details are available at \textlesstt\textgreaterhttp://www.cs.kent.ac.uk/projects/ofa/jcsp/\textless/tt\textgreater." } @InProceedings{Bonnici08, title = "{M}obile {P}rocesses in an {A}nt {S}imulation", author= "Bonnici, Eric", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "453--453", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "The term self-organisation, or emergent behaviour, may be used to describe behaviour structures that emerge at the global level of a system due to the interactions between lower level components. Components of the system have no knowledge about global state; each component has only private internal data and data that it can observe from its immediate locality (such as environmental factors and the presence of other components). Resulting global phenomena are, therefore, an emergent property of the system as a whole. An implication of this when creating artificial systems is that we should not attempt to program such kinds of complex behaviour explicitly into the system. It may also help if the programmer approaches the design from a radically different perspective than that found in traditional methods of software engineering. This talk outlines a process-oriented approach, using massive fine-grained concurrency, and explores the use of occam-\π's mobile processes in the simulation of a classical ant colony." } @InProceedings{WelchPedersen08, title = "{S}anta {C}laus - with {M}obile {R}eindeer and {E}lves", author= "Welch, Peter H. and Pedersen, Jan Bækgaard", editor= "Welch, Peter H. and Stepney, S. and Polack, F.A.C and Barnes, Frederick R. M. and McEwan, Alistair A. and Stiles, G. S. and Broenink, Jan F. and Sampson, Adam T.", pages = "455--455", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2008", isbn= "978-1-58603-907-3", year= "2008", month= "sep", abstract= "Mobile processes, along with mobile channels, enable process networks to be dynamic: they may change their size (number of processes, channels, barriers) and shape (connection topology) as they run much like living organisms. One of the benefits is that all connections do not have to be established statically, in advance of when they are needed and open to abuse. In classical occam, care had to be taken by processes not to use channels when they were not in the right state to use them. With occam-\π mobiles, we can arrange that processes simply do not have those channels until they get into the right state \– and not having such channels means that their misuse cannot even be expressed! Of course, it is a natural consequence of mobile system design that the arrivals of channels (or barriers or processes) are the very events triggering their exploitation. In our explorations so far with occam-\π, we have taken advantage of the mobility of data, channels and barriers and seen very good results. Very little work has been done with mobile processes: the ability to send and receive processes through channels, plug them into local networks, fire them up, stand them down and move them on again. This talk illustrates mobile process design through a solution to Trono's classical \textlessi\textgreaterSanta Claus Problem\textless/i\textgreater. The reindeer and elves are modeled as mobile processes that move through holiday resorts, stables, work, waiting rooms, Santa's Grotto and back again. All those destinations are also processes \– though static ones. As the reindeer and elves arrive at each stage, they plug in and do business. We will show the occam-\π mechanisms supporting mobile processes, confess to one weakness and consider remedies. The occam-\π solution did, of course, run correctly the first time it passed the stringent safety checks of the compiler and is available as open source (\textlesstt\textgreaterhttp://www.santaclausproblem.net\textless/tt\textgreater)." } @InProceedings{Roebbers09, title = "{CPA} {S}urvival {G}uide", author= "Roebbers, Herman", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "For those new to CPA, this may be helpful to get an overview of what the various acronyms used during the conference mean and how they are related. This talk should provide you with a good start of the conference." } @InProceedings{Broadfoot09, title = "{A}n {O}verview of {ASD} - {F}ormal {M}ethods in {D}aily {U}se", author= "Broadfoot, Guy", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "Analytical Software Design (ASD) is an example of how formal methods can be introduced into the industrial workplace and routinely used on a daily basis. In this talk, I will give a quick overview of the underlying concepts and techniques employed." } @InProceedings{Sampson09, title = "occam on the {A}rduino", author= "Sampson, Adam T. and Jadud, Matthew C. and Jacobsen, Christian L.", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "The Arduino is an open-source \textquotedblphysical computing\textquotedbl development system with a large, active user community. Arduino applications are usually developed in a subset of C++ with no concurrency facilities, which makes it difficult to build systems that must respond to a variety of external stimuli. We present an implementation of occam for the Arduino based on the Transterpreter portable runtime, adapted to make efficient use of the small Harvard-architecture microcontrollers typically used on devices like the Arduino. In addition, we describe the library of processes -- \textquotedblPlumbing\textquotedbl -- that we provide to ease the development of physical computing applications." } @InProceedings{OguzBroenink09, title = "{U}se of {F}ormal {M}odels in {M}odel-driven {D}esign of {E}mbedded software", author= "Oguz, Oguzcan and Broenink, Jan F.", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", } @InProceedings{Welch09a, title = "{C}oncurrency {F}irst (but we'd better get it right!)", author= "Welch, Peter H.", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "This talk considers how and when concurrency should be taught in an undergraduate curriculum. It is to provoke discussion, which may later (if there is interest) become a theme for the Panel Session at the end of the conference (Wednesday morning). My presentation will focus on what we are doing at Kent (where concurrency has been taught as a full module for the past 23 years). Our belief is that concurrency is fundamental to most aspects of computer science (regardless of the push arising from the onset of multicore processors). It can and should be taught at the beginning at the same time as and a necessary and natural complement to sequential programming. But the concurrency model being taught better be right ... and threads-and-locks won't hack it!" } @InProceedings{SampsonBrown09, title = "{C}locks", author= "Sampson, Adam T. and Brown, Neil C.C.", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "As part of the CoSMoS project, we have implemented a variety of complex systems simulations using occam-pi. occam-pi is unusual in that it provides built-in support for synchronisation against a real-time clock, but simulations generally need to run faster or slower than real time. We describe the idea of a \textquotedblclock\textquotedbl -- a new synchronisation primitive for process-oriented programming, similar to a barrier but extended with a sense of time. Clocks can be used to provide simulated time in a complex systems simulation, and can also be used to implement efficient phase synchronisation for controlling access to shared resources." } @InProceedings{Brown09b, title = "{T}races for {T}esting", author= "Brown, Neil C.C.", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "CHP, the Haskell concurrency library, has recently been augmented with new testing capabilities. When a test case fails, its recorded event traces are automatically printed out -- with support for CSP, VCR and Structural trace styles." } @InProceedings{Mir09, title = "{A} {S}tudy {I}nto the {M}odelling and {A}nalysis of {R}eal-{T}ime {FPGA} {B}ased {S}ystems", author= "Mir, Irfan", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "High-integrity systems are those where failure can cause loss of life, injury, environmental damage or financial loss. The reliability of these systems is very important, so we need verification techniques that ensure the reliability and understanding of these systems. The aim of this research is to develop techniques and a tool for verifying real-time constraints in high level languages for FPGA based high-integrity systems. Further a novel methodology using Timed CSP is to be proposed to ensure the temporal correctness of these systems. The outcome of this research is to design the constraint meta-language and implement a tool which automates the analysis and verification process. Further this research will investigate the implementation of Timed CSP in Handel-C, augmented with the constraint meta-language." } @InProceedings{Slipper09, title = "{S}ystems {M}odelling and {I}ntegration", author= "Slipper, Dan", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "As systems increase in complexity and become combinations of hardware, software and physical components, the methods of integrating these become difficult. In safety critical systems, reliability is a key factor so we want faults to be predictable or mitigated wherever possible. This research aims to discover techniques of applying formal methods for software to a full system incorporating hardware and physical components, expecting to result in improvements in the way interfaces are defined, such that updates and maintenance in the system will not affect its reliability or performance. Another aim alongside this is to review the processes followed in industry throughout the design and development cycle, to find methods of keeping focus on meeting the requirements along all stages of the process." } @InProceedings{Cole09, title = "{H}ardware/{S}oftware {C}o-{D}esign {L}anguage {D}evelopment, {A}n {E}ng{D} {I}ntroduction", author= "Cole, Alex", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "A short introduction to a new Engineering Doctorate and planned areas of study. This presentation covers a bit of basic background, an overview of the whole research topic and lists a few proposed projects, looking in some minor detail at one specifically." } @InProceedings{YalcinBroenink09, title = "{R}obust {R}obot {S}oftware using {P}rocess {O}rientation", author= "Yalcin, Cagri and Broenink, Jan F.", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", } @InProceedings{Goldsmith09, title = "{B}eyond {M}obility - {W}hat {N}ext {A}fter {CSP}/pi?", author= "Goldsmith, Michael", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "1--6", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "Process algebras like CSP and CCS inspired the original occam model of communication and process encapsulation. Later the pi-calculus and various treatments handling mobility in CSP added support for mobility, as realised in practical programming systems such as occam-pi, JCSP, CHP and Sufrin's CSO, which allow a rather abstract notion of motion of processes and channel ends between parents or owners. Milner's Space and Motion of Communicating Agents on the other hand describes the bigraph framework, which makes location more of a first-class citizen of the calculus and evolves through reaction rules which rewrite both place and link graphs of matching sections of a system state, allowing more dramatic dynamic reconfigurations of a system than simple process spawning or migration. I consider the tractability of the notation, and to what extent the additional flexibility reflects or elicits desirable programming paradigms." } @InProceedings{Torshizi09, title = "{T}he {SCOOP} {C}oncurrency {M}odel in {J}ava-like {L}anguages", author= "Torshizi, Faraz and Ostroff, Jonathan S. and Paige, Richard F. and Chechik, Marsha", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "7--27", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "SCOOP is a minimal extension to the sequential object-oriented programming model for concurrency. The extension consists of one keyword (separate) that avoids explicit thread declarations, synchronized blocks, explicit waits, and eliminates data races and atomicity violations by construction, through a set of compiler rules. SCOOP was originally described for the Eiffel programming language. This paper makes two contributions. Firstly, it presents a design pattern for SCOOP, which makes it feasible to transfer SCOOP's concepts to different object-oriented programming languages. Secondly, it demonstrates the generality of the SCOOP model by presenting an implementation of the SCOOP design pattern for Java. Additionally, we describe tools that support the SCOOP design pattern, and give a concrete example of its use in Java." } @InProceedings{VanderMeulenPecheur09, title = "{C}ombining {P}artial {O}rder {R}eduction with {B}ounded {M}odel {C}hecking", author= "Vander Meulen, José and Pecheur, Charles", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "29--48", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "Model checking is an efficient technique for verifying properties on reactive systems. Partial-order reduction (POR) and symbolic model checking are two common approaches to deal with the state space explosion problem in model checking. Traditionally, symbolic model checking uses BDDs which can suffer from space blow-up. More recently bounded model checking (BMC) using SAT-based procedures has been used as a very successful alternative to BDDs. However, this approach gives poor results when it is applied to models with a lot of asynchronism. This paper presents an algorithm which combines partial order reduction methods and bounded model checking techniques in an original way that allows efficient verification of temporal logic properties (LTL\_X) on models featuring asynchronous processes. The encoding to a SAT problem strongly reduces the complexity and non-determinism of each transition step, allowing efficient analysis even with longer execution traces. The starting-point of our work is the Two-Phase algorithm (Namalesu and Gopalakrishnan) which performs partial-order reduction on process-based models. At first, we adapt this algorithm to the bounded model checking method. Then, we describe our approach formally and demonstrate its validity. Finally, we present a prototypal implementation and report encouraging experimental results on a small example." } @InProceedings{Murakami09, title = "{O}n {C}ongruence {P}roperty of {S}cope {E}quivalence for {C}oncurrent {P}rograms with {H}igher-{O}rder {C}ommunication", author= "Murakami, Masaki", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "49--66", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "Representation of scopes of names is important for analysis and verification of concurrent systems. However, it is difficult to represent the scopes of channel names precisely with models based on process algebra. We introduced a model of concurrent systems with higher-order communication based on graph rewriting in our previous work. A bipartite directed acyclic graph represents a concurrent system that consists of a number of processes and messages in that model. The model can represent the scopes of local names precisely. We defined an equivalence relation such that two systems are equivalent not only in their behavior but in extrusion of scopes of names. This paper shows that the equivalence relation is a congruence relation wrt tau-prefix, new-name, replication and composition even if higher-order communication is allowed. And we also show the equivalence relation is not congruent wrt input-prefix though it is congruent wrt input prefix in first-order case." } @InProceedings{Bezemer09, title = "{A}nalysing g{CSP} {M}odels {U}sing {R}untime and {M}odel {A}nalysis {A}lgorithms", author= "Bezemer, Maarten M. and Groothuis, Marcel A. and Broenink, Jan F.", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "67--88", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "This paper presents two algorithms for analysing gCSP models in order to improve their execution performance. Designers tend to create many small separate processes for each task, which results in many (resource intensive) context switches. The research challenge is to convert the model created from a design point of view to models which have better performance during execution, without limiting the designers in their ways of working. The first algorithm analyses the model during run-time execution in order to find static sequential execution traces that allow for optimisation. The second algorithm analyses the gCSP model for multi-core execution. It tries to find a resource-efficient placement on the available cores for the given target systems. Both algorithms are implemented in two tools and are tested. We conclude that both algorithms complement each other and the analysis results are suitable to create optimised models." } @InProceedings{BrownSmith09, title = "{R}elating and {V}isualising {CSP}, {VCR} and {S}tructural {T}races", author= "Brown, Neil C.C. and Smith, Marc L.", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "89--103", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "As well as being a useful tool for formal reasoning, a trace can provide insight into a concurrent program's behaviour, especially for the purposes of run-time analysis and debugging. Long-running programs tend to produce large traces which can be difficult to comprehend and visualise. We examine the relationship between three types of traces (CSP, VCR and Structural), establish an ordering and describe methods for conversion between the trace types. Structural traces preserve the structure of composition and reveal the repetition of individual processes, and are thus well-suited to visualisation. We introduce the Starving Philosophers to motivate the value of structural traces for reasoning about behaviour not easily predicted from a program's specification. A remaining challenge is to integrate structural traces into a more formal setting, such as the Unifying Theories of Programming -- however, structural traces do provide a useful framework for analysing large systems." } @InProceedings{Klomp09, title = "{D}esigning a {M}athematically {V}erified {I}2{C} {D}evice {D}river using {ASD}", author= "Klomp, Arjen and Roebbers, Herman and Derwig, Ruud and Bouwmeester, Leon", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "105--116", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "This paper describes the application of the Analytical Software Design methodology to the development of a mathematically verified I2C device driver for Linux. A model of an I2C controller from NXP is created, against which the driver component is modelled. From within the ASD tool the composition is checked for deadlock, livelock and other concurrency issues by generating CSP from the models and checking these models with the CSP model checker FDR. Subsequently C code is automatically generated which, when linked with a suitable Linux kernel run-time, provides a complete defect-free Linux device driver. The performance and footprint are comparable to handwritten code." } @InProceedings{Barnes09, title = "{M}obile {E}scape {A}nalysis for occam-pi", author= "Barnes, Frederick R. M.", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "117--134", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "Escape analysis is the process of discovering boundaries of dynamically allocated objects in programming languages. For object-oriented languages such as C++ and Java, this analysis leads to an understanding of which program objects interact directly, as well as what objects hold references to other objects. Such information can be used to help verify the correctness of an implementation with respect to its design, or provide information to a run-time system about which objects can be allocated on the stack (because they do not \textquotedblescape\textquotedbl the method in which they are declared). For existing object-oriented languages, this analysis is typically made difficult by aliasing endemic to the language, and is further complicated by inheritance and polymorphism. In contrast, the occam-pi programming language is a process-oriented language, with systems built from layered networks of communicating concurrent processes. The language has a strong relationship with the CSP process algebra, that can be used to reason formally about the correctness of occam-pi programs. This paper presents early work on a compositional escape analysis technique for mobiles in the occam-pi programming language, in a style not dissimilar to existing CSP analyses. The primary aim is to discover the boundaries of mobiles within the communication graph, and to determine whether or not they escape any particular process or network of processes. The technique is demonstrated by analysing some typical occam-pi processes and networks, giving a formal understanding of their mobile escape behaviour." } @InProceedings{TeigVannebo09, title = "{N}ew {ALT} for {A}pplication {T}imers and {S}ynchronisation {P}oint {S}cheduling", author= "Teig, Øyvind and Vannebo, Per Johan", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "135--144", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "During the design of a small channel-based concurrency runtime system (ChanSched, written in ANSI C), we saw that application timers (which we call egg and repeat timers) could be part of its supported ALT construct, even if their states live through several ALTs. There are no side effects into the ALT semantics, which enable waiting for channels, channel timeout and, now, the new application timers. Application timers are no longer busy polled for timeout by the process. We show how the classical occam language may benefit from a spin-off of this same idea. Secondly, we wanted application programmers to be freed from their earlier practice of explicitly coding communication states at channel synchronisation points, which was needed by a layered in-house scheduler. This led us to develop an alternative to the non-ANSI C \textquotedblcomputed goto\textquotedbl (found in gcc). Instead, we use a switch/case with goto line-number-tags in a synch-point-table for scheduling. We call this table, one for each process, a proctor table. The programmer does not need to manage this table, which is generated with a script, and hidden within an \#include file." } @InProceedings{Ritson09, title = "{T}ranslating {ETC} to {LLVM} {A}ssembly", author= "Ritson, Carl G.", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "145--158", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "The LLVM compiler infrastructure project provides a machine independent virtual instruction set, along with tools for its optimisation and compilation to a wide range of machine architectures. Compiler writers can use the LLVM's tools and instruction set to simplify the task of supporting multiple hardware/software platforms. In this paper we present an exploration of translation from stack-based Extended Transputer Code (ETC) to SSA-based LLVM assembly language. This work is intended to be a stepping stone towards direct compilation of occam-pi and similar languages to LLVM's instruction set." } @InProceedings{PedersenKauke09, title = "{R}esumable {J}ava {B}ytecode - {P}rocess {M}obility for {P}rocess{J} targeting the {JVM}", author= "Pedersen, Jan Bækgaard and Kauke, Brian", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "159--172", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "This paper describes an implementation of resumable and mobile processes for a new process-oriented language called ProcessJ. ProcessJ is based on CSP and the pi-calculus; it is structurally very close to occam-pi, but the syntax is much closer to the imperative part of Java (with new constructs added for process orientation). One of the targets of ProcessJ is Java bytecode to be executed on the Java Virtual Machine (JVM), and in this paper we describe how to implement the process mobility features of ProcessJ with respect to the Java Virtual Machine. We show how to add functionality to support resumability (and process mobility) by a combination of code rewriting (adding extra code to the generated Java target code), as well as bytecode rewriting." } @InProceedings{Sputh09, title = "{O}pen{C}om{RTOS}: {A} {R}untime {E}nvironment for {I}nteracting {E}ntities", author= "Sputh, Bernhard H.C. and Faust, Oliver and Verhulst, Eric and Mezhuyev, Vitaliy", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "173--184", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "OpenComRTOS is one of the few Real-Time Operating Systems for embedded systems that was developed using formal modelling techniques. The goal was to obtain a proven dependable component with a clean architecture that delivers high performance on a wide variety of networked embedded systems, ranging from a single processor to distributed systems. The result is a scalable relibable communication system with real-time capabilities. Besides, a rigorous formal verification of the kernel algorithms led to an architecture which has several properties that enhance safety and real-time properties of the RTOS. The code size in particular is very small, typically 10 times less than a typical equivalent single processor RTOS. The small code size allows a much better use of the on-chip memory resources, which increases the speed of execution due to the reduction of wait states caused by the use of external memory. To this point we ported OpenComRTOS to the MicroBlaze processor from Xilinx, the Leon3 from ESA, the ARM Cortex-M3, the Melexis MLX16, and the XMOS. In this paper we concentrate on the Microblaze port, which is an environment where OpenComRTOS competes with a number of different operating systems, including the standard operating system Xilinx Micro Kernel. This paper reports code size figures of the OpenComRTOS on a MicroBlaze target. We found that this code size is considerably smaller compared with published code sizes of other operating systems." } @InProceedings{Martin09, title = "{E}conomics of {C}loud {C}omputing: a {S}tatistical {G}enetics {C}ase {S}tudy", author= "Martin, Jeremy M. R. and Barrett, Steven J. and Thornber, Simon J. and Bacanu, Silviu-Alin and Dunlap, Dale and Weston, Steve", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "185--195", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "We describe an experiment which aims to reduce significantly the costs of running a particular large-scale grid-enabled application using commercial cloud computing resources. We incorporate three tactics into our experiment: improving the serial performance of each work unit, seeking the most cost-effective computation cycles, and making use of an optimized resource manager and scheduler. The application selected for this work is a genetics association analysis and is representative of a common class of embarrassingly parallel problems." } @InProceedings{Clayton09, title = "{A}n {A}pplication of {C}o{SM}o{S} {D}esign {M}ethods to {P}edestrian {S}imulation", author= "Clayton, Sarah and Urquhart, Neil and Kerridge, Jon", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "197--204", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "In this paper, we discuss the implementation of a simple pedestrian simulation that uses a multi agent based design pattern developed by the CoSMoS research group. Given the nature of Multi Agent Systems (MAS), parallel processing techniques are inevitably used in their implementation. Most of these approaches rely on conventional parallel programming techniques, such as threads, Message Passing Interface (MPI) and Remote Method Invocation (RMI). The CoSMoS design patterns are founded on the use of Communicating Sequential Processes (CSP), a parallel computing paradigm that emphasises a process oriented rather than object oriented programming perspective." } @InProceedings{ChalmersKerridge09, title = "{A}n {I}nvestigation into {D}istributed {C}hannel {M}obility {S}upport for {C}ommunicating {P}rocess {A}rchitectures", author= "Chalmers, Kevin and Kerridge, Jon", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "205--223", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "Localised mobile channel support is now a feature of Communicating Process Architecture (CPA) based frameworks, from JCSP and C++CSP to occam-pi. Distributed mobile channel support has also been attempted in JCSP Networking and occam-pi via the pony framework, although the capabilities of these two separate approaches is limited and has not led to the widespread usage of distributed mobile channel primitives. In this paper, an initial investigation into possible models that can support distributed channel mobility are presented and analysed for features such as transmission time, robustness and reachability. The goal of this work is to discover a set of models which can be used for channel mobility and also supported within the single unified protocol for distributed CPA frameworks. From the analysis presented in this paper, it has been determined that there are models which can be implemented to support channel end mobility within a single unified protocol which provide suitable capabilities for certain application scenarios." } @InProceedings{Brown09a, title = "{A}uto-{M}obiles: {O}ptimised {M}essage-{P}assing", author= "Brown, Neil C.C.", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "225--238", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "Some message-passing concurrent systems, such as occam 2, prohibit aliasing of data objects. Communicated data must thus be copied, which can be time-intensive for large data packets such as video frames. We introduce automatic mobility, a compiler optimisation that performs communications by reference and deduces when these communications can be performed without copying. We discuss bounds for speed-up and memory use, and benchmark the automatic mobility optimisation. We show that in the best case it can transform an operation from being linear with respect to packet size into constant-time." } @InProceedings{BialkiewiczPeschanski09, title = "{A} {D}enotational {S}tudy of {M}obility", author= "Bialkiewicz, Joël-Alexis and Peschanski, Frederic", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "239--261", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "This paper introduces a denotational model and refinement theory for a process algebra with mobile channels. Similarly to CSP, process behaviours are recorded as trace sets. To account for branching-time semantics, the traces are decorated by structured locations that are also used to encode the dynamics of channel mobility in a denotational way. We present an original notion of split-equivalence based on elementary trace transformations. It is first characterised coinductively using the notion of split-relation. Building on the principle of trace normalisation, a more denotational characterisation is also proposed. We then exhibit a preorder underlying this equivalence and motivate its use as a proper refinement operator. At the language level, we show refinement to be tightly related to a construct of delayed sums, a generalisation of non-deterministic choices." } @InProceedings{Vinter09, title = "{P}y{CSP} {R}evisited", author= "Vinter, Brian and Bjørndalen, John Markus and Friborg, Rune Møllegard", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "263--276", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "PyCSP was introduced two years ago and has since been used by a number of programmers, especially students. The original motivation behind PyCSP was a conviction that both Python and CSP are tools that are especially well suited for programmers and scientists in other fields than computer science. Working under this premise the original PyCSP was very similar to JCSP and the motivation was simply to provide CSP to the Python community in the JCSP tradition. After two years we have concluded that PyCSP is indeed a usable tool for the target users; however many of them have raised some of the same issues with PyCSP as with JCSP. The many channel types, lack of output guards and external choice wrapped in the select-then-execute mechanism were frequent complaints. In this work we revisit PyCSP and address the issues that have been raised. The result is a much simpler PyCSP with only one channel type, support for output guards, and external choice that is closer to that of occam than JCSP." } @InProceedings{Friborg09, title = "{T}hree {U}nique {I}mplementations of {P}rocesses for {P}y{CSP}", author= "Friborg, Rune Møllegard and Bjørndalen, John Markus and Vinter, Brian", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "277--292", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "In this work we motivate and describe three unique implementations of processes for PyCSP: process, thread and greenlet based. The overall purpose is to demonstrate the feasibility of Communicating Sequential Processes as a framework for different application types and target platforms. The result is a set of three implementations of PyCSP with identical interfaces to the point where a PyCSP developer need only change which implementation is imported to switch to any of the other implementations. The three implementations have different strengths; processes favors parallel processing, threading portability and greenlets favor many processes with frequent communication. The paper includes examples of applications in all three categories." } @InProceedings{Mount09, title = "{CSP} as a {D}omain-{S}pecific {L}anguage {E}mbedded in {P}ython and {J}ython", author= "Mount, Sarah and Hammoudeh, Mohammad and Wilson, Sam and Newman, Robert", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "293--309", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "Recently, much discussion has taken place within the Python programming community on how best to support concurrent programming. This paper describes a new Python library, python-csp, which implements synchronous, message-passing concurrency based on Hoare's Communicating Sequential Processes. Although other CSP libraries have been written for Python, python-csp has a number of novel features. The library is implemented both as an object hierarchy and as a domain-specific language, meaning that programmers can compose processes and guards using infix operators, similar to the original CSP syntax. The language design is intended to be idiomatic Python and is therefore quite different to other CSP libraries. python-csp targets the CPython interpreter and has variants which reify CSP process as Python threads and operating system processes. An equivalent library targets the Jython interpreter, where CSP processes are reified as Java threads. jython-csp also has Java wrappers which allow the library to be used from pure Java programs. We describe these aspects of python-csp, together with performance benchmarks and a formal analysis of channel synchronisation and choice, using the model checker SPIN." } @InProceedings{TristramBradshaw09, title = "{H}ydra: {A} {P}ython {F}ramework for {P}arallel {C}omputing", author= "Tristram, Waide B. and Bradshaw, Karen", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "311--324", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "This paper investigates the feasibility of developing a CSP to Python translator using a concurrent framework for Python. The objective of this translation framework, developed under the name of Hydra, is to produce a tool that helps programmers implement concurrent software easily using CSP algorithms. This objective was achieved using the ANTLR compiler generator tool, Python Remote Objects and PyCSP. The resulting Hydra prototype takes an algorithm defined in CSP, parses and converts it to Python and then executes the program using multiple instances of the Python interpreter. Testing has revealed that the Hydra prototype appears to function correctly, allowing simultaneous process execution. Therefore, it can be concluded that converting CSP to Python using a concurrent framework such as Hydra is both possible and adds flexibility to CSP with embedded Python statements." } @InProceedings{Lowe09, title = "{E}xtending {CSP} with {T}ests for {A}vailability", author= "Lowe, Gavin", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "325--347", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "We consider the language of CSP extended with a construct that allows processes to test whether a particular event is available (without actually performing the event). We present an operational semantics for this language, together with two congruent denotational semantic models. We also show how this extended language can be simulated using standard CSP, so as to be able to analyse systems using the model checker FDR." } @InProceedings{KorsgaardHendseth09, title = "{D}esign {P}atterns for {C}ommunicating {S}ystems with {D}eadline {P}ropagation", author= "Korsgaard, Martin and Hendseth, Sverre", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "349--361", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "Toc is an experimental programming language based on occam that combines CSP-based concurrency with integrated specification of timing requirements. In contrast to occam with strict round-robin scheduling, the Toc scheduler is lazy and does not run a process unless there is a deadline associated with its execution. Channels propagate deadlines to dependent tasks. These differences from occam necessitate a different approach to programming, where a new concern is to avoid dependencies and conflicts between timing requirements. This paper introduces client-server design patterns for Toc that allow the programmer precise control of timing. It is shown that if these patterns are used, the deadline propagation graph can be used to provide sufficient conditions for schedulability. An alternative definition of deadlock in deadline-driven systems is given, and it is demonstrated how the use of the suggested design patterns allow the absence of deadlock to be proven in Toc programs. The introduction of extended rendezvous into Toc is shown to be essential to these patterns." } @InProceedings{Kosek09, title = "{JCSP} {A}gents-{B}ased {S}ervice {D}iscovery for {P}ervasive {C}omputing", author= "Kosek, Anna and Kerridge, Jon and Syed, Aly and Armitage, Alistair", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "363--373", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "Device and service discovery is a very important topic when considering pervasive environments. The discovery mechanism is required to work in networks with dynamic topology and on limited software, and be able to accept different device descriptions. This paper presents a service and device discovery mechanism using JCSP agents and the JCSP network package jcsp.net2." } @InProceedings{SimpsonRitson09, title = "{T}oward {P}rocess {A}rchitectures for {B}ehavioural {R}obotics", author= "Simpson, Jonathan and Ritson, Carl G.", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "375--386", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "Building robot control programs which function as intended is a challenging task. Roboticists have developed architectures to provide principles, constraints and primitives which simplify the building of these correct, well structured systems. A number of established and prevalent behavioural architectures for robot control make use of explicit parallelism with message passing. Expressing these architectures in terms of a process-oriented programming language, such as occam-pi, allows us to distil design rules, structures and primitives for use in the development of process architectures for robot control." } @InProceedings{GroothuisBroenink09, title = "{HW}/{SW} {D}esign {S}pace {E}xploration on the {P}roduction {C}ell {S}etup", author= "Groothuis, Marcel A. and Broenink, Jan F.", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "387--402", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "This paper describes and compares five CSP based and two CSP related process-oriented motion control system implementations that are made for our Production Cell demonstration setup. Five implementations are software-based and two are FPGA hardware-based. All implementations were originally made with different purposes and investigating different areas of the design space for embedded control software resulting in an interesting comparison between approaches, tools and software and hardware implementations. Common for all implementations is the usage of a model-driven design method, a communicating process structure, the combination of discrete event and continuous time and that real-time behaviour is essential. This paper shows that many small decisions made during the design of all these embedded control software implementations influence our route through the design space for the same setup, resulting in seven different solutions with different key properties. None of the implementations is perfect, but they give us valuable information for future improvements of our design methods and tools." } @InProceedings{Welch09b, title = "{E}ngineering {E}mergence: an occam-pi {A}dventure", author= "Welch, Peter H. and Wallnau, Kurt and Klein, Mark", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "403--403", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "Future systems will be too complex to design and implement explicitly. Instead, we will have to learn to engineer complex behaviours indirectly: through the discovery and application of local rules of behaviour, applied to simple process components, from which desired behaviours predictably emerge through dynamic interactions between massive numbers of instances. This talk considers such indirect engineering of emergence using a process-oriented architecture. Different varieties of behaviour may emerge within a single application, with interactions between them provoking ever-richer patterns ­ almost social systems. We will illustrate with a study based on Reynolds' boids: emergent behaviours include flocking (of course), directional migration (with waves), fear and panic (of hawks), orbiting (points of interest), feeding frenzy (when in a large enough flock), turbulent flow and maze solving. With this kind of engineering, a new problem shows up: the suppression of the emergence of undesired behaviours. The panic reaction within a flock to the sudden appearance of a hawk is a case in point. With our present rules, the flock loses cohesion and scatters too quickly, making individuals more vulnerable. What are the rules that will make the flock turn almost-as-one and maintain most of its cohesion? There are only the boids to which these rules may apply (there being, of course, no design or programming entity corresponding to a flock). More importantly, how do we set about finding such rules in the first place? Our architecture and models are written in occam-pi, whose processes are sufficiently lightweight to enable a sufficiently large mass to run and be interacted with for real-time experiments on emergent behaviour. This work is in collaboration with the Software Engineering Institute (at CMU) and is part of the CoSMoS project (at the Universities of Kent and York in the UK)." } @InProceedings{Sampson11a, title = "{T}his is a {P}arallel {P}arrot", author= "Sampson, Adam T.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", } @InProceedings{Cook11, title = "{P}arallel {U}sage {C}hecking - an {O}bservation", author= "Cook, Barry M.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "One of the great strengths of CSP based concurrent programming languages (such as occam) is the support provided to the programmer in avoiding the creation of erroneous programs. One such support \– \textlessi\textgreaterparallel usage checking\textless/i\textgreater \– detects program behaviours that may leave a variable in an unpredictable state. Current implementations of this check are safe but can lead to inefficient program implementations. In some cases, a simple program transformation can be used to demonstrate the safety of programs that would otherwise fail existing tests. By presenting a simple (but generic) example, I will show that using such a transformation allows the creation of more efficient programs." } @InProceedings{Vella11, title = "{E}xploring {P}eer-to-{P}eer {V}irtualized {M}ultithreaded {S}ervices", author= "Vella, Kevin", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", } @InProceedings{Ellis11, title = "{F}ormal {A}nalysis of {C}oncurrent {OS} ({RM}o{X}) {D}evice {D}rivers", author= "Ellis, Martin", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "Many tools exists for writing safe and correct device drivers for conventional operating systems, from runtime driver management layers (that try to detect errors and recover from them) to static analysis systems like SLAM. Unfortunately, these tools do not map well to the concurrent drivers we write for RMoX. This presentation will look at how we can build safe and correct device drivers, using traditional occam analysis approaches (such as CSP) and tools (such as FDR). Experiments in generating formal models of hardware/driver interfaces from our occam implementations will be described, along with how we intend to use these models to prove correctness properties for our drivers." } @InProceedings{Barnes11, title = "{G}uppy", author= "Barnes, Frederick R. M.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", } @InProceedings{Sampson11b, title = "{D}istributing {C}oncurrent {S}imulation", author= "Sampson, Adam T.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", } @InProceedings{Wilterdink11, title = "{D}emonstration of the {LUNA} {F}ramework", author= "Wilterdink, Robert J.W. and Bezemer, Maarten M. and Broenink, Jan F.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "In this demonstration of the LUNA hard real-time, multi-threaded, CSP-capable execution framework, we use the JIWY-II pan-tilt camera robotic setup. The webcam can rotate horizontally and vertically, driven by two electromotors, controlled by software written as LUNA concurrent processes. The loop control algorithms are designed and generated by 20-sim, a tool for modeling and designing (controlled) mechatronic systems. This way, all code is generated, i.e. a model-driven approach. The demo will show that the LUNA library is capable of controlling setups in hard real-time, and that the implemented real-time logger provides valuable insight in the applications behaviour, i.e. control algorithms and LUNA framework." } @InProceedings{Lowe11, title = "{I}mplementing {G}eneralised {A}lt", author= "Lowe, Gavin", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "1--34", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "In this paper we describe the design and implementation of a generalised alt operator for the Communicating Scala Objects library. The alt operator provides a choice between communications on different channels. Our generalisation removes previous restrictions on the use of alts that prevented both ends of a channel from being used in an alt. The cost of the generalisation is a much more difficult implementation, but one that still gives very acceptable performance. In order to support the design, and greatly increase our confidence in its correctness, we build CSP models corresponding to our design, and use the FDR model checker to analyse them." } @InProceedings{FriborgVinter11, title = "{V}erification of a {D}ynamic {C}hannel {M}odel using the {SPIN} {M}odel-{C}hecker", author= "Friborg, Rune Møllegard and Vinter, Brian", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "35--54", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "This paper presents the central elements of a new dynamic channel leading towards a flexible CSP design suited for high-level languages. This channel is separated into three models: a shared-memory channel, a distributed channel and a dynamic synchronisation layer. The models are described such that they may function as a basis for implementing a CSP library, though many of the common features known in available CSP libraries have been excluded from the models. The SPIN model checker has been used to check for the presence of deadlocks, livelocks, starvation, race conditions and correct channel communication behaviour. The three models are separately verified for a variety of different process configurations. This verification is performed automatically by doing an exhaustive verification of all possible transitions using SPIN. The joint result of the models is a single dynamic channel type which supports both local and distributed any-to-any communication. This model has not been verified and the large state-space may make it unsuited for exhaustive verification using a model checker. An implementation of the dynamic channel will be able to change the internal synchronisation mechanisms on-the-fly, depending on the number of channel-ends connected or their location." } @InProceedings{Skovhede11, title = "{P}rogramming the {CELL}-{BE} using {CSP}", author= "Skovhede, Kenneth and Larsen, Morten N. and Vinter, Brian", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "55--70", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "The current trend in processor design seems to focus on using multiple cores, similar to a cluster-on-a-chip model. These processors are generally fast and power efficient, but due to their highly parallel nature, they are notoriously difficult to program for most scientists. One such processor is the CELL broadband engine (CELL-BE) which is known for its high performance, but also for a complex programming model which makes it difficult to exploit the architecture to its full potential. To address this difficulty, this paper proposes to change the programming model to use the principles of CSP design, thus making it simpler to program the CELL-BE and avoid livelocks, deadlocks and race conditions. The CSP model described here comprises a thread library for the synergistic processing elements (SPEs) and a simple channel based communication interface. To examine the scalability of the implementation, experiments are performed with both scientific computational cores and synthetic workloads. The implemented CSP model has a simple API and is shown to scale well for problems with significant computational requirements." } @InProceedings{PedersenSowders11, title = "{S}tatic {S}coping and {N}ame {R}esolution for {M}obile {P}rocesses with {P}olymorphic {I}nterfaces", author= "Pedersen, Jan Bækgaard and Sowders, Matthew", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "71--85", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "In this paper we consider a refinement of the concept of mobile processes in a process oriented language. More specifically, we investigate the possibility of allowing resumption of suspended mobile processes with different interfaces. This is a refinement of the approach taken currently in languages like occam-\π. The goal of this research is to implement varying resumption interfaces in ProcessJ, a process oriented language being developed at UNLV." } @InProceedings{Warren11, title = "{P}rioritised {C}hoice over {M}ultiway {S}ynchronisation", author= "Warren, Douglas N.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "87--110", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "Previous algorithms for resolving choice over multiway synchronisations have been incompatible with the notion of priority. This paper discusses some of the problems resulting from this limitation and offers a subtle expansion of the definition of priority to make choice meaningful when multiway events are involved. Presented in this paper is a prototype extension to the JCSP library that enables prioritised choice over multiway synchronisations and which is compatible with existing JCSP Guards. Also discussed are some of the practical applications for this algorithm as well as its comparative performance." } @InProceedings{Cole11, title = "{A} {C}omparison {O}f {D}ata-{P}arallel {P}rogramming {S}ystems {W}ith {A}ccelerator", author= "Cole, Alex and McEwan, Alistair A. and Singh, Satnam", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "111--130", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "Data parallel programming provides an accessible model for exploiting the power of parallel computing elements without resorting to the explicit use of low level programming techniques based on locks, threads and monitors. The emergence of GPUs with hundreds or thousands of processing cores has made data parallel computing available to a wider class of programmers. GPUs can be used not only for accelerating the processing of computer graphics but also for general purpose data-parallel programming. Low level data-parallel programming languages based on the CUDA provide an approach for developing programs for GPUs but these languages require explicit creation and coordination of threads and careful data layout and movement. This has created a demand for higher level programming languages and libraries which raise the abstraction level of data-parallel programming and increase programmer productivity. The Accelerator system was developed by Microsoft for writing data parallel code in a high level manner which can execute on GPUs, multicore processors using SSE3 vector instructions and FPGA chips. This paper compares the performance and development effort of the high level Accelerator system against lower level systems which are more difficult to use but may yield better results. Specifically, we compare against the NVIDIA CUDA compiler and sequential C++ code considering both the level of abstraction in the implementation code and the execution models. We compare the performance of these systems using several case studies. For some classes of problems, Accelerator has a performance comparable to CUDA, but for others its performance is significantly reduced however in all cases it provides a model which is easier to use and allows for greater programmer productivity." } @InProceedings{Kerridge11, title = "{E}xperiments in {M}ulticore and {D}istributed {P}arallel {P}rocessing using {JCSP}", author= "Kerridge, Jon", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "131--142", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "It is currently very difficult to purchase any form of computer system be it, notebook, laptop, desktop server or high performance computing system that does not contain a multicore processor. Yet the designers of applications, in general, have very little experience and knowledge of how to exploit this capability. Recently, the Scottish Informatics and Computer Science Alliance (SICSA) issued a challenge to investigate the ability of developers to parallelise a simple Concordance algorithm. Ongoing work had also shown that the use of multicore processors for applications that have internal parallelism is not as straightforward as might be imagined. Two applications are considered: calculating pi using Monte Carlo methods and the SICSA Concordance application. The ease with which parallelism can be extracted from a single application using both single multicore processors and distributed networks of such multicore processors is investigated. It is shown that naive application of parallel programming techniques does not produce the desired results and that considerable care has to be taken if multicore systems are to result in improved performance. Meanwhile the use of distributed systems tends to produce more predictable and reasonable benefits resulting from parallelisation of applications." } @InProceedings{Kosek11, title = "{E}valuating {A}n {E}mergent {B}ehaviour {A}lgorithm for {E}nergy {C}onservation in {L}ighting {S}ystems {U}sing {JCSP}", author= "Kosek, Anna and Syed, Aly and Kerridge, Jon", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "143--156", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "Since the invention of the light bulb, artificial light is accompanying people all around the world every day and night. As the light bulb itself evolved a lot through years, light control systems are still switch-based and require users to make most of the decisions about its behaviour. This paper presents an algorithm for emergent behaviour in a lighting system to achieve stable, user defined light level, while saving energy. The algorithm employs a parallel design and was tested using JCSP." } @InProceedings{Bezemer11, title = "{LUNA}: {H}ard {R}eal-{T}ime, {M}ulti-{T}hreaded, {CSP}-{C}apable {E}xecution {F}ramework", author= "Bezemer, Maarten M. and Wilterdink, Robert J.W. and Broenink, Jan F.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "157--175", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "Modern embedded systems have multiple cores available. The CTC++ library is not able to make use of these cores, so a new framework is required to control the robotic setups in our lab. This paper first looks into the available frameworks and compares them to the requirements for controlling the setups. It concludes that none of the available frameworks meet the requirements, so a new framework is developed, called LUNA. The LUNA architecture is component based, resulting in a modular structure. The core components take care of the platform related issues. For each supported platform, these components have a different implementation, effectively providing a platform abstraction layer. High-level components take care of platform-independent tasks, using the core components. Execution engine components implement the algorithms taking care of the execution flow, like a CSP implementation. The paper describes some interesting architectural challenges encountered during the LUNA development and their solutions. It concludes with a comparison between LUNA, C++CSP2 and CTC++. LUNA is shown to be more efficient than CTC++ and C++CSP2 with respect to switching between threads. Also, running a benchmark using CSP constructs, shows that LUNA is more efficient compared to the other two. Furthermore, LUNA is also capable of controlling actual robotic setups with good timing properties." } @InProceedings{Jacobsen11, title = "{C}oncurrent {E}vent-driven {P}rogramming in occam-\π for the {A}rduino", author= "Jacobsen, Christian L. and Jadud, Matthew C. and Kilic, Omer and Sampson, Adam T.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "177--193", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "The success of the Arduino platform has made embedded programming widely accessible. The Arduino has seen many uses, for example in rapid prototyping, hobby projects, and in art installations. Arduino users are often not experienced embedded programmers however, and writing correct software for embedded devices can be challenging. This is especially true if the software needs to use interrupts in order to interface with attached devices. Insight and careful discipline are required to avoid introducing race hazards when using interrupt routines. Instead of programming the Arduino in C or C++ as is the custom, we propose using occam-\π as a language as that can help the user manage the concurrency introduced when using interrupts and help in the creation of modular, well-designed programs. This paper will introduce the Arduino, the software that enables us to run occam-\π on it, and a case study of an environmental sensor used in an Environmental Science course." } @InProceedings{HanlonHollis11, title = "{F}ast {D}istributed {P}rocess {C}reation with the {XMOS} {XS}1 {A}rchitecture", author= "Hanlon, James and Hollis, Simon J.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "195--207", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "The provision of mechanisms for processor allocation in current distributed parallel programming models is very limited. This makes difficult, or even prohibits, the expression of a large class of programs which require a run-time assessment of their required resources. This includes programs whose structure is irregular, composite or unbounded. Efficient allocation of processors requires a process creation mechanism able to initiate and terminate remote computations quickly. This paper presents the design, demonstration and analysis of an explicit mechanism to do this, implemented on the XMOS XS1 architecture, as a foundation for a more dynamic scheme. It shows that process creation can be made efficient so that it incurs only a fractional overhead of the total runtime and that it can be combined naturally with recursion to enable rapid distribution of computations over a system." } @InProceedings{Whitehead11, title = "{S}erving {W}eb {C}ontent with {D}ynamic {P}rocess {N}etworks in {G}o", author= "Whitehead, James", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "209--226", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "This paper introduces webpipes, a compositional web server toolkit written using the Go programming language as part of an investigation of concurrent software architectures. This toolkit utilizes an architecture where multiple functional components respond to requests, rather than the traditional monolithic web server model. We provide a classification of web server components and a set of type definitions based on these insights that make it easier for programmers to create new purpose-built components for their systems. The abstractions provided by our toolkit allow servers to be deployed using several concurrency strategies. We examine the overhead of such a framework, and discuss possible enhancements that may help to reduce this overhead." } @InProceedings{Chalmers11, title = "{P}erformance of the {D}istributed {CPA} {P}rotocol and {A}rchitecture on {T}raditional {N}etworks", author= "Chalmers, Kevin", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "227--242", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "Performance of communication mechanisms is very important in distributed systems frameworks, especially when the aim is to provide a particular type of behavior across a network. In this paper, performance measurements of the distributed Communicating Process Architectures networking protocol and stack is presented. The results presented show that for general communication, the distributed CPA architecture is close to the baseline network performance, although when dealing with parallel speedup for the Mandelbrot set, little performance is gained. A discussion into the future direction of the distributed CPA architecture and protocol in relation to occam-\π and other runtimes is also presented." } @InProceedings{Ritson11, title = "{O}bject {S}tore {B}ased {S}imulation {I}nterworking", author= "Ritson, Carl G. and Andrews, Paul S. and Sampson, Adam T.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "243--253", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "The CoSMoS project is building generic modelling tools and simulation techniques for complex systems. As part of this project a number of simulations have been developed in many programming languages. This paper describes a framework for interconnecting simulation components written in different programming languages. These simulation components are synchronised and coupled using a shared object space. This approach allows us to combine highly concurrent agent-based simulations written in occam-\π, with visualisation and analysis components written in flexible scripting languages such as Python and domain specific languages such as MATLAB." } @InProceedings{Huntbach11, title = "{A} {M}odel for {C}oncurrency {U}sing {S}ingle-{W}riter {S}ingle-{A}ssignment {V}ariables", author= "Huntbach, Matthew", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "255--272", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "This is a description of a model for concurrent computation based on single-writer single-assignment variables. The description is primarily graphical, resembling the interaction nets formalism. The model embodies rules in a process which may require two or more communications from other processes to respond. However, these are managed by a partial evaluation response on receiving a single communication." } @InProceedings{KorsgaardHendseth11, title = "{T}he {C}omputation {T}ime {P}rocess {M}odel", author= "Korsgaard, Martin and Hendseth, Sverre", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "273--286", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "In traditional real-time multiprocessor schedulability analysis it is required that all tasks are entirely serial. This implies that if a task is written in a parallel language such as occam, all parallelism in the task must be suppressed to enable schedulability analysis. Part of the reason for this restriction is the difficulty in analysing execution times of programs with a complex parallel structure. In this paper we introduce an abstract model for reasoning about the temporal properties of such programs. Within this model, we define what it means for a process to be easier to schedule than another, and the notion of upper bounds on execution times. Counterintuitive temporal behaviour is demonstrated to be inherent in all systems where processes are allowed an arbitrary parallel structure. For example, there exist processes that are guaranteed to complete on some schedule, that may not complete if executing less than the expected amount of computation. Not all processes exhibit such counterintuitive behaviour, and we identify a subset of processes that are well-behaved in this respect. The results from this paper is a necessary prerequisite for a complete schedulability analysis of systems with an arbitrary parallel structure." } @InProceedings{SaifhashemiBeerel11, title = "{S}ystem{V}erilog{CSP}: {M}odeling {D}igital {A}synchronous {C}ircuits {U}sing {S}ystem{V}erilog {I}nterfaces", author= "Saifhashemi, Arash and Beerel, Peter A.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "287--302", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "This paper describes how to model channel-based digital asynchronous circuits using SystemVerilog interfaces that implement CSP-like communication events. The interfaces enable explicit handshaking of channel wires as well as abstract CSP events. This enables abstract connections between modules that are described at different levels of abstraction facilitating both verification and design. We explain how to model one-to-one, one-to-many, one-to-any, any-to-one, and synchronized channels. Moreover, we describe how to split communication actions into multiple parts to more accurately model less concurrent handshaking protocols that are commonly found in many asynchronous pipelines." } @InProceedings{Posso11, title = "{P}rocess-{O}riented {S}ubsumption {A}rchitectures in {S}warm {R}obotic {S}ystems", author= "Posso, Jeremy C. and Sampson, Adam T. and Simpson, Jonathan and Timmis, Jon", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "303--316", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "Previous work has demonstrated the feasibility of using process-oriented programming to implement simple subsumption architectures for robot control. However, the utility and scalability of process-based subsumption architectures for more complex tasks and those involving multiple robots has not been proven. We report our experience of applying these techniques to the implementation of a standard foraging problem in swarm robotics, using occam-\π to implement a subsumption control system. Through building a system with a realistic level of complexity, we have discovered both advantages and disadvantages to the process-oriented subsumption approach for larger robot control systems." } @InProceedings{SlipperMcEwan11, title = "{A} {S}ystems {R}e-engineering {C}ase {S}tudy: {P}rogramming {R}obots with occam and {H}andel-{C}", author= "Slipper, Dan and McEwan, Alistair A.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "317--327", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "This paper introduces a case study exploring some of the legacy issues that may be faced when redeveloping a system. The case study is a robotics system programmed in occam and Handel-C, allowing us to draw comparisons between software and hardware implementations in terms of program architecture, ease of program code verification, and differences in the behaviour of the robot. The two languages used have been selected because of their model of concurrency and their relation to CSP. The case study contributes evidence that re-implementing a system from an abstract model may present implementation specific issues despite maintaining the same underlying program control structure. The paper identifies these problems and suggests a number of steps that could be taken to help mitigate some of the issues." } @InProceedings{Armstrong11, title = "{T}he {F}lying {G}ator: {T}owards {A}erial {R}obotics in occam-\π", author= "Armstrong, Ian and Pirrone-Brusse, Michael and Smith, A and Jadud, Matthew C.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "329--340", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "The Flying Gator is an unmanned aerial vehicle developed to support investigations regarding concurrent and parallel control for robotic and embedded systems. During ten weeks in the summer of 2010, we designed, built, and tested an airframe, control electronics, and a concurrent firmware capable of sustaining autonomous level flight. Ultimately, we hope to have a robust, open source control system capable of supporting interesting research questions exploring concurrency in real time systems as well as current issues in sustainable agriculture." } @InProceedings{Isobe11, title = "{CONPASU}-tool: {A} {C}oncurrent {P}rocess {A}nalysis {S}upport {T}ool based on {S}ymbolic {C}omputation", author= "Isobe, Yoshinao", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "341--362", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "This paper presents an analysis-method of concurrent processes with value-passing which may cause infinite-state systems. The method consists of two steps: sequentialisation and state-reduction. In the sequentialisation, the symbolic transition graph of a given concurrent process is derived by symbolic operational semantics. In the state-reduction, the number of states in the symbolic transition graph is reduced by removing needless internal transitions. Furthermore, this paper introduces an analysis-tool called CONPASU, which implements the analysis-method, and demonstrates how CONPASU can be used for automatically analyzing concurrent processes. For example, it can extract abstract behaviors, which are useful for understanding complex behaviors, by focusing on some interesting events." } @InProceedings{Yamakawa11, title = "{D}evelopment of an {ML} based {V}erification {T}ool for {T}imed {CSP} {P}rocesses", author= "Yamakawa, Takeshi and Ohashi, Tsuneki and Fukunaga, Chikara", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "363--375", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "We report the development of a verification tool for Timed CSP processes. The tool has been built on the functional programming language ML. The tool interprets processes described in both timed and untimed CSP, converting them to ML functions, and executing those functions for the verification of refinement in the timed traces and timewise traces models. Using the programmability of higher order functionality, the description of CSP processes with ML has been synthesised naturally. The effectiveness of the tool is demonstrated with an example analysing implementations of Fischer's algorithm for the exclusive control of a shared resource in a multi-processor environment." } @InProceedings{BonniciWelch11, title = "{M}obile {P}rocesses and {C}all {C}hannels with {V}ariant {I}nterfaces (a {D}uality)", author= "Bonnici, Eric and Welch, Peter H.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "377--377", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "The current model of mobile processes in occam-\π implements a \textlessem\textgreatersingle\textless/em\textgreater interface for host processes to use. However, different hosts holding different kinds of resource will naturally require different interfaces to interact with their visitors. So, current occam-\π mobiles have to offer a single union of all the interfaces needed and hosts must provide dummy arguments for those irrelevant to its particular calls. This opens the possibilty of programming errors in both hosts and mobile should those dummies mistakenly be used. This talk considers a revised model for mobile processes that allows \textlessem\textgreatermany\textless/em\textgreater interfaces. The talk also proposes a concept of \textlessem\textgreatervariant call channels\textless/em\textgreater, that expands on a mechanism proposed for the occam3 language, and shows a simple duality between the revised mobile processes and mobile variant call channels. An implementation of mobile variant call channels, via source-code transformation to standard occam-\π mobile channel bundles, has been devised \– which gives an implementation route for the revised mobile process model and an operational semantics. If time, the ideas will be illustrated with a case study based on the Santa Claus problem, where the elves and reindeer are mobile processes." } @InProceedings{Welch11, title = "{A}dding {F}ormal {V}erification to occam-\π", author= "Welch, Peter H. and Pedersen, Jan Bækgaard and Barnes, Frederick R. M. and Ritson, Carl G. and Brown, Neil C.C.", editor= "Welch, Peter H. and Sampson, Adam T. and Pedersen, Jan Bækgaard and Kerridge, Jon and Broenink, Jan F. and Barnes, Frederick R. M.", pages = "379--379", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2011", isbn= "978-1-60750-773-4", year= "2011", month= "jun", abstract= "This is a proposal for the formal verification of occam-\π programs to be managed entirely within occam-\π. The language is extended with qualifiers on types and processes (to indicate relevance for verification and/or execution) and assertions about refinement (including deadlock, livelock and determinism). The compiler abstracts a set of CSPm equations and assertions, delegates their analysis to the FDR2 model checker and reports back in terms related to the occam-\π source. The rules for mapping the extended occam-\π to CSPm are given. The full range of CSPm assertions is accessible, with no knowledge of CSP formalism required by the occam-\π programmer. Programs are proved just by \textlessem\textgreaterwriting\textless/em\textgreater and \textlessem\textgreatercompiling\textless/em\textgreater programs. A case-study analysing a new (and elegant) solution to the \textlessem\textgreaterDining Philosophers\textless/em\textgreater problem is presented. Deadlock-freedom for colleges with \textlessem\textgreaterany\textless/em\textgreater number of philosphers is established by verifying an induction argument (the base and induction steps). Finally, following guidelines laid down by Roscoe, the careful use of \textlessem\textgreatermodel compression\textless/em\textgreater is demonstrated to verify directly the deadlock-freedom of an occam-\π college with 10\^{}2000 philosphers (in around 30 seconds). All we need is a universe large enough to contain the computer on which to run it." } @InProceedings{Cole12b, title = "{H}andel-{C}++ - {A}dding {S}yntactic {S}upport to {C}++", author= "Cole, Alex", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", } @InProceedings{Li12, title = "{I}mplementation of an {A}gent-based {M}odel with {TBB} {T}echnique", author= "Li, Ye", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", } @InProceedings{Welch12b, title = "{U}nfinished {B}usiness - occam-pi²", author= "Welch, Peter H.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", } @InProceedings{BarrocasOliveira12b, title = "{JC}ircus {D}emo", author= "Barrocas, S.L.M. and Oliveira, Marcel", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", } @InProceedings{Bezemer12b, title = "{D}eveloping {JIWY} using {TERRA}", author= "Bezemer, Maarten M. and Wilterdink, Robert J.W. and Broenink, Jan F.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", } @InProceedings{Miller12, title = "{P}olyphonic {P}rocessors - {F}antasy on an {FPGA}", author= "Miller, Richard", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", } @InProceedings{East12, title = "{A} {CPA} {S}eries", author= "East, Ian R.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", } @InProceedings{Welch12a, title = "{C}ancellable {S}ervers - a {P}attern for {C}uriousity", author= "Welch, Peter H.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "--", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", } @InProceedings{Whitehead12, title = "{D}esigning a {C}oncurrent {F}ile {S}erver", author= "Whitehead, James", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "1--14", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "In this paper we present a design and architecture for a concurrent file system server. This architecture is a compromise between the fully concurrent V6 UNIX implementation, and the simple sequential implementation in the MINIX operating system. The design of the server is made easier through the use of a disciplined model of concurrency, based on the CSP process algebra. By viewing the problem through this restricted lens, without traditional explicit locking mechanisms, we can construct the system as a process network of components with explicit connections and dependencies. This provides us with insight into the problem domain, and allows us to analyse the issues present in concurrent file system implementation." } @InProceedings{BarrocasOliveira12a, title = "{JC}ircus 2.0: an {E}xtension of an {A}utomatic {T}ranslator from {C}ircus to {J}ava", author= "Barrocas, S.L.M. and Oliveira, Marcel", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "15--36", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "The use of formal methods in the development of concurrent systems considerably reduces the complexity of specifying their behaviour and verifying properties that are inherent to them. Development, however, targets the generation of executable programs; hence, translating the final specification into a practical programming language becomes imperative. This translation is usually rather problematic due to the high probability of introducing errors in manual translations: the mapping from some of the original concepts in the formal concurrency model into a corresponding construct in the programming language is non-trivial. In recent years, there is a growing effort in providing automatic translation from formal specifications into programming languages. One of these efforts, JCircus, translates specifications written in Circus (a combination of Z and CSP) into Java programs that use JCSP, a library that implements most of the CSP constructs. The subtle differences between JCSP and Circus implementation of concurrency, however, imposed restrictions to the translation strategy and, consequently, to JCircus. In this paper, we extend JCircus by providing: (1) a new optimised translation strategy to multi-way synchronisation; (2) the translation of complex communications, and; (3) the translation of CSP sharing parallel and interleaving. A performance analysis of the resulting code is also in the context of this paper and provides important insights into the practical use of our results." } @InProceedings{KosekGehrke12, title = "{A} {D}istributed {M}ulti-{A}gent {C}ontrol {S}ystem for {P}ower {C}onsumption in {B}uildings", author= "Kosek, Anna and Gehrke, Oliver", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "37--52", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "This paper presents a distributed controller for adjusting the electrical consumption of a residential building in response to an external power setpoint in Watts. The controller is based on a multi-agent system and has been implemented in JCSP. It is modularly built, capable of self-configuration and adapting to a dynamic environment. The paper describes the overall architecture and the design of the individual agents. Preliminary results from proof-of-concept tests on a real building are included." } @InProceedings{Wester12, title = "{S}pecification of {APERTIF} {P}olyphase {F}ilter {B}ank in {C}la{SH}", author= "Wester, Rinse and Sarakiotis, Dimitrios and Kooistra, Eric and Kuper, Jan", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "53--64", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "ClaSH, a functional hardware description language based on Haskell, has several abstraction mechanisms that allow a hardware designer to describe architectures in a short and concise way. In this paper we evaluate ClaSH on a complex DSP application, a Polyphase Filter Bank as it is used in the ASTRON APERTIF project. The Polyphase Filter Bank is implemented in two steps: first in Haskell as being close to a standard mathematical specification, then in ClaSH which is derived from the Haskell formulation by applying only minor changes. We show that the ClaSH formulation can be directly mapped to hardware, thus exploiting the parallelism and concurrency that is present in the original mathematical specification." } @InProceedings{Oguz12, title = "{S}chedulability {A}nalysis of {T}imed {CSP} {M}odels {U}sing the {PAT} {M}odel {C}hecker", author= "Oguz, Oguzcan and Broenink, Jan F. and Mader, Angelika", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "65--88", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "Timed CSP can be used to model and analyse real-time and concurrent behaviour of embedded control systems. Practical CSP implementations combine the CSP model of a real-time control system with prioritized scheduling to achieve efficient and orderly use of limited resources. Schedulability analysis of a timed CSP model of a system with respect to a scheduling scheme and a particular execution platform is important to ensure that the system design satisfies its timing requirements. In this paper, we propose a framework to analyse schedulability of CSP-based designs for non-preemptive fixed-priority multiprocessor scheduling. The framework is based on the PAT model checker and the analysis is done with dense-time model checking on timed CSP models. We also provide a schedulability analysis workflow to construct and analyse, using the proposed framework, a timed CSP model with scheduling from an initial untimed CSP model without scheduling. We demonstrate our schedulability analysis workflow on a case study of control software design for a mobile robot. The proposed approach provides non-pessimistic schedulability results." } @InProceedings{GardnerSolovyov12, title = "{S}upporting {T}imed {CSP} {O}perators in {CSP}++", author= "Gardner, W. B. and Solovyov, Yuriy", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "89--106", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "CSP++ is an open-source code synthesis tool consisting of a translator for a subset of CSPm and a C++ run-time framework. Version 5.0 now supports Timed CSP operators--timed interrupt, timed timeout, and timed prefix--as well as untimed variants of interrupt and timeout, with only 1\% additional execution and memory overhead, though using interrupts is more costly. We describe the implementation and performance of the new operators, illustrating their use with a robot-vacuum cleaner case study. The tool thus becomes more useful for specifying the behaviour of soft real-time systems, and generating a timing-enabled executable program from its formal model." } @InProceedings{Chalmers12, title = "{A} {C}omparison of {M}essage {P}assing {I}nterface and {C}ommunicating {P}rocess {A}rchitecture {N}etworking {C}ommunication {P}erformance", author= "Chalmers, Kevin", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "107--120", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "Message Passing Interface (MPI) is a popular approach to enable Single Process, Multiple Data (SPMD) style parallel computing, particularly in cluster computing environments. Communicating Process Architecture (CPA) Networking on the other hand, has been developed to enable channel based semantics across a communication mechanism in a transparent manner. However, in both cases the concept of a message passing infrastructure is fundamental. This paper compares the performance of both of these frameworks at a base communication level, also discussing some of the similarities between the two mechanisms. From the experiments, it can be seen that although MPI is a more mature technology, in many regards CPA Networking can perform comparably if the correct communication is used." } @InProceedings{Cole12a, title = "{B}eauty {A}nd {T}he {B}east: {E}xploiting {GPU}s {I}n {H}askell", author= "Cole, Alex and McEwan, Alistair A. and Mainland, Geoff", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "121--134", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "In this paper we compare a Haskell system that exploits a GPU back end using Obsidian against a number of other GPU/parallel processing systems. Our examples demonstrate two major results. Firstly they show that the Haskell system allows the applications programmer to exploit GPUs in a manner that eases the development of parallel code by abstracting from the hardware. Secondly we show that the performance results from generating the GPU code from Haskell are acceptably comparable to expert hand written GPU code in most cases; and permit very significant performance benefits over single and multi-threaded implementations whilst maintaining ease of development. Where our results differ from expert hand written GPU (CUDA) code we consider the reasons for this and discuss possible developments that may mitigate these differences. We conclude with a discussion of a domain specific example that benefits directly and significantly from these results." } @InProceedings{BateLowe12, title = "{A} {D}ebugger for {C}ommunicating {S}cala {O}bjects", author= "Bate, Andrew and Lowe, Gavin", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "135--154", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "This paper presents a software tool for visualising and reasoning about the behaviour of message-passing concurrent programs built with the CSO library for the Scala programming language. It describes the models needed to represent the construction of process networks and the runtime behaviour of the resulting program. We detail the manner in which information is extracted from the use of concurrency primitives in order to maintain these models and how these models are diagrammed. Our implementation of dynamic deadlock detection is explained. The tool can produce a sequence diagram of process communications, the communication network depicting the pairs of processes which share a communication channel, and the trees resulting from the composition of processes. Furthermore, it allows for behavioural specifications to be defined and then checked at runtime, and guarantees to detect the illegal usage of concurrency primitives that could otherwise lead to deadlock or data loss. Our implementation imposes only a small overhead on the program under inspection." } @InProceedings{Teig12, title = "{XCHAN}s: {N}otes on a {N}ew {C}hannel {T}ype", author= "Teig, Øyvind", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "155--170", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "This paper proposes a new channel type, XCHAN, for communicating messages between a sender and receiver. Sending on an XCHAN is asynchronous, with the sending process informed as to its success. XCHANs may be buffered, in which case a successful send means the message has got into the buffer. A successful send to an unbuffered XCHAN means the receiving process has the message. In either case, a failed send means the message has been discarded. If sending on an XCHAN fails, a built-in feedback channel (the x-channel, which has conventional channel semantics) will signal to the sender when the channel is ready for input (i.e., the next send will succeed). This x-channel may be used in a select or ALT by the sender side (only input guards are needed), so that the sender may passively wait for this notification whilst servicing other events. When the x-channel signal is taken, the sender should send as soon as possible -- but it is free to send something other than the message originally attempted (e.g. some freshly arrived data). The paper compares the use of XCHAN with the use of output guards in select/ALT statements. XCHAN usage should follow a design pattern, which is also described. Since the XCHAN never blocks, its use contributes towards deadlock- avoidance. The XCHAN offers one solution to the problem of overflow handling associated with a fast producer and slow consumer in message passing systems. The claim is that availability of XCHANs for channel based systems gives the designer and programmer another means to simplify and increase quality." } @InProceedings{Mir12, title = "{A} {H}igh {P}erformance {R}econfigurable {A}rchitecture for {F}lash {F}ile {S}ystems", author= "Mir, Irfan and McEwan, Alistair A. and Perrins, Neil J.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "171--184", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "NAND flash memory is widely adopted as the primary storage medium in embedded systems. The design of the flash translation layer, and exploitation of parallel I/O architectures, are crucial in achieving high performance within a flash file system. In this paper we present our new FPGA based flash management framework using reconfigurable computing that supports high performance flash storage systems. Our implementation is in Verilog, and as such enables us to design a highly concurrent system at a hardware level in both the flash translation layer and the flash controller. Results demonstrate that implementing the flash translation layer and flash controller directly in hardware, by exploiting reconfigurable computing, permits us to exploit a highly concurrent architecture that leads to fast response times and throughput in terms of read/write operations." } @InProceedings{Bezemer12a, title = "{D}esign and {U}se of {CSP} {M}eta-{M}odel for {E}mbedded {C}ontrol {S}oftware {D}evelopment", author= "Bezemer, Maarten M. and Wilterdink, Robert J.W. and Broenink, Jan F.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "185--200", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "Software that is used to control machines and robots must be predictable and reliable. Model-Driven Design (MDD) techniques are used to comply with both the technical and business needs. This paper introduces a CSP meta-model that is suitable for these MDD techniques. The meta-model describes the structure of CSP models that are designed; using this meta-model it is possible to use all regular CSP constructs when constructing a CSP model. The paper also presents a new tool suite, called TERRA, based on Eclipse and its frameworks. TERRA contains a graphical CSP model editor (using the new CSP meta-model), model validation tools and code generation tools. The model validation tools check whether the model conforms to the meta-model definition as well as to additional rules. Models without any validation problems result in proper code generation, otherwise the developer needs to address the found problems to be sure code generation will succeed. The code generation tools are able to generate CSPm code that is readable by FDR and to generate C++/LUNA code that is executable on embedded targets. The meta-model and the TERRA tool suite are tested by designing CSP models for several of our laboratory setups. The generated C++/LUNA code for the laboratory setups is able to control them as expected. Additionally, the paper contains an example model containing all supported CSP constructs to show the CSPm code generation results. So it can be concluded that the meta-model and TERRA are usable for these kind of tasks." } @InProceedings{LarsenVinter12, title = "{E}xception {H}andling and {C}heckpointing in {CSP}", author= "Larsen, Mads Ohm and Vinter, Brian", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "201--212", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "This paper describes work in progress. It presents a new way of looking at some of the basics of CSP. The primary contributions is exception handling and checkpointing of processes and the ability to roll back to a known checkpoint. Channels are discussed as communication events which is monitored by a supervisor process. The supervisor process is also used to formalise poison and retire events. Exception handling and checkpointing are used as means of recovering from an catastrophe. The supervisor process is central to checkpointing and recovery as well. Three different kind of exception handling is discussed: fail-stop, retire-like fail-stop, and check pointing. Fail-stop works like poison, and retire-like fail-stop works like retire. Checkpointing works by telling the supervisor process to roll back both participants in a communication event, to a state immediately after their last successful communication. Only fail-stop exceptions have been implemented in PyCSP to this point." } @InProceedings{Welch12c, title = "occam {O}bviously", author= "Welch, Peter H.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "213--214", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "This talk explains and tries to justify a range of questions for which its title is the answer. It reviews the history of occam: its underlying philosophy (Occam's Razor), its semantic foundation on Hoare's CSP, its principles of process oriented design and its development over almost three decades into occam-pi (which blends in the concurrency dynamics of Milner's pi-calculus). Also presented will be its urgent need for rationalisation -- occam-pi is an experiment that has demonstrated significant results, but now needs time to be spent on careful review and implementing the conclusions of that review. Finally, the future is considered. In particular, how do we avoid the following question being final: which language had the most theoretically sound semantics, the most efficiently engineered implementation, the simplest and most pragmatic concurrency model for building complex systems ... and was mostly forgotten (even as its ideas are slowly and expensively and painfully being reinvented piece-by-piece, as they must be)?" } @InProceedings{Sampson12, title = "{P}rocess-{O}riented {B}uilding {B}locks", author= "Sampson, Adam T.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "215--216", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "Intel's Threading Building Blocks library provides an efficient, work-stealing lightweight task scheduler, along with a high-level task-based API for parallel programming in C++. This presentation shows how TBB's scheduler can be used (without modification) to implement blocking process-oriented concurrent systems, and discusses the advantages and disadvantages of this approach." } @InProceedings{EllisBarnes12, title = "{D}ata {E}scape {A}nalysis for {P}rocess {O}riented {S}ystems", author= "Ellis, Martin and Barnes, Frederick R. M.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "217--218", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "Escape analysis, the technique of discovering the boundaries of dynamically allocated objects, is a well explored technique for object-orientated languages (such as Java and C++) and stems from the functional programming community. It provides an insight into which objects interact directly (and indirectly) and can inform program correctness checking, or be used for directing optimisations (e.g. determining which objects can safely be allocated on a function-local stack). For process-oriented languages such as occam-pi and Google's Go, we have explored mobile escape analysis, that provides concise information about the movement of objects (mobiles) within networks of communicating processes. Because of the distinction between processes (as execution contexts) and objects (dynamically allocated data, channels and processes), combined with strict typing and aliasing rules, the analysis is somewhat simpler then for less strict languages. This analysis is only concerned with dynamically allocated blocks of memory -- it does not give any consideration for the data contained within these. However, knowing the extent to which data (statically or dynamically allocated) escapes within a network of communicating processes is arguably useful -- and is not necessarily a superset of mobile escape. The fringe presentation describes an extension to the mobile escape model that seeks to capture semantic information about the data escape of a process-oriented system. This provides richer semantic information about a process's behaviour (that can be used in verification) and has clear application to security (e.g. by demonstrating that particular data does not escape a set of communicating processes)." } @InProceedings{PerrinsMcEwan12, title = "{SEU} {P}rotection for {H}igh-{R}eliability {F}lash {F}ile {S}ystems", author= "Perrins, Neil J. and McEwan, Alistair A.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "219--220", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2012", isbn= "978-0-9565409-5-9", year= "2012", month= "aug", abstract= "Single Event Upsets (SEU) are a primary reliability concern for electronics in high radiation, highly hostile environments such as space. In the case of Field Programmable Gate Arrays, the concern is firstly that data stored in RAM can be corrupted, and secondly that configurable logic blocks can become damaged or corrupted. In this talk we will present our considerations of this problem in the context of an SRAM-based high reliability flash file system. We will firstly demonstrate our test harness where we simulate the injection of SEUs into our FPGA. We will then discuss how we propose to build a self repairing configuration using triple modular redundancy and partial dynamic reconfiguration. Finally we will discuss how the reliability of the system may be tested and measured such that it can be used with confidence in either data acquisition or control system applications in rad-hard environments." } @InProceedings{Michaelson13, title = "{C}osting by {C}onstruction", author= "Michaelson, Greg", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "1--2", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "Predicting the performance of sequential systems is hard and concurrency brings additional complexities of coordination and timing. However, current models of concurrency tend to be unitary and so conflate computation and coordination. In contrast, the Hume language is based on concurrent generalised finite state boxes linked by wires. Boxes are stateless with transitions driven by pattern matching to select actions in a full strength functional language. This explicit separation of coordination and computation greatly eases concurrent system modelling: classical inductive reasoning may be used to establish properties within boxes, while box coordination may be explored independently through the novel box calculus. This seminar gives an introduction to the Hume language, cost models for Hume, and the box calculus, and considers how they might be integrated in a system to support costing by construction, where the resource implications of design decisions are made manifest as a system evolves." } @InProceedings{Turner13, title = "{N}ational {HPC} {F}acilities at {EPCC}: {E}xploiting {M}assively {P}arallel {A}rchitectures for {S}cientific {S}imulation", author= "Turner, Andrew", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "3--4", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "This presentation gives an overview of the challenges facing scientific software developers in exploiting current and upcoming massively parallel HPC facilities. The different levels of parallelism available in the architectures will be discussed, together with their impact for software design and what the trend is for the future. The discussion will be illustrated with examples from the two national facilities currently hosted at EPCC: HECToR (a Cray XE6) and the DiRAC IBM BlueGene/Q." } @InProceedings{GibsonRobinsonGoldsmith13, title = "{T}he {M}eaning and {I}mplementation of {SKIP} in {CSP}", author= "Gibson-Robinson, Thomas and Goldsmith, Michael", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "5--20", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "The CSP model checker FDR has long supported Hoare's termination semantics for CSP, but has not supported the more theoretically complete construction of Roscoe's, largely due to the complexity of adding a second termination semantics. In this paper we provide a method of simulating Roscoe's termination semantics using the Hoare termination semantics and then prove the equivalence of the two different approaches. We also ensure that FDR can support the simulation reasonably efficiently." } @InProceedings{HowellsdInverno13a, title = "{S}uccessful {T}ermination in {T}imed {CSP}", author= "Howells, Paul and d'Inverno, Mark", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "21--38", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "In previous work the authors investigated the inconsistencies of how successful termination was modelled in Hoare, Brookes and Roscoe's original CSP. This led to the definition of a variant of CSP, called CSPt. CSPt presents a solution to these problems by means of adding a termination axiom to the original process axioms. In this paper we investigate how successful process termination is modelled in Reed and Roscoe's Timed CSP, which is the temporal version of Hoare's original untimed CSP. We discuss the issues that need to be considered when selecting termination axioms for Timed CSP, based on our experiences in defining CSPt. The outcome of this investigation and discussion is a collection of candidate successful termination axioms that could be added to the existing Timed CSP models, leading to an improved treatment of successful termination within the Timed CSP framework. We outline how these termination axioms would be added to the family of semantic models for Timed CSP. Finally, we outline what further work needs to be done once these new models for Timed CSP have been defined. For example, it would then be possible to define timed versions of the new more flexible parallel operators introduced in CSPt." } @InProceedings{ChalmersKerridge13, title = "{V}erifying the {CPA} {N}etworking {S}tack using {SPIN}/{P}romela", author= "Chalmers, Kevin and Kerridge, Jon", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "39--52", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "This paper presents a verification of the CPA Networking Stack, using the SPIN Model Checker. Our work shows that the system developed for general networking within CPA applications works under the conditions defined for it. The model itself focuses on ensuring deadlock freedom, and work still needs to be undertaken to verify expected behaviour of the architecture." } @InProceedings{Boode13, title = "{I}mproving the {P}erformance of {P}eriodic {R}eal-time {P}rocesses: a {G}raph {T}heoretical {A}pproach", author= "Boode, Antoon H. and Broersma, Hajo and Broenink, Jan F.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "57--80", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "In this paper the performance gain obtained by combining parallel periodic real-time processes is elaborated. In certain single-core mono-processor configurations, for example embedded control systems in robotics comprising many short processes, process context switches may consume a considerable amount of the available processing power. For this reason it can be advantageous to combine processes, to reduce the number of context switches and thereby increase the performance of the application. As we consider robotic applications only, often consisting of processes with identical periods, release times and deadlines, we restrict these configurations to periodic real-time processes executing on a single-core mono-processor. By graph theoretical concepts and means, we provide necessary and sufficient conditions so that the number of context switches can be reduced by combining synchronising processes." } @InProceedings{Friborg13, title = "{S}caling {P}y{CSP}", author= "Friborg, Rune Møllegard and Bjørndalen, John Markus and Vinter, Brian", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "81--92", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "PyCSP is intended to help scientists develop correct, maintainable and portable code for emerging architectures. The library uses concepts from Communicating Sequential Processes, CSP, and is implemented in the Python programming language. This paper introduces a new channel implementation and new process types for PyCSP that are intended to simplify writing programs for clusters. The new processes and channels are investigated by running 3 benchmarks on two separate clusters, using up to 512 CPU cores. The results show that PyCSP scales well, with close to linear scaling for some of the benchmarks." } @InProceedings{Alam13, title = "{S}ervice {O}riented {P}rogramming in {MPI}", author= "Alam, Sarwar and Kamal, Humaira and Wagner, Alan", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "93--112", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "In this paper we introduce a service oriented approach to the design of distributed data structures for MPI. Using this approach we present the design of an ordered linked-list structure. The implementation relies on Fine-Grain MPI (FG-MPI) and its support for exposing fine-grain concurrency. We describe the implementation of the service and show how to compose and map it onto a cluster. We experiment with the service to show how its behaviour can be adjusted to match the application and the machine." } @InProceedings{Bate13, title = "{S}calable {P}erformance for {S}cala {M}essage-{P}assing {C}oncurrency", author= "Bate, Andrew", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "113--132", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "This paper presents an embedded domain-specific language for building massively concurrent systems. In particular, we demonstrate how ultra-lightweight cooperatively-scheduled processes and message-passing concurrency can be provided for the Scala programming language on the Java Virtual Machine (JVM). We make use of a well-known continuation-passing style bytecode transformation in order to achieve performance that is several orders of magnitude higher than native JVM threads. Our library is capable of scaling to millions of processes and messages on a single virtual machine instance, and our runtime system will detect deadlock should it occur. Message-passing is over 100 times faster than Erlang, and context switching is 1000 times faster than native Java threads. In benchmarks, the performance of our library is close to compiled code." } @InProceedings{PedersenSmith13, title = "{P}rocess{J}: {A} {P}ossible {F}uture of {P}rocess-{O}riented {D}esign", author= "Pedersen, Jan Bækgaard and Smith, Marc L.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "133--156", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "We propose ProcessJ as a new, more contemporary programming language that supports process-oriented design, which raises the level of abstraction and lowers the barrier of entry for parallel and concurrent programming. ProcessJ promises verifiability (e.g., deadlock detection), based on Hoare's CSP model of concurrency, and existing model checkers like FDR. Process-oriented means processes compose, unlike thread-based or asynchronous message-passing models of concurrency; this means that programmers can incrementally define larger and larger concurrent processes without concern for undesirable nondeterminism or unexpected side effects. Processes at their lowest, most granular level are sequential programs; there are no global variables, so no race conditions, and the rules of parallel composition are functional in nature, not imperative, and based on the mathematically sound CSP process algebra. Collectively, these ideas raise the level of abstraction for concurrency; they were successful once before with the occam language and the Transputer. We believe their time has come again, and will not go away, in this new age of multi-core processors. Computers have finally caught up with CSP and process-oriented design. We believe that ProcessJ can be the programming language that provides a bridge from today's languages to tomorrow's concurrent programs. Learning or teaching the programming model and language will be greatly supported through the educational part of the proposed project, which includes course templates and an online teaching tool that integrates in-browser programming with teaching material. Our efforts are encouraged by the forthcoming 2013 IEEE and ACM curricula guidelines, which for the first time include concurrent programming as a core knowledge area at the undergraduate level." } @InProceedings{HowellsdInverno13b, title = "{S}pecifying and {A}nalysing {N}etworks of {P}rocesses in {CSP}t (or {I}n {S}earch of {A}ssociativity)", author= "Howells, Paul and d'Inverno, Mark", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "157--184", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "In proposing theories of how we should design and specify networks of processes it is necessary to show that the semantics of any language we use to write down the intended behaviours of a system has several qualities. First in that the meaning of what is written on the page reflects the intention of the designer; second that there are no unexpected behaviours that might arise in a specified system that are hidden from the unsuspecting specifier; and third that the intention for the design of the behaviour of a network of processes can be communicated clearly and intuitively to others. In order to achieve this we have developed a variant of CSP, called CSPt, designed to solve the problems of termination of parallel processes present in the original formulation of CSP. In CSPt we introduced three parallel operators, each with a different kind of termination semantics, which we call synchronous, asynchronous and race. These operators provide specifiers with an expressive and flexible tool kit to define the intended behaviour of a system in such a way that unexpected or unwanted behaviours are guaranteed not to take place. In this paper we extend out analysis of CSPt and introduce the notion of an alphabet diagram that illustrates the different categories of events that can arise in the parallel composition of processes. These alphabet diagrams are then used to analyse networks of three processes in parallel with the aim of identifying sufficient constraints to ensure associativity of their parallel composition. Having achieved this we then proceed to prove associativity laws for the three parallel operators of CSPt. Next, we illustrate how to design and construct a network of three processes that satisfy the associativity law, using the associativity theorem and alphabet diagrams. Finally, we outline how this could be achieved for more general networks of processes." } @InProceedings{GibsonRobinson13a, title = "{E}fficient {S}imulation of {CSP}-{L}ike {L}anguages", author= "Gibson-Robinson, Thomas", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "185--204", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "In \textquotedblOn the Expressiveness of CSP\textquotedbl, Roscoe provides a construction that, given the operational semantics rules of a CSP-like language and a process in that language, constructs a strongly bisimilar CSP process. Unfortunately, the construction provided is difficult to use and the scripts produced cannot be compiled by the CSP model-checker, FDR. In this paper, we adapt Roscoe's simulation to make it produce a process that can be checked relatively efficiently by FDR. Further, we extend Roscoe's simulation in order to allow recursively defined processes to be simulated in FDR, which was not supported by the original simulation. We also describe the construction of a tool that can automatically construct the simulation, given the operational semantics of the language and a script to simulate, both in an easy-to-use format." } @InProceedings{Teig13a, title = "{S}elective {C}hoice \textquotedbl{F}eathering\textquotedbl with {XCHAN}s", author= "Teig, Øyvind", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "205--216", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "This paper suggests an additional semantics to XCHANs, where a sender to a synchronous channel that ends up as a component in a receiver's selective choice (like ALT) may (if wanted) become signaled whenever the ALT has been (or is being) set up with the actual channel not in the active channel set. Information about this is either received as the standard return on XCHAN's attempted sending or on the built-in feedback channel (called x-channel) if initial sending failed. This semantics may be used to avoid having to send (and receive) messages that have been seen as uninteresting. We call this scheme feathering, a kind of low level implicit subscriber mechanism. The mechanism may be useful for systems where channels that were not listened to while listening on some other set of channels, will not cause a later including of those channels to carry already declared uninteresting messages. It is like not having to treat earlier bus-stop arrival messages for the wrong direction after you sit on the first arrived bus for the correct direction. The paper discusses the idea as far as possible, since modeling or implementation has not been possible. This paper's main purpose is to present the idea." } @InProceedings{JonesPedersen13, title = "{T}he {D}istributed {A}pplication {D}ebugger", author= "Jones, Michael Quinn and Pedersen, Jan Bækgaard", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "217--232", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "In this paper we introduce a tool for debugging parallel programs which utilize the popular MPI (message passing interface) C library. The tool is called The Distributed Application Debugger and introduces distinct components around the code being debugged in order to play, record, and replay sessions of the user's code remotely. The GUI component incorporates the popular GDB debugger for stepping through code line by line as it runs on the distributed cluster as well as an analysis tool for stepping through the executed portions of code after the session has completed. While the system is composed of multiple components, the logistics of coordinating them is managed without user interaction; requiring the user to only provide the location of the program to debug before starting." } @InProceedings{Rehr13, title = "{BPU} {S}imulator", author= "Rehr, Martin and Skovhede, Kenneth and Vinter, Brian", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "233--248", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "A number of scientific applications start their life as a Matlab prototype that is later re-implemented in a low level programming language, typically C++ or Fortran for the sake of performance. Bohrium is a project that seeks to eliminate both the cost and the potential errors introduced in that process. Our goal is to support all execution platforms, and in this work we introduce the Bohrium Processing Unit, BPU, which will be the FPGA backend for Bohrium. The BPU is modeled as a PyCSP application, and the clear advantages of using CSP for simulating a new CPU is described. The current PyCSP simulator is able to simulate 2\^{}20 Monte Carlo simulations in less than 35 seconds in the smallest BPU simulation." } @InProceedings{Barnes13a, title = "{E}xploring {GPGPU} {A}cceleration of {P}rocess-{O}riented {S}imulations", author= "Barnes, Frederick R. M. and Pressnell, Thomas and Le Foll, Brendan", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "249--262", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "This paper reports on our experiences of using commodity GPUs to speed-up the execution of fine-grained concurrent simulations. Starting with an existing process-oriented \textquotedblboids\textquotedbl simulation, we explore a variety of techniques aimed at improving performance, gradually refactoring the original code. Successive improvements lead to a 10-fold improvement in performance, which we believe can still be improved upon, allowing us to explore simulations with larger numbers of agents (30,000 rather than 2,000) interactively and without significant performance degradation." } @InProceedings{Jones13, title = "{A} {P}ersonal {P}erspective on the {S}tate of {HPC} in 2013", author= "Jones, Christopher C.R.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "263--270", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "This paper is fundamentally a personal perspective on the sad state of High Performance Computing (HPC, or what was known once as Supercomputing). It arises from the author's current experience in trying to find computing technology that will allow codes to run faster: codes that have been painstakingly adapted to efficient performance on parallel computing technologies since around 1990, and have allowed effective 10-fold increases in computing performance at 5 year HPC up-grade intervals, but for which the latest high-count multi-core processor options fail to deliver improvement. The presently available processors may as well not have the majority of their cores as to use them actually slows the code - hard-won budget must be squandered on cores that will not contribute. The present situation is not satisfactory: there are very many reasons why we need computational response, not merely throughput. There are a host of cases where we need a large, complex simulation to run in a very short time. A simplistic calculation based on the nominal performance of some of the big machines with vast numbers of cores would lead one to believe that such rapid computation would be possible. The nature of the machines and the programming paradigms, however, remove this possibility. Some of the ways in which the computer science community could mitigate the hardware shortfalls are discussed, with a few more off the wall ideas about where greater compute performance might be found." } @InProceedings{RitsonBarnes13, title = "{A}n {E}valuation of {I}ntel's {R}estricted {T}ransactional {M}emory for {CPA}s", author= "Ritson, Carl G. and Barnes, Frederick R. M.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "271--292", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "With the release of their latest processor microarchitecture, codenamed Haswell, Intel added new Transactional Synchronization Extensions (TSX) to their processors' instruction set. These extensions include support for Restricted Transactional Memory (RTM), a programming model in which arbitrary sized units of memory can be read and written in an atomic manner. This paper describes the low-level RTM programming model, benchmarks the performance of its instructions and speculates on how it may be used to implement and enhance Communicating Process Architectures." } @InProceedings{Welch13a, title = "{L}ife of occam-{P}i", author= "Welch, Peter H.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "293--318", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "This paper considers some questions prompted by a brief review of the history of computing. Why is programming so hard? Why is concurrency considered an \textquotedbladvanced\textquotedbl subject? What's the matter with Objects? Where did all the Maths go? In searching for answers, the paper looks at some concerns over fundamental ideas within object orientation (as represented by modern programming languages), before focussing on the concurrency model of communicating processes and its particular expression in the occam family of languages. In that focus, it looks at the history of occam, its underlying philosophy (Ockham's Razor), its semantic foundation on Hoare's CSP, its principles of process oriented design and its development over almost three decades into occam-pi (which blends in the concurrency dynamics of Milner's pi-calculus). Also presented will be an urgent need for rationalisation - occam-pi is an experiment that has demonstrated significant results, but now needs time to be spent on careful review and implementing the conclusions of that review. Finally, the future is considered. In particular, is there a future?" } @InProceedings{Welch13b, title = "{M}utually {A}ssured {D}estruction (or the {J}oy of {S}ync)", author= "Welch, Peter H. and Pedersen, Jan Bækgaard and Barnes, Frederick R. M.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "319--320", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "In contrast to the Client-Server pattern, Mutually Assured Destruction (MAD) allows the safe opening of communication by either of two processes with the other. Should both processes commit to opening conversation together, both are immediately aware of this and can take appropriate action - there is no deadlock, even though the communications are synchronous. A common need for this pattern is in real-time control systems (e.g. robotics), artificial intelligence, e-commerce, model checking and elsewhere. A typical scenario is when two processes are given a problem to solve; we are satisfied with a solution to either one of them; whichever process solves its problem first kills the other and makes a report; the one that is killed also reports that fact. In this case, the opening communication between the two processes is the only communication (a kill signal). If both solve their problem around the same time and try to kill each other, MAD is the desired outcome (along with making their reports). A simple and safe solution (verified with FDR) for this pattern with occam synchronous communications is presented. This is compared with solutions via asynchronous communications. Although these avoid the potential deadlock that a naive strategy with synchronous communications would present, they leave a mess that has to be tidied up and this tidying adds complexity and run-time cost. The Joy of Sync arises from the extra semantic information provided by synchronous communications - that if a message has been sent, the receiving process has taken it. With this knowledge comes power and with that power comes the ability to implement higher level synchronisation patterns (such as MAD and Non-blocking Syncs) in ways that are simple, verifyably safe and impose very low overheads." } @InProceedings{GibsonRobinson13b, title = "{FDR}3: the {F}uture of {CSP} {M}odel {C}hecking", author= "Gibson-Robinson, Thomas", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "321--322", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "Over the last couple of years a brand new version of FDR, FDR3, has been under development at Oxford. This includes greatly improved performance (typically 2.5 times faster than FDR2 on a single core) and, for the first time, a parallel model-checking mode that scales almost linearly with the number of available cores. In this talk I will give a demonstration of FDR3, including the new debug viewer, the integrated version of ProBE, and the enhanced error messages. FDR3 is due for general release this October." } @InProceedings{GibsonRobinson13c, title = "{U}sing {FDR} to {M}odel {C}heck {CSP}-{L}ike {L}anguages", author= "Gibson-Robinson, Thomas", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "323--324", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "This talk presents a demonstration of tyger, a tool that has been constructed to allow a large class of CSP-like languages to be simulated in CSP. In particular, FDR will be used to demonstrate model checking of a simple CCS version of the classic Dining Philosophers problem. The theory behind this demonstration will be presented in the paper \textquotedblEfficient Simulation of CSP-Like Languages\textquotedbl." } @InProceedings{Beton13, title = "{A}n {I}ntroduction to {G}o", author= "Beton, Rick D.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "325--326", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "Go is a new open-source programming language from a team of Google's developers. It provides a modern garbage-collected runtime that has particular support for concurrency. The pattern for this is based on Hoare's CSP, using channels for synchronization and communication, and discouraging the direct sharing of variables. Processes are light-weight co-operative threads that the runtime time-slices onto underlying operating system threads; this allows an application's natural concurrency to be expressed as fully as needed by the natural concurrency of the application domain. The presentation provides an overview of Go's main features, covering in particular the unusual interfaces and duck-typing, the reflection and the concurrency. Focussing on concurrency in detail, as an example, a simple web-crawler application is converted step by step to operate concurrently, and at each stage this allows a particular feature of Go's concurrency to be demonstrated." } @InProceedings{Barnes13b, title = "{T}he {G}uppy {L}anguage: an {U}pdate", author= "Barnes, Frederick R. M.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "327--328", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "As a possible successor and perhaps replacement language for occam-pi, we have been working piecemeal for the past few years on a new language - Guppy. Rather than being a completely new language, it aims to rationalise and simplify the concurrent programming concepts and idioms that we have explored whilst developing occam-pi. This short talk will look at the current state of the language and its implementation, that is now able to compile and run a simple \textquotedblcommstime\textquotedbl benchmark, scheduled by the existing occam-pi run-time system (CCSP)." } @InProceedings{Welch13c, title = "{A}n occam {M}odel of {XCHAN}s", author= "Welch, Peter H.", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "329--330", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "Øyvind Teig, in \textquotedblXCHANs: Notes on a New Channel Type\textquotedbl, proposed a higher level channel construct (XCHAN) that attempts to reconcile those wedded to asynchronous message passing with the synchronous form in CSP. Sending a message does not block the sender, but the message may not get sent: the sender receives a success/fail result on each send. The XCHAN provides a conventional feedback channel on which it signals when it is ready to take a message. Being ready means that it has space (if it is buffered) or a reading process has committed to take the message (if it is not buffered). Sending to a ready XCHAN always succeeds; sending to an XCHAN that is not ready always fails. The sender can always wait for the signal from the XCHAN (whilst ALTing on, and processing, other events) before sending. We can model an XCHAN by a process in occam-pi. Buffered XCHANs are easy. Zero-buffered XCHANs are a little harder, because we need to maintain end-to-end synchronisation. However, occam-pi's extended input (??) and output (!!) primitives enable the process implementing the XCHAN to be hidden from its users. Unfortunately, extended outputs are not yet in the language, but their semantics can be simulated by making the receiving process read twice and ignore the first (which is just a signal whose taking must commit the reader to its second read). An important message is that sane higher level synchronisation mechanisms are usually not hard to implement efficiently via the low level CSP primitives offered by occam-pi. Although not yet measured for XCHANs, it is likely that such simulation in occam-pi will have competitive performance with direct implementation elsewhere." } @InProceedings{Teig13b, title = "{N}ames of {XCHAN} {I}mplementations", author= "Teig, Øyvind", editor= "Welch, Peter H. and Barnes, Frederick R. M. and Broenink, Jan F. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.", pages = "331--332", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2013", isbn= "978-0-9565409-7-3", year= "2013", month= "nov", abstract= "Two names for possible XCHAN implementations are suggested. The original presentation (Teig, CPA-2012) describes the \textquotedblclassic\textquotedbl scheme where the xchan-ready channel is used only if the original sending fails. The occam-pi model (Welch, CPA-2013 fringe) uses the \textquotedblpre-confirmed\textquotedbl scheme, where a signal on xchan-ready is a necessary precondition to any communication. It is believed that \textquotedblfeathering\textquotedbl (Teig, CPA-2013) seems to be possible only with the classic scheme." }