Java Grande 2000 Special Issue of Concurrency:Practice and Experience
Editorial is still to be written
Original Conference URL http://www.extreme.indiana.edu/java00
-
C477: CoG Kits: A Bridge between Commodity Distributed Computing
and High-Performance Grids
-
Abstract: Emerging national-scale "Computational Grid" infrastructures
are deploying advanced services beyond those taken for granted in today’s
Internet: for example, authentication, remote access to computers, resource
management, and directory services. The availability of these services
represents both an opportunity and a challenge for the application developer:
an opportunity because they enable access to remote resources in new ways,
a challenge because these services may not be compatible with the commodity
distributed computing technologies used for application development. The
Commodity Grid project is working to overcome this difficulty by creating
what we call Commodity Grid Toolkits (CoG Kits) that define mappings and
interfaces between Grid and particular commodity frameworks. In this paper,
we explain why CoG Kits are important, describe the design and implementation
of a Java CoG Kit, and use examples to illustrate how CoG Kits can enable
new approaches to application development based on the integrated use of
commodity and Grid technologies.
-
Gregor von Laszewski, Ian Foster, Jarek Gawor
-
Argonne National Laboratory, Argonne, IL 60439, U.S.A.
-
email gregor@mcs.anl.gov
-
Original PDF: C477gregor/cog-cpe.pdf
-
C478: Strategies for the efficient exploitation of loop-level
parallelism in Java
-
Abstract:This paper analyzes the overheads incurred in the exploitation
of loop-level parallelism using Java Threads and pro poses some code transformations
that minimize them. Avoiding the intensive use of Java Threads and reducing
the number of classes used to specify the parallelism in the application
results in promising performance gains that may en courage the use of Java
for exploiting loop-level parallelism. On average, the execution time for
our synthetic benchmarks is reduced by 50% from the simplest transformation
when 8 threads are used. The paper explores some possible enhancements
to the Java threading API oriented towards improving the application-runtime
interaction.
-
Jose Oliver, Eduard Ayguad´e, Nacho Navarro, Jordi Guitart and Jordi
Torres
-
Computer Architecture Department, Technical University Of Catalonia, C/
Jordi Girona 1-3, Campus Nord, 08034 Barcelona, Spain
-
email{joseo,eduard,nacho,jguitart,torres}@ac.upc.es
-
Original PDF: C478segura/Article.pdf
-
C479: Parallel Application Experience with Replicated Method
Invocation
-
Abstract:Parallel Application Experience withWe describe and evaluate
a new approach to object replication in Java, aimed at improving the performance
of parallel programs. Our programming model allows the programmer to define
groups of objects that can be replicated and updated as a whole, using
totally-ordered broadcast to send update methods to all machines containing
a copy. The model has been implemented in the Manta high-performance Java
system. We evaluate system performance both with micro benchmarks and with
a set of five parallel applications. For the applications, we also evaluate
ease of programming, compared to RMI implementations. We present performance
results for a Myrinet-based workstation cluster as well as for a wide-area
distributed system consisting of four such clusters. The micro benchmarks
show that updating a replicated object on 64 machines only takes about
three times the RMI latency in Manta. Applications using Manta’s object
replication mechanism perform at least as fast as manually optimized versions
based on RMI, while keeping the application code as simple as with naive
versions that use shared objects without taking locality into account.
Using a replication mechanism in Manta’s runtime system enables several
unmodified applications to run efficiently even on the wide-area system.Replicated
Method Invocation
-
Jason Maassen, Thilo Kielmann, Henri E. Bal
-
Division of Mathematics and Computer Science, Vrije Universiteit, Amsterdam,
The Netherlands
-
emailjason@cs.vu.nl, kielmann@cs.vu.nl,
bal@cs.vu.nl
-
Original PDF: C479maassen/cpe00-letter.pdf
-
C480: High-Performance File I/O in Java: Existing Approaches
and Bulk I/O Extensions
-
Abstract:There is a growing interest in using Java as the language
for developing high-performance computing applications. To be successful
in the high-performance computing domain, however, Java must not only be
able to provide high computational performance, but also high-performance
I/O. In this paper, we first examine several approaches that attempt to
provide high-performance I/O in Java|many of which are not obvious at first
glance|and evaluate their performance on two parallel machines, the IBM
SP and the SGI Origin2000. We then propose extensions to the Java I/O library
that address the deficiencies in the Java I/O API and improve performance
dramatically. The extensions add bulk (array) I/O operations to Java, thereby
removing much of the overhead currently associated with array I/O in Java.
We have implemented the extensions in two ways: in a standard JVM using
the Java Native Interface (JNI) and in a high-performance parallel dialect
of Java called Titanium. We describe the two implementations and present
performance results that demonstrate the benefits of the proposed extensions.
-
Dan Bonachea, Phillip Dickens, Rajeev Thakur
-
UCB, IIT and Argonne National Laboratory
-
emailbonachea@cs.berkeley.edu, pmd@work.csam.iit.edu,
thakur@mcs.anl.gov
-
Original PDF: C480thakur/thakur.pdf
-
C481: DISCOVER: An Environment for Web-based Interaction and
Steering of High-Performance Scientific Applications
-
Abstract:This paper presents the design, implementation, and deployment
of the DISCOVER (Distributed Interactive Steering and Collaborative Visualization
EnviRonment) web-based computational collaboratory. The primary goal of
this collaboratory is to bring large distributed simulations to the scientists’/engineers’
desktop by providing collaborative web-based portals for interaction and
control. DISCOVER provides a 3-tier architecture composed of detachable
thin-clients at the front-end, a network of web servers in the middle,
and a control network of sensors, actuators, interaction agents superimposed
on the application at the back-end. The interaction servers build on servlet
technology and enable clients to connect to, and collaboratively interact
with registered applications using a conventional browser. The application
control network enables sensors and actuators to be encapsulated within,
and directly deployed with the computational objects. Interaction agents
resident at each computational node register the interaction objects and
export their interaction interfaces. The application interaction gateway
manages the overall interaction through the control network of interaction
agents and objects. It uses the Java Native Interface to create Java proxy
objects that mirror the computational objects and allow them to be directly
accessed by the interaction web-server. Security and authentication services
are provided using customizable access control lists built on the SSL-based
secure server.
-
Vijay Mann, Vincent Matossian, Rajeev Muralidhar and Manish Parashar
-
Department of Electrical and Computer Engineering and CAIP Center, Rutgers
University, 94 Brett Road, Piscataway, NJ 08854.
-
email{vijay,vincentm,rajeevdm,parashar}@caip.rutgers.edu
-
Original PDF: C481parashar/JavaGrandeJournal.pdf
-
C482: Interceptors for Java Remote Method Invocation
-
Abstract:Interceptors are software mechanisms that are inserted
into an application at runtime, and can subsequently provide hooks to introduce
new services to the application in a transparent manner. We have developed
three distinct interceptors that are targeted at Java Remote Method Invocation.
Our interceptors are novel in that they are developed independent of the
application, and are easy to deploy, requiring little or no modification
to the application. We exploit interception in the Aroma System that we
have developed, to install mechanisms for the consistent replication of
Java objects at runtime. These replication mechanisms can be exploited
to provide fault tolerance and high availability to a distributed application,
in a transparent manner.
-
Nitya Narasimhan, L. E. Moser and P. M. Melliar-Smith
-
Department of Electrical and Computer Engineering University of California,
Santa Barbara, CA 93106
-
emailnitya@alpha.ece.ucsb.edu
-
Original PDF: C482narasinmhan/CPE2000.pdf
-
C483: HBench:Java: An Application-Specific Benchmarking Framework
for Java Virtual Machines
-
Abstract:Java applications represent a broad class of programs,
ranging from programs running on embedded products to high-performance
server applications. Standard Java benchmarks ignore this fact and assume
a fixed workload. When an actual application’s behavior differs from that
included in a standard benchmark, the benchmark results are useless, if
not misleading. In this paper, we present HBench:Java, an application-specific
benchmarking framework, based on the concept that a system's performance
must be measured in the context of the application of interest. HBench:Java
employs a methodology that uses vectors to characterize the application
and the underlying JVM and carefully combines the two vectors to form a
single metric that reflects a specific application’s performance on a particular
JVM such that the performance of multiple JVMs can be realistically compared.
Our performance results demonstrate HBench:Java’s superiority over traditional
benchmarking approaches in predicting real application performance and
its ability to pinpoint performance problems.
-
Xiaolan Zhang, Margo Seltzer
-
Division of Engineering and Applied Sciences Harvard University 33 Oxford
Street Cambridge, MA 02138, USA 617-495-3311, 617-496-5663
-
email{cxzhang, margo}@eecs.harvard.edu
-
Original PDF: C483zhang/submit.pdf
-
C484: An OpenMP-like Interface for Parallel Programming in Java
-
Abstract:This paper describes the definition and implementation
of an OpenMP-like set of directives and library routines for shared memory
parallel programming in Java. A specification of the directives and routines
is proposed and discussed. A prototype implementation, consisting of a
compiler
and a runtime library, both written entirely in Java, is presented,
which implements a significant subset of the proposed specification.
-
M. E. Kambites, J. M. Bull
-
Department of Mathematics, University of York, Heslington, York YO10 5DD,
England, U.K. , and Edinburgh Parallel Computing Centre, University of
Edinburgh, Mayfield Road, Edinburgh EH9 3JZ, Scotland, U.K.
-
emailmek100@york.ac.uk, m.bull@epcc.ed.ac.uk
-
Original PDF: C484bull/ccpe.pdf
-
C485: Using JavaNws to Compare C and Java TCP-Socket Performance
-
Abstract:As research and implementation continue to facilitate high
performance computing in Java, applications can benefit from resource management
and prediction tools. In this work, we present such a tool for network
round trip time and bandwidth between a user’s desktop and any machine
running a web server . JavaNws is a Java implementation and extension of
a powerful subset of the Network Weather Service (NWS), a performance prediction
toolkit that dynamically characterizes and forecasts the performance available
to an application. However, due to the Java language implementation and
functionality (portability, security, etc), it is unclear whether a Java
program is able to measure and predict the network performance experienced
by C-applications with the same accuracy as an equivalent C program. We
provide a quantitative equivalence study of the Java and C TCP-socket interface
and show that the data collected by the JavaNws is as predictable as, that
collected by the NWS (using C).
-
Chandra Krintz, Rich Wolski
-
Department of Computer Science and Engineering University of California,
San Diego and Computer Science Department University of Tennessee, Knoxville
-
emailckrintz@cs.ucsd.edu, rich@cs.utk.edu
-
Original PDF: C485krintz/paper.pdf