This book chapter appears in:
Mentat is an object-oriented, control-parallel programming system designed to address three problems: the difficulty of writing parallel programs, the difficulty of acheiving portability of those programs, and the difficulty of exploiting contemporary heterogeneous environments. The original design objectives of Mentat were to provide:
Mentat is an object-oriented parallel processing system designed to address three problems that face the parallel computing community, the dificulty of writing parallel programs, the dificulty acheiving portability of those programs, and the dificulty exploiting contemporary heterogeneous environments. Writing parallel programs by hand is more dificult then writing sequential programs. The programmer must manage communication, synchronization, and scheduling of tens to thousands of independent processes. The burden of correctly managing the environment of time and energy. If parallel computing is to become mainstream it must be made easier for the average programmer. Otherwise, paralle computing will remain relegated to specialized applications of high value where the human investment required to prallelize the application can be justied.
A second problem is that once a code has been implemented on a particulr MIMD architecture, it is often not readily portable to other platforms; the tools, techniques, and library facilities used to parallelize the application may be specific to a particular platform. Thus, considerable effort must be re-invested to port the application to a new architecture. Given the plethora of new architectures and the rapid obsolescence of existing architectures, this represents a continueing time investment. Once can view the different platforms as one dimension of two dimensional space, where the other dimension is time. One would like the implementation to be able to cover a large area in this space in order to amortize the development costs.
Finally there is a heterogeneity. Todays high performance computation environments have a great deal of heterogeneity. Many users have a wide variety of resources available , traditional vector supercomputers, parallel supercomputers, and different high performance workstations. The machines may be connected together with a high speed local connection such as FDDI, ATM, or HIPPI, or they may be geographically distributed. Taken together these machines represent a trememndous aggregate computation resource.
Mentat was originally designated to address the rst two of these issues, implementation difficultyy and portability. The primary Mentat design objectives were to provide easy-to-use parallelism, high performance via parallel execution, system scalability from tens to hundreds of processors, and applications portability across a wide range of platforms. The premise underlying Mentat is what writing parallel programs need not be more dificult then writing sequential progrmas. Instead, it is a lack of appropriate abstractions that has kept parallel architectures dificult to program, and hence, inaccessible to mainstream, production system.
[Overview] [Documnetation] [Mentat Team] [Distribution] [Sample Programs] [Slides] [New Features]
If you have any questions about Mentat please feel free to e-mail us at mentat@virginia.edu, Department of Computer Science, Thornton Hall, University of Virginia, Charlottesville, Virginia 22903.