14th June 1994 /parallel/faqs/threads-packages Summary of references and sources for thread packages for distributed/parallel computers by Honbo Zhou /parallel/documents/misc/ecco-contest IBM European Parallel Computing Consortium (ECCO) Sponsors $5,000 Contest for Parallel Computing Software in three categories: Best Parallel Software Development Tool, Best Parallel Application and Best Student Parallel Program. Deadline: 30th June 1994. Software must run on IBM Power system or IBM RISC cluster. /parallel/papers/announcements/ibm-sp1-switch Details of two papers on the IBM SP1 High-Performance Switch, as used in the Power Parallel Systems SP1 and SP2. Article by Craig B. Stunkel /parallel/faqs/parallel-n-body-sph-visualisation Summary of responses to a query about parallel n-body, smoothed particle hydrodynamics (SPH) and visualisation by Mario Antonioletti /parallel/books/oup/design-and-analysis-of-parallel-algorithms "The Design and Analysis of Parallel Algorithms" published by Oxford University Press, ISBN 0-19-507881-0 table of contents and description by the author Justin R. Smith , Department of Mathematics and Computer Science, Drexel University, Philadelphia, PA, USA. /parallel/software/simulators/pram Added mirror of the PRAM (Parallel Random Access Machine) emulator and Parallel Modula 2 compiler from Pasi Hamalainen and Simo Juvaste , University of Joensuu, Finland. /parallel/software/simulators/pram/README.emulator /parallel/software/simulators/pram/emulator.tar.Z PRAM emulator: a software emulator of theoretical model of parallel computing called Parallel Random Access Memory (PRAM) written in ANSI C by Pasi Hamalainen , University of Joensuu, Finland. /parallel/software/simulators/pram/README.pm2 /parallel/software/simulators/pram/pm2.tar.Z High Level Language (Modula 2) Compiler for PRAM by Simo Juvaste . Includes Sun Sparc binary. /parallel/transputer/disassembler/tdas10.readme /parallel/transputer/disassembler/tdas10.zip Freely distributable disassembler for the INMOS T4xx, T2xx and T8xx transputer families written in (Borland) Pascal by Steffen Seeger /parallel/environments/enterprise Added mirror of the Enterprise parallel programming system from Department of Computer Science, University of Alberta, Edmonton, Alberta, Canada. It is an interactive graphical programming environment for designing, coding, debugging, testing and executing programs in a distributed hardware environment. Enterprise code looks like familiar sequential code because the parallelism is expressed graphically and independently of the code. The system automatically inserts the code necessary to correctly handle communication and synchronization, allowing the rapid construction of distributed programs. Uses either NMP or PVM as communications systems and contains binaries for SUN4, SGI and RS6K. /parallel/environments/enterprise/README (7012 bytes) Installation instructions for Enterprise /parallel/environments/enterprise/manual.ps.Z (967658 bytes) Enterprise User's Manual Version 2.2 by Paul Iglinkski et al, Department of Computer Science, University of Alberta, Edmonton, Alberta, Canada. TR 94-04 March 1994. /parallel/environments/enterprise/Papers/ Papers /parallel/environments/enterprise/Papers/enterprise.ps.Z (87169 bytes) ABSTRACT: Although a network of workstations represents a large amount of aggregate computing power, there is a need for software that can harness this power for single, distributed applications. Enterprise is an interactive graphical programming environment for designing, coding, debugging, testing, monitoring, profiling and executing programs in a distributed hardware environment. Enterprise code looks like familiar sequential code because the parallelism is expressed graphically and independently of the code. The system automatically inserts the code necessary to correctly handle communication and synchronization, allowing the rapid construction of distributed programs. The system supports load balancing and dynamic distribution of work in environments with changing resource utilization. This paper focuses on the Enterprise programming model and some experiences using it. /parallel/environments/enterprise/Papers/experiment.ps.Z (40173 bytes) ABSTRACT: This paper discusses an experiment to compare the usability of two parallel programming systems (PPS). In this experiment, (half of the students in a graduate parallel and distributed computing course solved a problem using the Enterprise PPS while the other half solved the same problem using a PVM-like library of message-passing routines. The feedback fromsuchexperiments is necessary to help narrow the gap between what parallel programmers want, and what current PPSs provide. /parallel/environments/enterprise/Papers/performance.ps.Z (110635 bytes) ABSTRACT: Selecting a distributed communication system is a balancing act. Ease of use, efficiency of the final product, and future needs are not mutually exclusive considerations. Several questions spring to mind immediately. Whatare the requirements of the communication system? What is available to use? What are the requirements of the user? Software engineers desire software to have clean interfaces and to make any internal details inaccessible to the other components. Performance users want the software to be scalable, efficient, and easy to use, read, and debug. This paper examines four communication systems (ISIS, NMP, PVM, Concert C from these two points of view. Several programs designed to test the performance of the communication system are used as examples for comparing features. These programs are neither definitive test programs nor do they have complicated communication structures. Rather, they are used to highlight potential problem areas and implementation differences. All four of these communication systems are being evaluated for the Enterprise project. Enterprise is a programming environment for developing and running distributed parallel programs on a network of workstations. Enterprise, using templates and a precompiler, constructs a software layer around the application. The user is shielded from the tiresome low-level details of hand crafting the distributed communication portion of the application. Other software tools within Enterprise manage and monitor the distributed program. For two of the comm unication systems (ISIS and NMP) the code was created using Enterprise. The other two systems (PVM and Concert/C) are compared using handcrafted code. A comparision between the Enterprise code and handcrafted code is done using NMP. /parallel/environments/enterprise/Papers/TR91-17.ps.Z (1137587 bytes) "Enterprise: An Interactive Graphical Programming Environment For Distributed Software Development" by Enoch Chan, Paul Lu, Jimmy Mohsin, Jonathan Schaeffer, Carol Smith, Duane Szafron, Pok Sze Wong. Department of Computing Science, University of Alberta, Edmonton, Alberta, CANADA T6G 2H1 {duane, jonathan}@cs.UAlberta.ca. Technical Report TR 91-17, September 1991. ABSTRACT Workstation environments have been in use for more than a decade now. Although a network of workstations together represents a large amount of aggregate computing power, single users often cannot utilize these resources for their applications. Enterprise is a programming environment for designing, coding, debugging, testing, monitoring, profiling and executing programs in a distributed hardware environment. Enterprise code looks like familiar sequential code; the parallelism is expressed graphically. The system automatically inserts the code necessary to handle communication, synchronization and fault tolerance, allowing the rapid construction of correct distributed programs. Enterprise programs run on a network of computers, absorbing the idle cycles on machines. The system supports load balancing, limited process migration, and dynamic distribution of work in environments with changing resource utilization. Enterprise offers a cost-effective method for increasing the productivity of programmers and the throughput of existing resources. KEY WORDS: Distributed computing, parallel programming, programming environments, message passing, software engineering. /parallel/environments/enterprise/Papers/TR92-13.ps.Z (243195 bytes) "The Enterprise Executive" by Pok Sze Wong , Department of Computing Science, University of Alberta, Edmonton, Alberta, CANADA T6G 2H1. Technical Report TR 92-13, October 1992. ABSTRACT Enterprise is a graphical programming environment for designing, coding, debugging, testing, monitoring, profiling and executing programs in a distributed hardware environment. Enterprise code looks like familiar sequential code. The user attaches icons, called assets, to sequential code modules to specify the parallelism of the program. The system provides several kinds of assets, each representing a different high-level technique of parallelism. There is an analogy between assets in a program and assets in an organization. The system automatically inserts the code to handle communication and synchronization into a module based on its attached asset kind. Also, the system runs the program and supports limited process migration and dynamic distribution of work, based on the demand and availability of resources. Enterprise is an on going project involving many researchers. This thesis presents the work on the design and implementation of the textual interface, the Enterprise assets, the executive, and some practical applications to test the flexibility of the system. With the interface, the user can edit, compile and run an Enterprise program. Assets are implemented by adding communication and synchronization code characterizing their kind into user code. A C program preprocessor is used to turn a module call into a message sending the correct parameters. The executive manages the assets (and the machines they utilize) at run time. It runs assets on available machines and handles dynamic distribution of work, as well as concurrency issues such as fairness and termination. It also monitors the load on the environment and performs limited process migration when necessary. The Enterprise system has been used to convert several sequential programs to run on a distributed environment, as well as to develop new distributed programs. The experience indicates that the Enterprise model offers a flexible and easy to use approach for rapid construction of distributed applications. KEY WORDS: Distributed computing, parallel programming, programming environments, message passing, software engineering. /parallel/environments/enterprise/Papers/TR92-20.ps.Z (814125 bytes) "The Enterprise Model for Developing Distributed Applications" by Greg Lobe, Paul Lu, Stan Melax, Ian Parsons, Jonathan Schaeffer, Carol Smith and Duane Szafron, Department of Computing Science, University of Alberta, Edmonton, Alberta, CANADA T6G 2H1. {duane, jonathan}@cs.ualberta.ca Technical Report TR 92-20, November 1992. ABSTRACT Workstations have been in use for more than a decade now. Although a network of workstations represents a large amount of aggregate computing power, there is a need for software that can harness this power for single, distributed applications. Enterprise is an interactive graphical programming environment for designing, coding, debugging, testing, monitoring, profiling and executing programs in a distributed hardware environment. Enterprise code looks like familiar sequential code because the parallelism is expressed graphically and independently of the code. The system automatically inserts the code necessary to handle communication and synchronization, allowing the rapid construction of correct distributed programs. The system supports load balancing, limited process migration, and dynamic distribution of work in environments with changing resource utilization. Enterprise utilizes the combined power of a cluster of workstations by providing a high-level programming model and environment that eliminates the perceived complexity in writing parallel software. KEY WORDS: Distributed computing, parallel programming, programming environments, message passing, software engineering. /parallel/environments/enterprise/Papers/TR93-04.ps.Z (730114 bytes) "Program Design and Animation in the Enterprise Parallel Programming Environment" by Greg Lobe, Duane Szafron and Jonathan Schaeffer, Department of Computing Science, University of Alberta, Edmonton, Alberta, CANADA T6G 2H1. {greg, duane, jonathan}@cs.ualberta.ca Technical Report TR 93-04, March 1993. ABSTRACT The Enterprise programming environment supports the development of applications that run concurrently on a network of workstations. This paper describes the object-oriented components of Enterprise, implemented in Smalltalk-80, and their seamless integration with the procedural components, implemented in C. The object-oriented user-interface supports a new anthropomorphic model for parallel computation that eliminates much of the perceived complexity of simplify performance monitoring and debugging. The Enterprise experience highlights the strengths of object-oriented methodologies both for expressing user models and for implementing related components. KEY WORDS: Object-oriented, Smalltalk, programming environment, user-interface, animation, distributed computing. /parallel/environments/enterprise/Papers/TR94-03.ps.Z (695472 bytes) "An Experiment to Measure the Usability of Parallel Programming Systems" by Duane Szafron and Jonathan Schaeffer, Department of Computing Science, University of Alberta, Edmonton, Alberta, CANADA, T6G 2H1. {duane, jonathan} @cs.ualberta.ca Technical Report TR94-03, May 1994. ABSTRACT The growth of commercial and academic interest in parallel and distributed computing during the past fifteen years has been accompanied by a corresponding increase in the number of available parallel programming systems (PPS). However, little work has been done to evaluate their usability, or to develop criteria for such evaluations. As a result, the usability of a typical PPS is based on how easily a small set of trivially parallel algorithms can be implemented by its authors. This paper discusses the design and results of an experiment to objectively compare the usability of two PPSs. Half of the students in a graduate parallel and distributed computing course solved a problem using the Enterprise PPS while the other half used a PVM-like library of message-passing routines. The objective was to measure usability. This experiment provided valuable feedback as to what features of PPSs are useful and the benefits they provide during the development of parallel programs. Although many usability experiments have been conducted for sequential programming languages and environments, they are rare in the parallel programming domain. Such experiments are necessary to help narrow the gap between what parallel programmers want, and what current PPSs provide. /parallel/environments/enterprise/binary.RS6K.tar.Z (1452577 bytes) IBM RS6000 binary (compressed tar file) /parallel/environments/enterprise/binary.SGI.tar.Z (2894535 bytes) SGI binary (compressed tar file) /parallel/environments/enterprise/binary.SUN4.tar.Z (1070998 bytes) Sun Sparc binary (compressed tar file) /parallel/environments/enterprise/common.tar.Z (212967 bytes) common.tar.Z /parallel/environments/enterprise/Comm/ /parallel/environments/enterprise/Comm/nmp.tar.Z (305553 bytes) /parallel/environments/enterprise/Comm/pvm3.2.6.tar.Z (449973 bytes) /parallel/environments/enterprise/xenterprise.SUN4.static.Z (1325033 bytes) xenterprise.SUN4.static.Z 7th June 1994 /parallel/groups/ppc/PPC-1994-June Announcement of the PPC Meeting held on 13th June 1994.