scispace - formally typeset
Search or ask a question
Author

Sang Boem Lim

Bio: Sang Boem Lim is an academic researcher. The author has contributed to research in topics: Data type & Compiler. The author has an hindex of 1, co-authored 1 publications receiving 6 citations.

Papers
More filters
01 Jan 2003
TL;DR: The dissertation work will concentrate on issues related to the development of efficient run time support software for parallel languages extending an underlying object-oriented language, and gives comprehensive benchmark results on a parallel platform.
Abstract: The dissertation research is concerned with enabling parallel, high-performance computation in particular development of scientific software in the network-aware programming language, Java. Traditionally, this kind of computing was done in Fortran. Arguably, Fortran is becoming a marginalized language, with limited economic incentive for vendors to produce modern development environments, optimizing compilers for new hardware, or other kinds of associated software expected of by today's programmers. Hence, Java looks like a very promising alternative for the future. The dissertation will discuss in detail a particular environment called HPJava. HPJava is the environment for parallel programming—especially data-parallel scientific programming—in Java. Our HPJava is based around a small set of language extensions designed to support parallel computation with distributed arrays, plus a set of communication libraries. In particular the dissertation work will concentrate on issues related to the development of efficient run time support software for parallel languages extending an underlying object-oriented language. Two characteristic run-time communication libraries of HPJava are developed as an application level library and device level library. A high-level communication API, Adlib, is developed as an application level communication library suitable for our HPJava. This communication library supports collective operations on distributed arrays. We include Java Object as one of the Adlib communication data types. So we fully support communication of intrinsic Java types, including primitive types, and Java object types. The Adlib library is developed on top of low-level communication library called mpjdev, designed to interface efficiently to the Java execution environment (virtual machine). The mpjdev API is a device level underlying communication library for HPJava. This library is developed to perform actual communication between processes. The mpjdev API is developed with HPJava in mind, but it is a standalone library and could be used by other systems. This can be implementing portably on network platforms and efficiently on parallel hardware. The dissertation describes the novel issues in the interface and implementation of these libraries on different platforms, and gives comprehensive benchmark results on a parallel platform. All software developed in this project is available for free download from www.hpjava.org.

6 citations


Cited by
More filters
Book ChapterDOI
02 Oct 2005
TL;DR: New low-level communication library for Java HPC, called mpjdev, is introduced with the goal that it can be implemented portably on network platforms and efficiently on parallel hardware.
Abstract: Designing a simple but powerful low-level communication library for Java HPC environments is an important task. We introduce new low-level communication library for Java HPC, called mpjdev. The mpjdev API is designed with the goal that it can be implemented portably on network platforms and efficiently on parallel hardware. Unlike MPI which is intended for the application developer, mpjdev is meant for library developers. Application level communication may be implemented on top of mpjdev. The mpjdev API itself might be implemented on top of Java sockets in a portable network implementation, or-on HPC platforms-through a JNI (Java Native Interface) to a subset of MPI.

5 citations

01 Jan 2003
TL;DR: This dissertation is concerned with efficient compilation of the Java-based, high-performance, library-oriented, SPMD style, data parallel programming language: HPJava, and compares its HPspmd programming model with modern related languages including Co-Array Fortran, ZPL, JavaParty, Timber, and Titanium.
Abstract: This dissertation is concerned with efficient compilation of our Java-based, high-performance, library-oriented, SPMD style, data parallel programming language: HPJava. It starts with some historical review of data-parallel languages such as High Performance Fortran (HPF), message-passing frameworks such as p4, PARMACS, and PVM, as well as the MPI standard, and high-level libraries for multiarrays such as PARTI, the Global Array (GA) Toolkit, and Adlib. Next, we will introduce our own programming model, which is a flexible hybrid of HPF-like data-parallel language features and the popular, library-oriented, SPMD style. We refer to this model as the HPspmd programming model . We will overview the motivation, the language extensions, and an implementation of our HPspmd programming language model, called HPJava. HPJava extends the Java language with some additional syntax and pre-defined classes for handling multiarrays, and a few new control constructs. We discuss the compilation system, including HPspmd classes, type-analysis, pre-translation, and basic translation scheme. In order to improve the performance of the HPJava system, we discuss optimization strategies we will apply such as Partial Redundancy Elimination, Strength Reduction, Dead Code Elimination, and Loop Unrolling. We experiment with and benchmark large scientific and engineering HPJava programs on Linux machine, shared memory machine, and distributed memory machine to prove our compilation and proposed optimization schemes are appropriate for the HPJava system. Finally, we will compare our HPspmd programming model with modern related languages including Co-Array Fortran, ZPL, JavaParty, Timber, and Titanium.

5 citations

Book ChapterDOI
02 Oct 2003
TL;DR: Two applications of the HPJava language for parallel computing are described, one a multigrid solver for a Poisson equation, and the second a CFD application that solves the Euler equations for inviscid flow.
Abstract: We describe two applications of our HPJava language for parallel computing. The first is a multigrid solver for a Poisson equation, and the second is a CFD application that solves the Euler equations for inviscid flow. We illustrate how the features of the HPJava language allow these algorithms to be expressed in a straightforward and convenient way. Performance results on an IBM SP3 are presented.

4 citations

Book ChapterDOI
02 Nov 2005
TL;DR: Adlib is used as a high-level collective communication library for scientific and parallel programming using Java, which adds a multi-dimensional array with properties similar to the arrays of Fortran.
Abstract: HPJava is an environment for scientific and parallel programming using Java. It is based on an extended version of the Java language. One feature that HPJava adds to Java is a multi-dimensional array, or multiarray, with properties similar to the arrays of Fortran. We are using Adlib as our high-level collective communication library. Adlib was originally developed using C++ by the Parallel Compiler Runtime Consortium (PCRC). Many functionalities of this high-level communication library is following its predecessor. However, many design issues are reconsidered and re-implemented according to Java environment. Detailed functionalities and implementation issues of this collective library will be described.

4 citations

Journal ArticleDOI
TL;DR: This paper addresses functionality and implementation of a HPJava version of the Adlib collective communication library for data parallel programming, and describes a low‐level API called mpjdev, which handles basic communication underlying the Ad lib implementation.
Abstract: This paper addresses functionality and implementation of a HPJava version of the Adlib collective communication library for data parallel programming. We begin by illustrating typical use of the library, through an example multigrid application. Then we describe implementation issues for the high-level library. At a software engineering level, we illustrate how the primitives of the HPJava language assist in writing library methods whose implementation can be largely independent of the distribution format of the argument arrays. We also describe a low-level API called mpjdev, which handles basic communication underlying the Adlib implementation. Finally we present some benchmark results, and some conclusions. Copyright © 2005 John Wiley & Sons, Ltd.

3 citations