Distributed Parallel Programming Environment for Java
A set of tools and technologies for developing simple, distributed, parallel applications using the Java programming language.
Date Posted: August 5, 2004
|
|
 |
 |
What is Distributed Parallel Programming Environment for Java?
Distributed Parallel Programming Environment for JavaTM
(DPPEJ) is a set of tools and technologies for developing simple,
distributed, parallel applications using the Java programming language.
This project is being developed by the IBM India Software Lab.
DPPEJ includes an easy and intuitive programming model based on
distributed threads; object-based, message-passing APIs; and
distributable data collection. DPEEJ takes a class library-based
approach to providing a distributed parallel programming environment.
New classes and interfaces supporting distributed threads, message
passing, and distributable data collections are included in this
package.
DPPEJ consists of three major technologies:
DThread
- A group of distributed threads work in parallel on multiple distributed JVMs.
- Remote
Method Invocation (RMI) is used as the underlying mechanism for
distributed execution and control. Single Program Multiple Data (SPMD)
distribution is currently supported. Class file migration is possible
via RMI network class loading mechanism.
- New interfaces and classes for DThread are included.
Object-based message passing
- RMI-based, MPI-like messaging-passing operations
- Get, Put, Broadcast, Barrier, Multicast, Send, Receive, etc.
Distributable data collections
- Distributable data collection for int, long, float and double
- Support for familiar data-partitioning techniques.
DPPEJ can work over Globus Grid by using Grid Application Framework for Java (GAF4J), another alphaWorks technology.
How does it work? All the nodes in the DPPEJ run one or more daemons called DistributedExecutionDaemon, which are responsible for execution and management of DThreads.
DaemonRegistry runs on one of the nodes in the DPPEJ system and all the DistributedExecutionDaemon daemons register themselves with the DaemonRegistry. DaemonRegistry is responsible for allocating daemons that request distributed parallel application.
Applications are developed as follows:
- Create a distributed thread by either extending the DThread class or implementing the DRunnable class.
- Write the parallel computation code inside the run()
method of the distributed thread. Master worker programming style
(conceptually similar to that of MPI applications) can be adopted
inside the run() method by using the DThread identity.
- Create an instance of an available DistributionManager and submit the DThread instance to the DistributionManager instance. Currently, only SPMD distribution is available.
-
DistributionManager will get daemons by requesting them from the
DaemonRegistry, which clones the DThread and dispatches it to daemons.
DThread runs in each of the daemons and uses object-based message
passing and distributable data collections.
DPPEJ can also be used from within Grid Application Framework for Java (GAF4J) for distributing threads over a grid set up on Globus Toolkit 2.4.
|
|
 |

|  | About the technology author(s): Ignesius
E Thambyraj is a senior program manager at the IBM India Software Lab,
Bangalore. He is responsible for managing large projects in the area of
operating systems, networking, and middleware. In this role, Mr.
Thambyraj also drives the development of technologies in the emerging
areas of Web services, virtualization, and grid.
Anbazhagan Mani is a staff software engineer at the IBM
Software Lab in India. He is currently working on developing
technologies related to grid computing and Web services.
| |
|
| |