|
Tutorial (Sep 29th, 2003 - Room A - h. 14:30-18:45)
High-Level Programming in MPI
William Gropp, Ewing Lusk
Mathematics and Computer Science Division MPI is often thought of as a low-level approach, even as a sort of "assembly language", for parallel programming. This is both true and false. While MPI is designed to afford the programmer the ability to control the flow of data at a detailed level for maximum performance, MPI also provides highly expressive operations that support high-level programming. MPI's design has also encouraged the design of parallel libraries, which can provide performance while shielding the user from the details of MPI programming. This tutorial will begin with the basics of MPI, so that attendees need not be familiar with MPI beforehand. We will focus, however, on using MPI as a high-level language by exploiting data type libraries, collective operations, and MPI-I/O. We will cover both MPI-1 and MPI-2 topics in this area, and will introduce some tools for analyzing performance of MPI programs. We will then familiarize attendees with libraries that have been built on MPI, such as ScaLAPACK, PETSc, and parallel NetCDF. We will conclude with a hands-on, "class participation" project. Using whatever laptops attendees can bring to the tutorial together with a wireless network we will supply, we will set up a parallel computer and supply attendees with copies of MPICH-2, our all-new implementation of MPI-1 and MPI-2. If all goes well, we should thus be able to have a quite capable parallel computer available for some interesting demonstrations and experiments. Both Windows and Linux laptops will be accommodated. |
|
Tutorial (Sep 29th, 2003 - Room B - h. 14:30-18:45)
Programming Environments for Grids and Distributed Computing Systems
Vaidy Sunderam
Department of Mathematics and Computer Science Platforms for high-performance concurrent computing range from tightly-coupled multiprocessors to clusters, networks of workstations, and large-scale geographically distributed metacomputing systems. Effective application programming for each type of environment can be a challenge, given the wide variability and heterogeneity of the computational resources, communication interconnects, and level of dedicated access. In this tutorial, we will review and compare programming paradigms and associated runtime systems for high-performance concurrent computing in multiple types of distributed system environments. After a brief discussion of language-based approaches, we will analyze the underlying concurrent programming models embodied in MPI and PVM, with a particular focus on their suitability in loosely coupled distributed systems and grids. The emerging paradigm shift in computational grids to a standards-based service-oriented model will then be explored, and methodologies for developing and programming grid services will be discussed. Examples of writing and deploying grid services as well as clients will be included. The tutorial will conclude by summarizing the essential features and characteristics of programming different distributed computing environments and discussing approaches to application development using a combination of programming paradigms. |
|
Invited Talk (Sep 30th, 2003 - Room A - h. 9:50-10:40)
Messaging Systems: Parallel Computing the Internet and the Grid
Geoffrey Fox
Indiana University We contrast the requirements and performance of messaging systems in parallel and distributed systems emphasizing the importance of the five orders of magnitude difference in network hardware latencies in the two cases. We note the importance of messaging in Grid and Web service applications in building the integrated system and the architectural advantages of a message based compared to a connection based approach. We illustrate these points using the NaradaBrokering system and its application to Audio-Video conferencing. |
|
Invited Talk (Sep 30th, 2003 - Room A - h. 11:00-11:50)
Petascale Virtual Machines
Al Geist
Oak Ridge National Laboratory PVM continues to be a popular software package both for creating personal grids and for building adaptable, fault tolerant applications. We will illustrate this by describing a computational biology environment built on top of PVM that is used by researchers around the world. We will then describe or recent progress in building an even more adaptable distributed virtual machine package called Harness. The Harness project includes research on a scalable, self-adapting core called H2O, and research on fault tolerant MPI. The H2O core can be configured to support distributed web computing like SETI@home, parallel virtual machines like PVM, and OGSA compliant grid environments. The Harness software is being designed to scale to petascale virtual machines. We will describe work at Oak Ridge National Lab on developing algorithms for such petascale virtual machines and the development of a simulator to test these algorithms on simulated 100,000 processor systems. |
|
Invited Talk (Oct 1st, 2003 - Room A - h. 9:20-10:10)
Future Developments in MPI
William Gropp
Mathematics and Computer Science Division
The Message Passing Interface (MPI) has been very successful at
providing a programming model for computers from small PC clusters
through the world's fastest computers. MPI has succeeded because it
successfully addresses many of the requirements of an effective
parallel programming model, including portability, performance,
modularity, and completeness. But much remains to be done with MPI,
both in terms of the performance of MPI and in the supporting the use
of MPI in applications. This talk will look at three areas:
programming models, implementations, and scalability.
|
|
Invited Talk (Oct 1st, 2003 - Room A - h. 10:10-11:00)
ASSIST High-performance Programming Environment: Application Experiences and Grid Evolution
Marco Vanneschi
Dipartimento di Informatica
ASSIST (A Software development System based upon Integrated Skeleton Technology)
is a new programming environment oriented to the development of parallel
and distributed high-performance applications according to a unified approach.
The main goals are: high-level programmability and software productivity for complex multidisciplinary applications, including data-intensive and interactive software; performance portability across different platforms,
from homogenous parallel machines and possibly heterogeneous clusters to large-scale enabling platforms and computational Grids; effective reuse of parallel and distributed software;
efficient evolution of applications through versions scalable according to the underlying technologies.
|
|
Invited Talk (Oct 2nd, 2003 - Room A - h. 9:20-10:10)
Integrating Scalable Process Management into Component-Based Systems Software
Ewing Lusk
Mathematics and Computer Science Division
The Scalable Systems Software Project is exploring the design of a systems software architecture based on separate, replaceable components interacting through publicly defined interfaces. This talk will describe how a scalable process manager has provided the implementation of the process management component of that design. We describe a general, implementation-independent definition of process management and how a scalable process management system was used to provide its implementation. |
|
Invited Talk (Oct 2nd, 2003 - Room A - h. 10:10-11:00)
Programming High Performance Applications using Components
Thierry Priol
IRISA/INRIA Computational Grids promise to be the next generation of high-performance computing resources. However, programming such computing infrastructures will be extremely challenging. Current programming practices tend to be based on existing and well understood models such as message-passing and SPMD (single program multiple data). On-going works based on Web services (OGSA) aims at programming Grids by specifying the coordination through the expression of interaction and dependencies between already deployed web services. This talk will focus on another alternative that aims at programming Grids with software components. With such an approach, it will be possible to install components on remote resources and to express interaction between components. This presentation will describe work in progress to develop a component-based software infrastructure, called Padico, for computational Grids based on the CORBA Component Model (CCM) from the Object Management Group (OMG). The objective of Padico is to offer a component model targeting multi-physics simulations or any applications that require the coupling of several codes (simulation or visualisation) within a high-performance environment. Two issues will be addressed during the talk: encapsulation of codes into components and runtime support for efficient communication between components within a Grid. This talk will look at the GridCCM component model, an extension to the CCM model to address the encapsulation of SPMD parallel codes into a component and a communication framework, called PadicoTM, able to efficiently support various communication runtime and middleware in an heterogeneous networking environment. |