To support ``high-performance grid-enabled applications'', future grid computing systems will need to provide programming models . The main thrust of programming models is to hide and simplify complexity and details of implementing the system, while focusing on application design issues that have a significant impact on program performance or correctness.
Despite tremendous commitment to the Grid, few software tools and programming models exist for high-performance grid-enabled applications. To make excellent high-performance grid-enabled environments, we probably need compilation techniques, programming models, applications, components--and also modern base languages.
Generally, we 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 we have distributed arrays, message-passing, threads, condition variables, and so on. There is much less clarity about what programming model is appropriate for a grid environment, although it seems certain that many programming models will be used.
One approach is to adapt programming models that have already proved successful in sequential or parallel environments. For example a data-parallel language model like our HPspmd programming model might be an excellent programming model for supporting and developing high-performance grid-enabled applications, allowing programmers to specify parallelism in terms of process groups and distributed array operations. High-performance grid-enabled applications and run-time systems demand ``adaptability'', ``security'', and ``ultra-portability''. These should be relatively easy to provide in HPJava, since it is implemented in the context of Java, which has always had such design goals.
The HPJava language has quite acceptable performance on scientific and engineering algorithms, which also play important roles in grid-enabled applications--from search engines to ``parameter searching''. Another interesting Grid problem where HPJava may have a role is coordinating the execution and information flow between multiple Web services, where each Web service has a WSDL style interface. For example we plan to use HPJava as middleware in the project called ``BioComplexity Grid Environments''  at Indiana University. So we believe HPJava and the HPspmd Programming Model are promising candidates for constructing high-performance grid-enabled applications and components.