Table Of ContentTOOLS AND ENVIRONMENTS FOR
PARALLEL AND DISTRIBUTED
SYSTEMS
The Kluwer International Series in
Software Engineering
Series Editor
Victor R. Basili
University of Maryland
College Park, MD 20742
Also in the Series:
FORMAL SPECIFICAn ON TECHNIQUES FOR ENGINEERING
MODULAR C PROGRAMS by TAN Yang Meng
The Kluwer International Series in Software Engineering
addresses the following goals:
*
To coherently and consistently present important research topics
and their application(s).
*
To present evolved concepts in one place as a coherent whole,
updating early versions of the ideas and notations.
*
To provide publications which will be used as the ultimate
reference on the topic by experts in the area.
With the dynamic growth evident in this field and the need to
communicate findings, this series provides a forum for information
targeted toward Software Engineers.
TOOLS AND ENVIRONMENTS FOR
PARALLEL AND DISTRIBUTED
SYSTEMS
Edited
by
AmrZaky
Naval Postgraduate School
Monterey, Califomia, USA
Ted Lewis
Naval Postgraduate School
Monterey, Califomia, USA
SPRINGER SCIENCE+BUSINESS MEDIA. LLC
ISBN 978-1-4613-6849-6 ISBN 978-1-4615-4123-3 (eBook)
DOI 10.1007/978-1-4615-4123-3
Library of Congress Cataloging-in-Publication Data
A C.I.P. Catalogue record for this book is available
from the Library of Congress.
Copyright @ 1996 by Springer Science+Business Media New Y ork
Originally published by Kluwer Academic Publishers in 1996
Softcover reprint ofthe hardcover 1st edition 1996
All rights reserved. No part of this publication may be reproduced, stored in
a retrieval system or transmitted in any form or by any means, mechanical,
photo-copying, recording, or othelWise, without the prior written permission of
the publisher, Springer Science+Business Media, LLC.
Printed on acid-free paper.
ero Mom, 'Eiman, 9{egatf, anti
Zeyatf
.9Lmr ZaRy
eroMo{{y
eretfLewis
TABLE OF CONTENTS
PREFACE ix
OVERVIEW 1
PART I -DEVELOPMENT TOOLS AND ENVIRONMENTS
Introduction 5
1. A Visual Approach to Distributed Programming
Keng Ng, Jeff Kramer, Jeff Magee and Naranker Dulay 7
2. ANNAl: An Integrated Parallel Programming Environment for
Multicomputers
Christian Clemenfon, Akiyoshi Endo, Josef Fritscher,
Andreas Maller, Roland Rahl and Brian Wylie 33
3. Bulk Synchronous Parallel Computing -A Paradigm for
Transportable Software
Thomas Cheatham, Amr Fahmy, Dan Stefanescu and Leslie Valiant 61
4. Performance and Scalability Issues in the Design and Implementation
of A Parallel Programming Environment
David Feldcamp and Alan Wagner 77
PART 11-PERFORMANCE PREDICTION AND ANALYSIS
Introduction 103
5. Performance Prediction of Dynamic Structures with N-MAP
Alois Ferscha and James Johnson 105
6. Performance Analysis of Large Scale Parallel Applications
Olav Hansen 129
7. Efficiency Evaluation of PVM 2.x, PVM 3.x, P4, EXPRESS and
LINDA on A Workstation Cluster Using the NAS Parallel
Benchmarks
Gabrielle Kotsis and Florian Sukup 149
Vlll
m .
PART DEBUGGING TOOLS
Introduction 173
8. Accomodating Heterogeneity in A Debugger -
A Client-Server Approach
Robert Hood and Doreen Cheng 175
9. Efficient Detection of Unstable Global Conditions Based
on Monotonic Channel Predicates
Vijay Garg, Craig Chase, J. Roger Mitchell, Richard Kilgore 195
PART IV . LESS TRADITIONAL APPROACHES
Introduction 227
to. A Formal Semantics and An Interactive Environment for SISAL
Isabelle Attali, Denis Caromel and Andrew Wendelbom 229
11. Parallel High-Performance Matrix Computations in the MaTRiX++
System
Tim Collins and James Browne 257
12. Transparent Object Distribution and Remote Inheritance
Thomas Wolff 279
INDEX 305
Preface
This collection of papers represents an interesting sample of the cmrent research in
progrnm development tools for parallel and distributed processing. The most impor
t.'Ult feature about this collection is its versatility. Parallel and distributed software has
not reached yet a st.'lge where a single architecture, language or computing paradigm
can claim some sort of dominance. Hence, the need exists for propagating all sorts of
serious ideas, studies, and designs. The papers in this volume provide handpicked
samples of sound ideas, laborious studies, and elaborate designs.
The papers of this collection are based on those presented in the "Program Develop
ment Tools and Environments for Parallel and Distributed Systems" minitrack of the
28'th Hawaii International Conference on System Sciences (HICSS 28). Space limi
t.'ltions and the synergy generated by the discussions that took place in the 'Birds of the
Feather' session of the above-mentioned minitrack encouraged us to seek a medium to
make a longer updated version of this collection available to the interested researchers
and practitioners in the area of software development for parallel and distributed sys
tems. We make no claim about the completeness of this collection: several huge vol
umes would be needed to account for every tool or environment that is currently being
developed. Also, we make no apology about the concentration of the papers in one
sub-area or ,Ulother: Our only criterion was qUality.
To break this set of papers into groups was not an easy task, yet we undertook it and
we hope that it will be helpful to the reader. The features along which one can classify
these papers are by no means unique. We strived not to overclassify the papers, and
settled on dividing them into four groups according to their function. Since several
papers attack more than one issue at a time, we placed these in the group which we felt
(in our subjective opinion) would describe their most significant purpose. We added a
book overview to tie in the papers together, and preceded every group of papers by a
brief summary.
We hope that the research embodied in this collection will be informative and thought
provoking for the readers. We hope that you will enjoy it as much as we did.
Acknowlegments
We want to thank the authors who made this collection possible. We also want to
thank Dr. Victor Basili, the series editor, for his useful comments which tremendously
improved the present.'ltion. Scott Delman of Kluwer Academic Publishers was always
patient and helpful. Last but not the least, we thank our student Joao Tavares for his
help with preparing the index.
Amr Zaky, Ted Lewis
Monterey, California
TOOLS AND ENVIRONMENTS FOR
PARALLEL AND DISTRIBUTED
SYSTEMS
Overview
Developing correct and efficient software is far more complex for parallel and distrib
uted 1 (P/D) systems than it is for sequential processors. Some of the reason for this
added complexity are:
Lack of a universally acceptable P!D programming paradigm: There is not a
single class of parallel architectures that is efficient for the majority of applica
tions. There is not a single programming language that can be looked at as a de
facto standard. A potential software developer will have to choose between
using an applicative programming language (e.g. SISAL) promising clean
semantics and consequently a shorter development time, or a more traditional
imperative language (e.g. HPF) where concurrency can be expressed by annota
tions or can be extracted by tools. Assuming the latter choice, the developer will
have to decide whether to use a shared-memory or a message-passing program
ming model, and the choice tree keeps forking (e.g. data-parallel versus large
grained dataflow). The scene may be further complicated by trends that can be
deemed useful in designing sequential software and hence deserve a trial at the
parallel arena such as object-oriented programming, and the use of application
specific software design tool-kits. And while certain solutions might eventually
be deemed inefficient, yet the lack of a universal paradigm will still exist. Hence
arises the need for tools (for all paradigms proven promising) that can shorten
the development cycle and/or can predict the performance of the developed soft
ware. Finally, it is worth mentioning that the one computing paradigm with
loyal followers- vector processing- owes its hold on a sizable number of devel
opers with interests in physical and mathematical sciences to the mathematical
heritage of differential equations and linear algebra more than its does owe to
parallel programming technology. 2
The criticality of achieving high performance: There are several approaches
to defining performance, but informally all of them are concerned with execution
speed. The great majority of P/D software developers are interested in having
their applications be responsive or fast in some sense or the other3. In fact, the
same could be said about sequential software: developers have tried to improve
1. We use the term "distributed systems" to refer to an integrated applica
tion decomposed into components rather than a set of independent appl
cations that interact together for one perpose or the other.
2. However, no one can deny that vectorizing compilers and mathematical
libraries (e.g. LAPACK) contribute to the success story.