Abstract. The Mayfly is a scalable general-purpose parallel processing system being designed at HP Laboratories, in collaboration with colleagues at the University of Utah. The system is intended to efficiently support parallel variants of modern programming languages such as Lisp, Prolog, and Object Oriented Programming models. These languages impose a common requirement on the hardware platform to support dynamic system needs such as runtime type checking and dynamic storage management. The main programming language for the Mayfly is a concurrent dialect of Scheme. The system is based on a distributed-memory model, and communication between processing elements is supported by message passing. The initial prototype of Mayfly will consist of 19 identical processing elements interconnected in a hexagonal mesh structure. In order to achieve the goal of scalable performance, each processing element is a parallel processor as well, which permits the application code, runtime operating system, and communication to all run in parallel. A 7 processing element subset of the prototype is presently operational. This paper describes the hardware architecture after a brief background synopsis of the software system structure.
I n t r o d u c t i o nThe goal of the M a y f l y effort was to produce a general-purpose scalable parallel processor. More specifically we sought to produce a machine that: Would achieve increased performance, primarily through parallelism, for both numeric and symbolic computations.Would exhibit a reasonable performance improvement as the number of processing elements in the system was increased. The argument of what constitutes reasonable performance scaling is difficult to precisely quantify and subsequently this issue will be addressed in more detail, but it is clear that logarithmic performance scaling is not generally cost-effective, and that achieving linear speedup over a wide range of applications would be ideal but perhaps impossible to attain.