Research Projects

Below follows a list of the research projects that I've been involved in. Links to project home pages are at the bottom of each project's description.

Dragonfly

Work in progress.... Dragonfly is a distributed data-gathering system with an SQL-style query interface. In response to queries, it gathers data from tables that may be distributed over many network nodes.


LFC

The LFC project investigates design issues for high-performance communication layers. Our work in this area has focussed on the design and implementation of two important communication services: reliable communication and multicast communication. Our main research vehicle has been the LFC communication system for Myrinet networks. A Linux distribution of LFC can be downloaded through the LFC home page.

Publications:

Evaluating Design Alternatives for Reliable Communication on High-Speed Networks
R.A.F. Bhoedjang, K. Verstoep, T. Ruhl, H.E. Bal, and R.F.H. Hofman
Nineth Int. Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pp. 71-81, November 2000, Cambridge, MA

Reducing Data and Control Transfer Overhead through Network-Interface Support
R.A.F. Bhoedjang, K. Verstoep, T. Ruhl, and H.E. Bal
First Myrinet User Group Conference (MUG), September 2000, Lyon, France

Communication Architectures for Parallel-Programming Systems
R.A.F. Bhoedjang
Phd. thesis, June 2000, Vrije Universiteit, Amsterdam
US letter
A4

User-Level Network Interface Protocols
R.A.F. Bhoedjang, T. Ruhl, H.E. Bal
IEEE Computer, Vol. 31, No. 11, pp. 53-60, November 1998 (special issue on network interfaces)

Efficient Multicast On Myrinet Using Link-Level Flow Control (best paper award)
R.A.F. Bhoedjang, T. Ruhl, H.E. Bal
Int. Conf. on Parallel Processing (ICPP), pp. 381-390, August 1998, Minneapolis, MN




Related links:




Panda

Panda is a portable message-passing system designed to support parallel-programming systems. It has been used to implement a variety of programming systems, including Orca, Manta, PVM, MPI, SR, and MPI-Linda.

Publications:

Experience with a Portability Layer for Implementing Parallel Programming Systems
T. Ruhl and H.E. Bal and R. A.F. Bhoedjang, K.G. Langendoen and G. Benson
The 1996 Int. Conf. on Parallel and Distributed Processing Techniques and Applications (PDPTA), pp. 1477-1488, August 1996, Sunnyvale, CA

Panda: A Portable Platform to Support Parallel Programming Languages
R.A.F. Bhoedjang, T. R\uhl, R. Hofman, K.G. Langendoen, H.E. Bal, and M.F. Kaashoek
Proc. of the USENIX Symposium on Experiences with Distributed and Multiprocessor Systems (SEDMS IV), pp. 213-226, September 1993, San Diego CA


Related links:




Jackal

Jackal is a compiler-supported, distributed-shared memory system for Java. Jackal runs unmodified, multithreaded Java programs on a cluster of workstations. In contrast with most existing DSM systems, Jackal relies heavily on static analysis to obtain high performance. By default, Java objects are stored in software regions that can be cached. Cache coherence is maintained through compiler-generated access checks and the runtime system's cache coherence protocol. Besides this default mechanism, however, Jackal's compiler also detects opportunities for computation migration and object aggregation.

Publications:

Source-Level Global Optimizations for Fine-Grain Distributed Shared Memory Systems
R. Veldema, R.F.H. Hofman, R.A.F Bhoedjang, C.J.H. Jacobs, H.E. Bal
Accepted for publication in Principles and Practice of Parallel Programming (PPoPP), June 2001, Snowbird, Utah

Runtime Optimizations for a Java DSM Implementation
R. Veldema, R.F.H. Hofman, R.A.F Bhoedjang, H.E. Bal
Accepted for publication in Java-grande / ISCOPE 2001, June 2001, Stanford University, California

Related links:




Orca

Orca is a language-based distributed shared memory system in which processes communicate through atomic operations on user-defined shared data-objects. Orca was designed and implemented on Amoeba by Henri Bal and Frans Kaashoek. I worked on a new, portable implementation of the Orca runtime system (using Panda) that also incorporates a few new optimizations. This Orca implementation has been ported successfully to a number of mundane and exotic platforms, including Unix workstations, the Thinking Machines CM-5, transputers, and the IBM SP/2.

The publications listed below include only the papers that I coauthored. For a full list, see the Orca home page.

Publications:

Performance Evaluation of the Orca Shared Object System
H.E. Bal, R.A.F. Bhoedjang, R. Hofman, C. Jacobs, K.G. Langendoen, T. Ruhl, M.F. Kaashoek
ACM Transactions on Computer Systems, Vol. 16, No. 1, pp. 1-40, February 1998

Performance of a High-Level Parallel Language on a High-Speed Network
H.E. Bal, R.A.F. Bhoedjang, R. Hofman, C. Jacobs, K.G. Langendoen, K. Verstoep
Journal of Parallel and Distributed Computing (Special issue on Workstation Clusters and Network-based Computing), Vol. 40, No. 1, January1997, pp. 49-64


Related links: