The Java programming language is becoming the language of choice for
implementing Internet-based applications. Undoubtedly Java provides many
benefits--including access to secure, platform-independent applications from
anywhere on the Internet. Java today
goes well beyond its original role of enhancing the functionality of HTML
documents. Few Java developers today are concerned with applets.
Instead it is used to develop large-scale enterprise applications, to enhance
the
functionality of World Wide Web servers, to provide applications for consumer
device such as cell phones, pagers and personal digital assistants.
Amongst computational scientists Java may well become a very attractive
language to
create new programming environments that combine powerful object-oriented
technology with potentially high performance computing.
The popularity of Java has led to it being seriously considered as a good
language to develop scientific and engineering applications, and in particular
for parallel computing [2,3,4]. Sun's claims on
behalf of Java, that is simple, efficient and platform-natural--a natural
language for network programming--make it attractive to scientific
programmers who wish to harness the collective computational power of parallel
platforms as well as networks of workstations or PCs, with interconnections
ranging from LANs to the Internet.
This role for Java is being encouraged by bodies like Java
Grande [33].
Over the last few years supporters of
the Java Grande Forum have been working actively to address
some of the issues involved in using Java for technical computation. The goal
of the forum is to develop consensus and recommendations on possible
enhancements to the Java language and associated Java standards, for
large-scale (``Grande'') applications. Through a series of ACM-supported
workshops and conferences the forum has helped stimulate research on Java
compilers and programming environments.
Our HPJava is an environment for parallel programming,
especially suitable for data parallel scientific programming.
HPJava is an implementation of a programming model we call the
HPspmd nodel.
It is a strict extension of its base language, Java, adding
some predefined classes and some extra syntax for dealing with
distributed arrays. We overview of HPJava in following section.
Subsections