NHSE LogoNHSE Software Catalog


Enterprise

url
http://web.cs.ualberta.ca/~enter/

title_line
template-based parallel programming environment

abstract
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 since the parallelism is expressed graphically and is
independent of the code. The system automatically inserts the code
necessary to correctly handle communication and synchronization,
allowing the rapid construction of distributed programs. This helps
bridge the complexity gap between distributed and sequential
software.

Enterprise programs are written in a sequential programming
language (C) that is augmented by new semantics for procedure calls
that allows them to be executed in parallel. Users do not deal with
low-level programming details such as marshalling data,
sending/receiving messages and synchronization. Instead, Enterprise
inserts all of the necessary communication protocols automatically
into the user's code. Since the user is often the best judge of how
parallelism can be exploited in a particular application, Enterprise
does not automatically parallize a program. It provides the user with a
high-level mechanism for specifying the parallelism.

Most large-grained parallel programs make use of a small number of
regular techniques, such as pipelines, master/slave processes, divide
and conquer, etc. In Enterprise, the user specifies the desired
technique at a high level by manipulating icons using the graphical
user interface. The user-written code that implements the parallel
procedure is independent of the parallelization technique selected
(although the code generated by Enterprise certainly is not). The
de-coupling of the procedure that is to be parallelized and the
parallelization technique allows applications to be easily adapted to a
varying number and type of available processors without changing
user-written code.

contact
enter@cs.ualberta.ca

keywords
visual programming; parallel programming environment


nhse-librarian@netlib.org