home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.parallel,uva.cs.mentat
- Path: sparky!uunet!ukma!gatech!hubcap!fpst
- From: mentat@uvacs.cs.Virginia.EDU (mentat project)
- Subject: Mentat 2.0 Available
- Message-ID: <1993Jan28.151146.26063@murdoch.acc.Virginia.EDU>
- Originator: grimshaw@elf.cs.Virginia.EDU
- Keywords: Object-oriented, parallel, C++
- Sender: usenet@murdoch.acc.Virginia.EDU
- Organization: University of Virginia Computer Science Department
- Date: Thu, 28 Jan 1993 15:11:46 GMT
- Approved: parallel@hubcap.clemson.edu
- Lines: 153
-
-
- Mentat: Easy-to-use Object-Oriented Parallel Processing
-
- We are pleased to announce the release of Mentat v2.0 - a parallel
- object-oriented computing environment based on C++ developed at the
- University of Virginia, available FREE via anonymous FTP.
-
- ---- What is Mentat? ----------
-
- Mentat is an object-oriented parallel processing system designed to
- directly address the difficulty of developing architecture-independent
- parallel programs. The fundamental objectives of Mentat are to (1) provide
- easy-to-use parallelism, (2) achieve high performance via parallel
- execution, and (3) facilitate the portability of applications across a
- wide range of platforms. The Mentat approach exploits the object-oriented
- paradigm to provide high-level abstractions that mask the complex aspects of
- parallel programming, including communication, synchronization, and
- scheduling, from the programmer. Instead of managing these details, the
- programmer concentrates on the application. The programmer uses application
- domain knowledge to specify those object classes that are of sufficient
- computational complexity to warrant parallel execution.
-
- Mentat combines a medium-grain, data-driven computation model with the
- object-oriented programming paradigm and provides automatic detection
- and management of data dependencies. The data-driven computation model
- supports high degrees of parallelism and a simple decentralized control,
- while the use of the object-oriented paradigm permits the hiding of much
- of the parallel environment from the programmer. Because Mentat uses a
- data-driven computation model, it is particularly well-suited for message
- passing, non-shared memory architectures.
-
- There are two primary aspects of Mentat: the Mentat Programming Language
- (MPL) and the Mentat run-time system. The MPL is an object-oriented
- programming language based on C++ that masks the difficulty of the
- parallel environment from the programmer. The granule of computation
- is the Mentat class member function. The programmer is responsible for
- identifying those object classes whose member functions are of sufficient
- computational complexity to allow efficient parallel execution. Instances
- of Mentat classes are used exactly like C++ classes, freeing the programmer
- to concentrate on the algorithm, not on managing the environment. The
- data and control dependencies between Mentat class instances involved
- in invocation, communication, and synchronization are automatically
- detected and managed by the preprocessor and run-time system without
- further programmer intervention. By splitting the responsibility between
- the compiler and the programmer, we exploit the strengths and avoid the
- weaknesses of each. The underlying assumption is that the programmer can
- make better decisions regarding granularity and partitioning, while the
- compiler can better manage synchronization. This simplifies the task of
- writing parallel programs, making parallel architectures more accessible
- to non-computer scientist researchers.
-
- The run-time system supports parallel object-oriented computing on top of
- a data-driven, message-passing model. It supports more than just method
- invocation by remote procedure call (RPC). Instead the run-time system
- supports a graph-based, data-driven computation model in which the invoker
- of an object member function need not wait for the result of the computation,
- or for that matter, ever receive a copy of the result. The run-time system
- constructs program graphs and manages communication and synchronization.
- Furthermore, the run-time system is portable across a wide variety of MIMD
- architectures and runs on top of the existing host operating system. The
- underlying operating system must provide process support and some form of
- inter-process communication.
-
- Mentat has been distributed to over 50 sites in the US and abroad, and
- has been successfully applied to a wide-variety of real-world problems.
- We invite new users who wish to learn more about Mentat to write to us
- for documentation at
-
- mentat@Virginia.EDU
-
- The Mentat system is available FREE via anonymous FTP. The systems
- supported in this release are the Sun 3, the Sun 4, Silicon Graphics
- Iris, and the Intel iPSC/860 (gamma).
-
- ---- Brief synopsis of this release ----------
-
- Mentat Runtime System
- - more runtime error reporting
- - faster kernel
- - more efficient use of regular objects
- - new utilities and options
-
- MPLC compiler
- - bug fixes, much more robust
- - select/accept construct supported
- - create() may be overloaded by programmer
- - single inheritance supported for Mentat classes
- - more error checking
-
- Application support
- - Mentat version of matrix and vector arithmetic class
- - General C++ version of array and vector classes
-
- Supported Platforms
- - Sun 4 (Sparc)
- - Sun 3
- - Silicon Graphics Iris
- - Intel iPSC/860 (requires Sun-based C++ cross-compiler)
- - Intel iPSC/2 is available only by request
- - RS/6000, CM-5, Paragon expected second quarter '93.
-
- Documentation
- - Improved users manuals
- - New tutorial with "load-and-go" starter programs
- - On-line manual pages
-
-
- Future directions:
- Our plans for Mentat fall into four categories: applications
- development, system enhancement/maintenance, platform expansion,
- and support for heterogeneous "meta-systems."
-
- Applications development:
- We are collaborating with applications scientists in a wide
- variety of areas to test ease of use and performance. We invite
- participation in this effort. A partial list includes:
- A parallel database management system.
- A general purpose, extensible, stencil algorithm class, used for
- image convolution
- iterative PDE solver
- DNA & protein sequence comparison.
- VLSI automatic test pattern generation.
- Genetic algorithms.
- Minimal Steiner trees.
- 2D electromagnetic finite element method.
- Ray tracing.
- This list represents a diverse set of applications. Both
- functional and data parallelism is being exploited, often in
- the same application.
-
- System enhancement/maintenance:
- This includes not only fixing bugs and improving performance,
- but changing the language to better support applications programmers.
- In particular changes that ease the cognitive burden whenever possible.
-
- Platform expansion:
- A new generation of parallel machines are here. We are currently
- testing a version of Mentat on the CM-5, and we will port to the
- Paragon as soon as it is available for general use. We expect our
- support of high-end workstations to expand. Our next targeted platform
- is the IBM RS/6000.
-
- Meta-systems support:
- Applications portability is only the first step. Our objective is
- to support (not just enable) application execution on heterogeneous
- systems comprised of both heterogeneous workstations and parallel
- processors. Our early work with SGI's and Sun IPC's indicates that
- problem decomposition and scheduling are more important than ever. We
- expect heterogeneous workstation support to be part of the standard
- distribution by Spring. For more information on this aspect of the
- project see University of Virginia, Computer Science TR CS-92-43.
-
-
-