IBM®
Skip to main content
    United States change      Terms of use
 
 
      
     Home      Products      Services & industry solutions      Support & downloads      My account     
alphaWorks  >  Grid computing  >  

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
OverviewRequirements Download FAQs Forum Reviews

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:

    1. Create a distributed thread by either extending the DThread class or implementing the DRunnable class.
    2. 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.
    3. Create an instance of an available DistributionManager and submit the DThread instance to the DistributionManager instance. Currently, only SPMD distribution is available.
    4. 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.

Download now Download now
Request license Request commercial license

Related technologies

For platform(s):
Java

For topics:
high-performance computing (HPC), load balancing, resource management


Related resources

Press Articles

 

    About IBM Privacy Contact