by Marco Vanneschi
The Parallel Architectures Subproject of the CNR Strategic Project on Informatics and Parallel Computing studies general purpose massively parallel computer systems with distributed memory multiprocessor architectures. Research issues include prototyping and evaluation of new physical and abstract parallel architectures, of efficient and machine-independent programming tools, and of highly parallel operating systems and run-time supports.
Recently there has been much interest in parallel computing, both academically and industrially. New massively parallel (MP) architectures, as well as new languages and methodologies for parallel programming, have been defined and implemented. It is now accepted that "regular" architectures, composed of up to thousands of homogeneous VLSI processing nodes, can give comparable or better performances than traditional supercomputers and at substantially lower costs (see Figure 1).
Because of its generality with respect to all the typical paradigms of parallel processing, the distributed memory multiprocessor (DMM) model is widely considered the best candidate for the next generation of parallel computers, partly because it should cover the range from personal computing to supercomputing in a scalable manner. Owing to the existence of several commercial DDM machines, the cost effectiveness and scalability advantages of this class of parallel computers have already been demonstrated in several, specific application areas.
However, the widespread diffusion of parallel machines is still limited. The main reason is the lack of programmability and of a powerful programming model which can be efficiently implemented on existing parallel machines. Current languages and development tools are strongly machine-dependent. Traditional techniques for automatic parallelization cannot fully exploit the characteristics of MP computers. Commercial programming systems are lacking models and tools that could allow the "non expert" user to identify (at least approximately) the performance range of his/her application and to prove program correctness easily.
Therefore, the next step must necessarily be general purpose, MP computers, i.e. able to support a wide range of programming languages and applicative paradigms in a fully machine-independent way, thus achieving modularity and portability across several architectural platforms. As in sequential computing environments, "general purpose" also means guaranteeing certain performance values without the direct participation of the programmer during the complex development and parallel implementation stages. To achieve these goals, original solutions are needed for several difficult research problems, and this implies substantial changes in the way in which multiprocessor machines are designed and utilized (Figure 2).
The goal of the CNR Subproject on Parallel Architectures is thus to give a substantial contribution to national industry in the construction and utilization of the next generation of parallel computers.
The main goal of MIMD parallel machines is the efficient exploitation of medium-fine grain parallelism in applications and/or in support for programming languages and paradigms. Typical problems to be solved are modular and parallel decomposition of programs, program optimization through successive refinement levels, processes to processors, and the optimization of resource usage: load balancing, exploitation of communication locality, balancing communication vs internal computation time, management of function/data replication and/or partitioning, management of dynamic control and data structures. Solving such problems requires substantial effort on all the issues which typically regard computing systems architecture and design.
By exploiting VLSI technology intensively, machine architecture has to be defined to provide efficient and flexible support to mechanisms for: concurrency, local and non local communication, memory management and protection, and scheduling, all necessary for the effective and robust implementation of a general purpose abstract machine. With such a machine, static and dynamic tools for the parallel support of machine-independent programming languages, with both explicit and implicit parallelism, can be defined and implemented.
New architectures and methodologies are required for the design of highly parallel operating systems that can efficiently support multiusers in a "stand-alone" manner. Performance evaluation, program characterization and it monitoring, to be more strongly integrated with architecture and programming, play a fundamental role in defining and implementing design strategies.
Figure 3 shows the integrated platform of research products, from the programming environment to the target machines. A more detailed outline of the relationships between architectural and development tools is shown in Figure 4.
The research products developed within the project with a market trend for industrial transfer are the following: GEM SYS: Architectures and Operating Systems for General Purpose Parallel Machines GEM TOOLS: Programming Languages and Tools for General Purpose Parallel Machines DISC-GSPN: Environment for Distributed-C Programming and Performance Analysis PARMON: Monitoring and Load Characterization of Parallel Systems LISPACK/SIMCOR: Parallel Testbed for Performance Evaluation PARCAD: Parallel Simulation of VLSI Systems
A further product is oriented towards scientific and technical training in the area of parallel systems:GEM METH: Parallelizing and Mapping Methodologies for General Purpose Parallel Machines