next up previous contents
Next: Java Numeric Working Group Up: High-Performance Grid-Enabled Environments Previous: Grid Computing Environments   Contents


HPspmd Programming Model Towards Grid-Enabled Applications

To support ``high-performance grid-enabled applications'', the future grid computing systems will need to provide programming models [19]. The main thrust of programming models is to hide and simplify complexity and details of implementing the system, while focusing on the application design that have a significant impact on program performance or correctness. Generally, we can see different programming models in sequential programming and parallel programming. For instance, in sequential programming, commonly used programming models for modern high-level languages furnish applications with inheritance, encapsulation, and scoping. In parallel programming, distributed arrays, message-passing, threads, condition variables, and so on. Thus, using each model's significant characteristics, sequential and parallel program must maximize their performance and correctness. There is no clarity about what programming model is appropriate for a grid environment, although it seems clear that many programming models will be used. One approach to grid programming is to adapt programming models that have already proved successful in sequential or parallel environments. For example, the data-parallel language model such as our HPspmd Programming Model might be an ideal programming model for supporting and developing high-performance grid-enabled applications, allowing programmers to specify parallelism in terms of process groups and multiarray operations. A grid-enabled MPI[*] would extend the popular message-passing models. New Java I/O API's dramatic performance improvement encourages us to focus on grids-enabled MPI implementations as well. Moreover, high-performance grid-enabled applications and run-time systems demand ``adaptability'', ``security'', and ``ultra-portability'', which can be simply supported by the HPJava language since it is implemented in the context of Java. Despite tremendous potential, enthusiasm, and commitment to the Grid, few software tools and programming models exist for high-performance grid-enabled applications. Thus, to make prospective high-performance grid-enabled environments, we need nifty compilation techniques, high-performance grid-enabled programming models, applications, and components, and a better and improved base language (e.g. Java). The HPJava language has quite acceptable performance on scientific and engineering (matrix) algorithms, which play very important roles in high-performance grid-enabled applications such as ``search engines'' and ``parameter searching''. Moreover, the most interesting Grid problem where HPJava is adoptable is ``coordinating'' the execution and information flow between multiple ``web services'' where each web service has WSDL style interface and some high level information describing capabilities. It can even help parallel computing by specifying compiler hints. In the near future, HPJava will be mainly used as a middleware to support ``complexity scripts'' in the project, called ``BioComplexity Grid Environment'' at Indiana University. Thus, we believe that the success of HPJava would make our HPspmd Programming Model a promising candidate for constructing high-performance grid-enabled applications and components.
next up previous contents
Next: Java Numeric Working Group Up: High-Performance Grid-Enabled Environments Previous: Grid Computing Environments   Contents
Bryan Carpenter 2004-06-09