[comp.parallel] Graphical CASE tools for parallel programming

sara@geovax.edinburgh.ac.uk (05/01/91)

Dear all,

A few weeks ago I posted a query about graphical CASE tools for parallel 
programming.  A number of people asked me to post responses to the net, so 
here they are, preceded by the original request.
--------------------------------------------------------------------------
The query:
----------
I am looking for pointers to graphically oriented CASE tools for parallel
programming; I would like to hear about any such tools irrespective of 
languages/hardware they produce code in/for, but I'm especially interested 
in distributed memory, particularly transputer based machines.  However I am
also interested to know of anything that's available for shared memory machines 
in particular Sequent and multi-processor VAX.  I would prefer to know about
software that is actually a commercial product, or will be a commercial
product, but would also be interested to hear of high quality "research" 
software.
---------------------------------------------------------------------------
The responses:
--------------

From: wardrb@edu.utexas.cs (Richard Byron Ward)
Organization: U. Texas CS Dept., Austin, Texas

UT - Austin has a parallel programming system based on the dataflow model
called CODE.  It runs on Xwindows and produces code to run on a Cray or a
Sequent.  I believe it outputs either ADA or Fortran(you pick).  For more
info, you might try contacting John Werth at uunet!cs.utexas.edu!jwerth.

Rick
------------------------------------------------------------------------
Sender: lauwerin <lauwerin%almaden%com.ibm@com.ibm.almaden>

At the Esat Laboratory of the K.U.Leuven, Belgium, we developed a
graphical CASE tool for programming Transputer networks as well as DSP
multiprocessors, called GRAPE (GRAphical Programming Environment). It
is not (yet ?) a commercial product.

Short feature list:
- Tools for the specification of the application algorithm:
   . Hierarchical graphical editor for the highest levels in
     programming hierarchy
   . Textual editor for the lowest levels of detail
   . Possibility to employ libraries both on the graphical and textual
     level
   . Automatic code generation for DSP filters
   . Provisions to hook up user-supplied code generators
- Tools for the specification of the target hardware (interconnection
network, bandwidth of interconnection links, target processor, ...).
Current target microprocessors: Inmos T4 and T8 series, Motorola
DSP56001.
- Tools for the compilation:
   . Assignment of tasks to nodes. Currently done manually; an
     automatic tool is in development.
   . Synthesis of reconfiguarble and custom networks. Addition of
     routing primitives (ex. for the Transputers, all multiplexers and
     demultiplexers for mapping multiple OCCAM channels on a single
     hardware link are generated by this tool).
   . Scheduling of tasks assigned to a node.
   . Actual compilation and linking.
- Tools for debugging and monitoring (in development). They will allow
for animating the execution of the application algorithm on the
hierarchical graphical specification made by the programmer. The
workload will be monitored on the specification of the target
hardware.
- Tools for evaluating the application. To change parameters of the
application at run time, pop-up front pannels with slider bars, radio
buttons, etc. are generated. The interactions of the user are
communicated through the interconnection network towards the
destination node in real-time.

More details can be found in:
- Rudy Lauwereins, Marc Engels, Jean Peperstraete, Eric Steegmans,
Johan Van Ginderdeuren, "GRAPE: A CASE Tool for Digital Signal Parallel
Processing", IEEE ASSP Magazine, April 1990, pp. 32-43.
- Marc Engels, Rudy Lauwereins, Jean Peperstraete, "A Rapid
Prototyping Environment for Digital Signal Processing Systems based on
Multiprocessors", to appear in IEEE Design & Test, May 1991.

Contact address:
Rudy Lauwereins
K.U.Leuven - ESAT
Kard. Mercierlaan 94
B-3001 Heverlee, Belgium
Tel. +32-16-22 09 31
Fax. +32-16-22 18 55
email: lauwereins@esat.kuleuven.ac.be
----------------------------------------------------------------------------
From: wpa@com.mcc (Bill Alexander)

A company here in Austin called SES sells a product called ESP for
paralleizing Fortran programs.  It is based on a nice interactive graphical
interface implementing human-in-the-loop dependency analysis.
I am not sure what its model of the hardware platform is.

  SES
  1301 West 25th Street, Suite 300
  Austin TX 78705-4236
  USA
---------------------------------------------------------------------------
From: sessun!neuse@net.UU.uunet (Doug Neuse)

SES has developed some software technology called E/SP that helps
engineers convert sequential programs to parallel programs.  It goes
further than standard parallel compiler technology.  It also displays
the code and data dependencies on a workstation screen as a collection
of directed graphs and allows the engineer to use his knowledge of the
program to manipulate the parallel structure, thereby obtaining
significantly greater performance than that achievable by an ordinary
parallel compiler.  This technology has been used in a commercial
product marketed by Concurrent Computer Corporation.

Related projects called CODE and ROPE are in progress at The
University of Texas at Austin.  You should talk to J.C. Browne
(browne@cs.utexas.edu) about those projects.

Doug Neuse				    Ph:	    (512) 474-4526
VP, Simulation Software Products
Scientific and Engineering Software, Inc.   FAX:    (512) 479-6217
1301 West 25th Street, Suite 300	    Email:  neuse@ses.com
Austin, Texas 78705				or: ...!uunet!sessun!neuse
----------------------------------------------------------------------------
From: adamb@edu.utk.cs
Organization: University of Tennessee, Knoxville - CS Department

We are working on a programming tool which might interest you.  Here
is the abstract describing the project.  The PVM system is currently
available from netlib and HeNCE is still under development.

A Programming Environment for a
Heterogeneous Network of Parallel Machines

    This work was supported in part by the
    Applied Mathematical Sciences subprogram
    of the Office of Energy Research, U.S.
    Department of Energy, under Contract
    DE-AC05-84OR21400 and the National Science Foundation Science and
    Technology Center Cooperative Agreement No. CCR-8809615.

Adam Beguelin and Jack J. Dongarra
Oak Ridge National Laboratory and University of Tennessee

G.A. Geist
Oak Ridge National Laboratory

Robert Manchek 
University of Tennessee

V. S. Sunderam 
Emory University

HeNCE is a parallel programming paradigm and tool which supports the
creation, compilation, execution, debugging, and analysis of parallel
programs for a heterogeneous group of computers.  The HeNCE programmer
specifies the parallelism of a computation by drawing a graph
describing the dependencies between user defined procedures.  HeNCE
will then automatically execute these procedures over a user defined
collection of machines on some network.  Machines in the network may
themselves be of radically differing parallel or serial architectures.
Different versions of a procedure may exist for different
architectures.  HeNCE executes the appropriate version of a procedure
for a chosen target machine architecture.  HeNCE uses a standard
procedural interface which facilitates the integration of existing
sequential code into a parallel HeNCE program.  HeNCE maps procedures
to machines based on a user defined cost matrix.  The HeNCE user
dynamically configures a parallel collection of machines, referred to
as a parallel virtual machine, on which the HeNCE program is to be
run.  During execution, HeNCE can collect trace and scheduling
information which can be displayed in real time or stored to be
replayed later as an animated sequence.

The HeNCE software is built on a facility called PVM (Parallel Virtual
Machine).  PVM is a software package that allows the utilization of a
heterogeneous network of parallel and serial computers as a single
computational resource.  PVM provides mechanisms for configuring
a virtual machine on a network, initializing processes on this network
and communicating among these processes.  PVM is a lightweight package
intended for user installation.  Nearly any Unix or Unix-like
machine can be used as a processor in a virtual machine as long as
the user has a login on the machine and it is accessible over a network.

An interactive graphical tool is provided for using HeNCE and related
PVM facilities.  The tool can be used to create, compile, execute, and
debug HeNCE programs.  The tool is also used to configure and monitor
virtual machines.   HeNCE and PVM facilities also have textual
interfaces so the graphical interface is not essential.  However, the
HeNCE tool provides a comprehensive interface which eases the use of
the system.

-- 
Dr. Adam Beguelin, adamb@cs.utk.edu UT 615-974-8295 ORNL 574-4158, Fax 974-8296
Department of Computer Science		Mathematical Sciences Section 
University of Tennessee	      		Oak Ridge National Laboratory 
Knoxville, TN 37996-1301      		Oak Ridge, TN 37831-8083     

------------------------------------------------------------------------------
From: Shakil Waiz Ahmed <ahmed-shakil@edu.YALE.CS>

My thesis is concerned with a higher-level programming environment
that aids in the design and development of parallel software.  Such a
system would not only ease the transition phase of a programmer from
the world of sequential to the world of parallel programming, but more
importantly, isolate much of the ``administrative'' effort (the lower
level details of parallel programming) away from the programmer.  In
addition, it aids in the conceptual task, by providing support for
particular coordination frameworks.  Through means of a
program-describing database, the system maintains semantic as well as
syntactic information on programs being developed.  This information
is used for guiding program development, for checking consistency, for
documentation purposes, for providing optimization information to the
compiler, for benchmarking utilities, and for graphical monitoring.  A
prototype system based on the Linda coordination language.  The thesis
will include a real system that will be available for use in the
parallel programming community.

The backbone of the system is the Linda Program Builder (LPB).
C-Linda is a simple and general, portable and efficient parallel
programming system.  The LPB is an epoch-based (Epoch is a
multi-window version of emacs that runs under X-windows), menu-driven
editor that supports incremental development of explicitly parallel
C-Linda programs.  Accumulated parallel programming experience has
made it clear that a small number of well-defined programming
paradigms underlie most parallel programs.  Each of these paradigms
have families of implementations.  The basic features of the
implementations can be abstracted into templates which create program
text under the guidance of the programmer.

The LPB does more than merely save time and effort in the construction
of parallel programs.  For every program it constructs, the LPB
develops a program-describing database.  This database can be used for
checking consistency, for guiding program development, for documenting
code, and for providing semantic information to other tools in the
environment.

The LPB also "understands" a program in a way that a compiler never
can.  The Linda coordination framework it constructs is understood to
be the implementation of a particular paradigm.  A compiler only sees
a collection of processes and tuple-manipulation operations, but the
LPB can see a master-worker program, clearly identifying the master
and worker processes, and the various tuples that are used for task
descriptions and results.

This knowledge about the program is valuable in a number of ways.  It
is fed to the compiler for producing better code, it feeds semantic
information to the Tuplescope graphical monitoring tool, and it will
provide the necessary data to a yet-to-be-developed benchmarking
utility.  The LPB's superior knowledge lays the foundation for an
evolving expert-database approach to intelligent program development.

A prototype LPB has already been implemented.  The final system will
incorporate the LPB into the larger parallel programming environment
and involve extensive interaction with each of the tools in the
environment.

Shakil Ahmed
Dept. of Computer Science
Yale University
New Haven, CT

ahmed-shakil@cs.yale.edu
ahmed-shakil@yalecs.bitnet
-------------------------------------------------------------------------------
From: Adrian J. West <ajw@uk.ac.man.cs>

Hello. In reply to your query, we have a tool we are developing here,
as a graphical front end to the parsifal Transputer sytem at
Manchester. It is being built so that we can evaluate a graphical
environment for Transputer like machines. If you are interested in the
area then there is a paper in the OUG-12 proceedings, " high level 
software environment for Transputer based systems". If, on the other hand
you just want a tool to use now, that will make your life easier, then I
wish you all the best. Let me know if you find anything, or even if you end
up deciding to build one yourself. That would undoubtedly be of interest.
	
		Adrian West
		(Computer Science,  U. Manchester)
------------------------------------------------------------------------------
From:     Dr Nasser Sherkat <ns@uk.ac.trent.doc>

I am intrested in such tools and basically see the solution in integration
of Timed-PetriNets with Ward and Mellor based type of CASE tool.
Have not got any existing commercial product at this stage but working
on development of a Timed PetriNet tool (Not integrated with any other
CASE tool yet).
I would be surprised to find that there is such a commercial tool in
the market today.
May be Software Tools 91 Wembly 11-13 June will have something.
There was not anything last year in that exhibition.
Please let me know if you find any products.  I'd like to hear from
you to see if we have got any common points of interrest in research.
------------------------------------------------------------------------------
From: segall@edu.rutgers.caip (Ed Segall)

Regarding your survey of parallel CASE tools:

I have developed a system for interactive graphical control and
display of parallel programs, but not for interactive graphical
programming.  I can tell you more about it if you're interested.

--Ed
--
uucp:   {...}!rutgers!caip.rutgers.edu!segall
arpa:   segall@caip.rutgers.edu
-----------------------------------------------------------------------------
From: Ed Hart <harter@uk.ac.pcl.sun>
       ........................................................

                  THE TRANSIM AND GECKO TOOLSET

           A Prototyping Package for Transputer Systems

                   Polytechnic of Central London

       Most large structures - ships, aeroplanes,  buildings  -
       are  not designed from scratch without preparing a model
       first, and the same approach can be  taken  in  parallel
       computing.    The  Transim/Gecko  combination  of  tools
       enable visualisation and  performance  evaluation  of  a
       transputer system before the full code is written or the
       hardware put together.

       The toolset comprises a simulator (Transim) and a graph-
       ical  front-end  (Gecko).   Transim  will  simulate  the
       behaviour of an application  program  running  on  Inmos
       transputers;  simulating a single process or an applica-
       tion running on a large network.  The input being a com-
       plete   description  of  the  hardware  -  link  speeds,
       timeslice periods, network topology, etc., plus an algo-
       rithm  description  section  designed  to facilitate the
       process of transferring a mental picture of an algorithm
       onto paper.  The output of the simulator can be fed into
       Gecko, which will then build an animated diagram of  the
       network,  in  colour,  showing the activity of each pro-
       cess, cpu and link as it varies in time  throughout  the
       execution  of the algorithm.  Parallel execution, alter-
       nation, channel communication, timeslicing,  priorities,
       interrupts,  concurrent  operation  of transputer links,
       effects of external memory and  so  on  are  taken  into
       account.   A special facility is provided for experimen-
       tation in the mapping of processes to processors.

       Written in: C language.

       Running on: Sun  3:  colour  or  monochrome  or  without
            graphics  if Transim is used alone.  IBM PC or com-
            patible: Transim only, no graphics.

       Contact: Ed Hart
            Centre for Parallel Computing,
            115 New Cavendish Street, London, W1M 8JS, UK.
            Email: harter@uk.ac.pcl.sun
            Telephone: 071-911 5000 ext 3659
            Fax: 071-911 5089
            Answerphone: 071-911 5099

       Price: Sun: 1000 pounds + VAT, Transim alone 800 pounds
	    + VAT, academics: 50% discount. IBM: Transim alone
	    300 pounds, no discounts.
       ........................................................
------------------------------------------------------------------------------
From:           "Phillip M. Hallam-Baker" <HALLAM@UK.AC.OX.PH.V1>

I am just about to begin the design of a graphical programming tool building
tool. The primary motivation being to support a familly of custom languages 
which we have designed at Oxford for the design of the Data Aquisition system
of the ZEUS detector. I would be interested in hearing about any tools which
you find out about. (Save me the bother of writting more!)

Phill M. Hallam-Baker
---------------------------------------------------------------------------
---------------------------------------------------------------------------
End of responses
----------------

>{8-)                       -------                       (-8}<
Sara Hopkins, Department of Geography, University of Edinburgh,    
Drummond Street,    EH8 9XP,     Edinburgh,     Scotland,    UK
Tel: (031)-650-2662,          JANET email: sara@geovax.ed.ac.uk
>{8-)                       -------                       (-8}<

-- 
=========================== MODERATOR ==============================
Steve Stevenson                            {steve,fpst}@hubcap.clemson.edu
Department of Computer Science,            comp.parallel
Clemson University, Clemson, SC 29634-1906 (803)656-5880.mabell