Home
Call for Participation
Register
Program
Tutorials
List of Papers
List of Posters
People
Java Grande Charter
Related Links
Old:
CFP (TXT)
Paper Submissions page
|
JGI'02 - Posters Accepted
Title: Scalable Distributed Concurrency Services for Hierarchical Locking
Authors: Nirmit Desai, North Carolina State University
Frank Mueller, North Carolina State University
Title: Gain Time Reclaiming in High Performance Real-Time Java Systems
Authors: Erik Yu-Shing Hu, University of York
Andy Wellings, University of York
Guillem Bernat, University of York
Title: Improving the Memory Management Performance of RTSJ
Authors: M. Teresa Higuera-Toledano, Universidad Complutense de Madrid
Title: Measuring the Impact of Object-oriented Techniques in Grande
Applications: a method-level analysis
Authors: James Power, National University of Ireland Maynooth
John Waldron, Trinity College Dublin
Title: Compiler Transformations for Optimizing OoLaLa
Authors: Mikel Lujan, University of Manchester
T.L. Freeman, University of Manchester
John R. Gurd, University of Manchester
Title: Edge-Server Caching of Enterprise JavaBeans: Architecture and
Implementation
Authors: Avraham Leff, IBM T. J. Watson Research Center
James Rayfield, IBM T. J. Watson Research Center
Title: Using MPI with C# and the Common Language Infrastructure
Authors: Jeremiah Willcock, Open Systems Laboratory, Indiana University
Andrew Lumsdaine, Open Systems Laboratory, Indiana University
Arch Robison, KAI Software Laboratories, Intel Corporation
Title: Execution of Monolithic Java Programs on Large Non-Dedicated
Collections of Commodity Workstations
Authors: Michael Factor, IBM Research Lab in Haifa
Assaf Schuster, Technion - Israel Institute of Technology
Konstantin Shagin, Technion - Israel Institute of Technology
Title: RMIX: Multiprotocol RMI Framework for Java
Authors: Dawid Kurzyniec, Emory University
Tomasz Wrzosek, Emory University
Vaidy Sunderam, Emory University
Aleksander Slominski, Indiana University
Title: Using Java.nio for High Performance Message Passing
Authors: William Pugh, University of Maryland
Jaime Spacco, University of Maryland
Title: Parallel Operation of CartaBlanca on Shared and Distributed
Memory Computers
Authors: Nely Padial-Collins, Los Alamos National Laboratory
William VanderHeyden, Los Alamos National Laboratory
Duan Zhang, Los Alamos National Laboratory
Edward Dendy, Los Alamos National Laboratory
Daniel Livescu, Los Alamos National Laboratory
Title: Efficiently Distributing Component-based Applications Across
Wide-Area Environments
Authors: Deni Llambiri, New York University
Alexander Totok, New York University
Vijay Karamcheti, New York University
Title: Support and Optimization of Java RMI over Bluetooth Environments
Authors: Pu-Chen Wei, National Tsing Hua University
Chung-Hsin Chen, National Tsing Hua University
Cheng-Wei Chen, National Tsing Hua University
Jenq-Kuen Lee, National Tsing Hua University
Title: Understanding the Performance of the Java Operating System JX
using Visualization Techniques
Authors: Michael Golm, University of Erlangen
Christian Wawersich, University of Erlangen
Joerg Baumann, University of Erlangen
Meik Felser, University of Erlangen
Juergen Kleinoeder, University of Erlangen
Title: A Java Embedded MIcro-kernel Infrastructure
Authors: Mark Baker, Distributed Systems Group, Unversity of Portsmouth
Hong Ong, Distributed Systems Group, Unversity of Portsmouth
Title: Benchmarking Java against C/C++ for Interactive Scientific
Visualization
Authors: Sudhir Sangappa, Advanced Visual Systems Inc
Richard Tollerton, Visualization Lab,
CECS University of Missouri - Columbia
Palaniappan K, Visualization Lab,
CECS University of Missouri - Columbia
Title: Experience with integrating Java with new technologies: C#, XML
and web services
Authors: Judith Bishop, University of Pretoria
R Nigel Horspool, University of Victoria
Basil Worrall, University of Pretoria
Title: Application/Kernel Cooperation Towards the Efficient Execution of
Shared-memory Parallel Java Codes
Authors: Jordi Guitart, Computer Architecture Dept.
- Technical University of Catalonia
Xavier Martorell, Computer Architecture Dept.
- Technical University of Catalonia
Jordi Torres, Computer Architecture Dept.
- Technical University of Catalonia
Eduard Ayguade, Computer Architecture Dept.
- Technical University of Catalonia
Title: CSFS: A Java Enabled Network File Storage System
Authors: Hua HAN, Dept. of Computer Science and Technology, Peking Univ.
Yafei DAI, Dept. of Computer Science and Technology, Peking Univ.
Xiaoming LI, Dept. of Computer Science and Technology, Peking Univ.
Title: Zero overhead Java thread serialization
Authors: Sara Bouchenak, INRIA
Daniel Hagimont, INRIA
Title: An Object Oriented Approach to the Direct Simulation Monte
Carlo Method
Authors: Darryl Genovesi, The Pennsylvania State University
Lyle Long, The Pennsylvania State University
Scalable Distributed Concurrency Services for Hierarchical Locking
Middleware components are becoming increasingly important as
applications share computational resources in distributed
environments. One of the main challenges in such environments is to
achieve scalability of synchronization. Another challenge is to ensure
low latency and predictable response time. In general, concurrency
services arbitrate resource requests in distributed systems. But
concurrency protocols currently lack predictability and scalability.
Adding such guarantees enables resource sharing and computing with
distributed objects in systems with a large number of nodes.
The objective of our work is to enhance middleware services to provide
scalability of synchronization on one side and predictability on the
other side. We have designed and implemented middleware components in
support of these objectives that result in low message complexity, a
high degree of concurrency and scalability for a large number of
nodes. Experiments indicate significant savings in message overhead,
in particular with regard to large number of nodes, when compared with
another scalable protocol for distributed resource allocation. We
promote extensions to existing standards for concurrency controls. Our
technical contribution is a novel protocol to enhance concurrency in
distributed resource allocation following the specification of general
concurrency services for large-scale data and object repositories.
While our approach is motivated by CORBA, its principles are
applicable to any distributed concurrency services and transaction
models.
The results of this work impact predictability and scalability for
distributed computing facilities ranging from embedded computing with
distributed objects over peer-to-peer computing environments to
arbitrating accesses in vary large database environments. The
strengths of our approach are its simplicity, its compatibility
with existing standards and its scalability to ensure performance for
such systems.
Gain Time Reclaiming in High Performance Real-Time Java Systems
The run-time characteristics of Java, such as high frequency
of method invoking, dynamic dispatching and dynamic load-
ing, make Java more difficult than other object-oriented pro-
gramming languages, such as C++, for conducting Worst-
Case Execution Time (WCET) analysis. There have been
efforts to address WCET analysis of the dynamic behaviour
in object-oriented programs in order to apply them in high
performance real-time systems. However, most approaches
result in developing environments which are inflexible and
very limited. To offer a more flexible way to develop object-
oriented real-time applications in the real-time Java environ-
ment without loss of the predicability and performance, we
propose a novel gain time reclaiming framework integrated
with WCET analysis. This paper demonstrates how to im-
prove the utilisation and performance of the whole system
by reclaiming gain time at run-time. Our approach shows
that integrating WCET with gain time reclaiming not only
can provide a more flexible environment to develop high
performance real-time Java applications, but it also does
not necessarily result in unsafe or unpredictable timing be-
haviour.
Improving the Memory Management Performance of RTSJ
From a real-time perspective, the GC introduces unpredictable pauses
that are not tolerated by real-time tasks.
Real-time collectors eliminate this problem but introduce
a high overhead.
However, this must not lead to undertake the unsafe primitive solution
that consists in letting the application programmer
to explicitly deal with memory reclamation.
An intermediate approach is to use Memory Regions (MR)
within wich allocation and deallocation is customized.
This facility is supported by the memory model
of the Real-Time Specification of Java (RTSJ).
The strict assignment rules imposesb by RTSJ to avoid dangling
inter-region pointers incur high amounts of overhead, which
it is possible to reduce by taking advantages of hardware features.
This paper provides an indepth analitical investigation of the overhead
of dynamic assignments checks in RTSJ, describing
and analizing several solutions to reduce the introduced overhead.
Measuring the Impact of Object-oriented Techniques in Grande
Applications: a method-level analysis
In this paper we seek to provide a foundation for the study of the
level of use of object-oriented techniques in Java programs in
general, and scientific applications in particular. Specifically, we
focus on the use of small methods, and the frequency with which they
are called, since this forms the basis for the study of method
inlining, an important optimisation technique. We compare the Grande
and SPEC benchmark suites, and note a significant difference in the
nature and composition of these suites, with the programs from the
Grande suite demonstrating a less object-oriented approach. On
average, they make less use of the class library than SPEC
applications, make greater use of static methods, and use longer
methods.
Compiler Transformations for Optimizing OoLaLa
OoLaLa is an object oriented linear algebra library de-
signed to reduce the effort of software development and
maintenance. In contrast with traditional (Fortran-based)
libraries, it provides two high abstraction levels that signifi-
cantly reduce the number of implementations necessary for
particular linear algebra operations.
Initial performance evaluations of a Java implementation
of OoLaLa show that the two high abstraction levels are
not competitive with the low abstraction level of traditional
libraries. One of the high abstraction levels is consistently
slower than the low abstraction, while the other is slower in
most cases.
These performance results motivate the present contri-
bution the characterisation of a set of storage formats
(data structures) and matrix properties (special features)
for which a set of standard transformations are able to map
implementations at the two high abstraction levels into im-
plementations at the low (more efficient) abstraction level.
Edge-Server Caching of Enterprise JavaBeans: Architecture and
Implementation
We discuss key issues involved in the caching of Enterprise JavaBeans (EJBs) on an Edge-Server, and then
present the architecture and algorithms that we have used to build an edge-server that solves these issues.
The ability to cache EJBs is important because current edge-servers permit only caching of data such as
static HTML pages. Applications that access stateful data must therefore access the back-end server fre-
quently, so that performance is affected by network latency and the existence of system "hot spots". With
cached EJBs, edge-servers can run transactional applications that access dynamically changing data using
a well known application programming interface. The behavior of the EJB runtime is functionally indistin-
guishable from that of a standard J2EE server, and thus the application behavior is unchanged. We also
show that, with relatively little effort, non-cached applications can be transparently transformed into edge- server applications.
Using MPI with C# and the Common Language Infrastructure
We describe two interfaces for using the Message Passing Interface
(MPI) with the C# programming language and the Common Lan-
guage Infrastructure (CLI). The first interface provides CLI bind-
ings that closely match the original MPI library specification. The
second library presents a fully object-oriented interface to MPI and
exploits modern language features of C#. The interfaces described
here use the P/Invoke feature of the CLI to dispatch to a native im-
plementation of MPI (in our case, LAM/MPI). Performance results
using the Shared Source CLI demonstrate there is only a small per-
formance overhead incurred.
Execution of Monolithic Java Programs on Large Non-Dedicated
Collections of Commodity Workstations
The use of the Internet and intranets within organizations has linked
a great number of commodity workstations, a large portion of which
may be idle at any given moment. Together, these idle workstations
constitute a substantial computational force. We describe the general
design of a runtime that executes a standard Java application on
available idle workstations. Our work allows a high-level programming
paradigm in a non-dedicated environment. The runtime
distributes the application?s threads and objects among the currently idle nodes.
The described system possesses the following features. First, it is fault
tolerant, preserving the correctness of the distributed execution even
if a large portion of nodes fails. By use of the system?s fault tolerance
we make it non-intrusive with respect to the ?owners? of the participating
nodes. Second, our runtime is completely transparent to the programmer
and can execute any multithreaded Java program. Third, the proposed runtime
is orthogonal to the implementation of the JVM and therefore heterogeneous.
It rewrites the application?s bytecodes, using the node?s standard JVM to
execute the rewritten application. Finally, the described runtime is highly
scalable, using an efficient and scalable multithreaded software distributed
shared memory (DSM) and a fault tolerance scheme
that does not require global cooperation.
RMIX: Multiprotocol RMI Framework for Java
Web Service technologies have recently attracted attention
as promising vehicles for interoperability in e-commerce and
enterprise collaboration. Attempts to leverage Web Ser-
vices for high performance scientific and distributed com-
puting, however, have encountered performance problems
owing to the unsuitability of SOAP (the de facto Web Ser-
vices wire protocol) for large volume data transfers. Alter-
native standards are likely to emerge, but currently, many
different protocols remain in use. Supporting a scheme to
dynamically select from multiple protocols as appropriate
to the situation seems to be a sound solution. In the con-
text of distributed computing with Java, RMI is a natu-
ral programming paradigm. However, the default RMI im-
plementation is bound to a concrete wire protocol, JRMP,
that is neither interoperable nor very efficient. In this pa-
per, we propose a framework than permits the use of mul-
tiple wire protocols within the unified model of RMI. The
wire protocols are defined in terms of pluggable transport
protocol service providers that may be added to the sys-
tem at any time. A suite of protocols with varying prop-
erties can then be used seamlessly and collectively. This
approach facilitates applications that communicate with dif-
ferent classes of peers using various protocols, applications
that are protocol-independent and migratable between dif-
ferent protocols, or distributed systems with dynamic peer-
to-peer protocol negotiation. Additionally, enhancements
to the RMI model towards multi-user environments are pro-
posed. We describe the design and implementation of the
framework, and present two transport service providers: the
JRMPX provider using the standard RMI wire protocol
(JRMP), and the XSOAP provider using SOAP. We include
benchmark results demonstrating performance characteris-
tics of these two providers in comparison to standard RMI.
Using Java.nio for High Performance Message Passing
We evaluate advances in JVM technology along with new
high performance I/O libraries in Java 1.4, and find that
Java is increasingly an attractive platform for scientific cluster
based message passing codes.
We report that these new technologies allow pure Java im-
plementations of cluster communication libraries that match
or exceed the performance of standard MPI implementa-
tions.
Parallel Operation of CartaBlanca on Shared and Distributed
Memory Computers
We describe the parallel performance of the pure Java
CartaBlanca code on heat transfer and multiphase fluid
flow problems. CartaBlanca is designed for parallel
computations on partitioned unstructured meshes. It uses
Java's thread facility to manage computations on each of
the mesh partitions. Inter-partition communications are
handled by two compact objects for node-by-node
communication along partition boundaries and for global
reduction calculations across the entire mesh. For
distributed calculations, the JavaParty package from the
University of Karlsruhe is demonstrated to work with
CartaBlanca although scaling will require additional
effort. On shared memory machines, CartaBlanca is
shown to scale well provide the problem is large enough.
Efficiently Distributing Component-based Applications Across
Wide-Area Environments
Distribution and replication of network-accessible applications has
been shown to be an effective approach for delivering improved
Quality of Service to end users. Even though current-day compo-
nent-based applications are nominally suitable for distributed de-
ployment, much work remains before achieving efficient service
distribution in wide-area environments.
In this paper, we investigate application design patterns and their
accompanying system-level support essential to a beneficial and ef-
ficient service distribution process. Our study targets the Java 2
Platform Enterprise Edition (J2EE) platform and Java Pet Store as
a sample application.
Our results present strong experimental evidence that component-
based applications can be efficiently distributed in wide-area en-
vironments using a small set of generally-applicable design pat-
terns for orchestrating interactions and managing component state.
Moreover, we show how the design patterns can be enforced and
automated by container frameworks.
Support and Optimization of Java RMI over Bluetooth Environments
Distributed object-oriented platforms over wireless environ-
ments for high-performance computing and collaborative frame
works have become essential components for pervasive com-
putings. In this paper, we investigate the issues to support
Java RMI over Bluetooth environments. First, we develop
a set of protocol stack layers for Bluetooth. The system
is written in Java and known as JavaBT. Next, we pro-
vide support in L2CAP layer with sockets to support RMI
socket. This enables the support of Java RMI over Blue-
tooth environments with efficiency. In addition, we model
the cost for the access patterns of Java RMI communica-
tions. The cost model is used to guide the formation and
optimizations of the scatternets of Bluetooth environments
associated Java RMI environments. In our approach, we
first employ a well-known BTCP algorithm to observe initial
configurations for the number of piconets. With the com-
munication access cost, we then employ a spectral-bisection
method to cluster the nodes in a piconet. We then give a
method to connect the cluster together based on the cost
model. We give experimental results with the prototypes
of Java RMI support over Bluetooth environments. Ex-
perimental results also show that our scatternet formation
algorithm incorporating access cost model out-perform the
one without considering the access graphs of Java RMI over
Bluetooth environments.
Understanding the Performance of the Java Operating System JX
using Visualization Techniques
During the development of the Java-based operating sys-
tem JX we frequently needed tools to assess the perfor-
mance of the microkernel and the Java components. We
instrumented the microkernel and the bytecode-to-native-
code translator to get information about nearly every aspect
of the systems behavior. The gathered data can be visualized
to show CPU time consumption of methods, thread schedul-
ing, object allocation behavior, and object ages.
A Java Embedded MIcro-kernel Infrastructure
In this paper we outline a prototype implementation of a
Java Embedded Micro-kernel (JEM) infrastructure that is
capable of dynamically loading service modules at runtime
onto devices with limited system resources, such as
intelligent network cards or PDAs. The JEM system allows
for a range of Java-based modules to be developed and
utilized to, for example, dramatically improve the
communications performance of Java applications, move
operating system or application level services down into the
network layer, or provide other specialized services.
Benchmarking Java against C/C++ for Interactive Scientific
Visualization
JLoop is a high performance platform independent workstation
software to interactively visualize extremely large time varying
datasets. It allows full interactive loop, roam and zoom
capabilities. It's a re-implementation of the existing Loop
software developed at NASA/Goddard, in Java (JLoop) to
evaluate java for high performance visualization applications in
terms of portability, speed, memory usage, multiprocessing, etc
and portability of visualization software across computer
platforms. The performance of JLoop/Loop has been compared
across a number of platforms both for interactive animation
(display) and numerical computation.
Experience with integrating Java with new technologies: C#, XML
and web services
Java programmers cannot but be aware of the new
initiative from Microsoft of a complete language, C#,
network environment, .NET, and host of supporting
technologies such as web services. Before moving all
development to a Microsoft environment,
programmers will want to know what are the
additional advantages of C# as a language over Java,
and whether the new and interesting features of C# and
.NET be incorporated into existing Java software. This
paper surveys the advantages of C# and then presents
experience with connecting it to Java in a variety of
ways. The first is by providing a common XML-based
class for the development of programmer controlled
GUIs, which can run independently of the expensive
(resource-intensive) Visual Studio development
environment that would otherwise be needed for using
C#. The second provides evidence that C# can be
linked to Java at the source code level, albeit through
C++ wrappers. The third is a means for retaining the
useful applet feature of Java in a server-side
architecture of .NET's web services.
The paper concludes that there are many common
shared technologies that bring Java and C# close
together, and that innovative ways of using others can
open up opportunities not hitherto imagined.
Application/Kernel Cooperation Towards the Efficient Execution of
Shared-memory Parallel Java Codes
In this paper we propose mechanisms to improve the performance
of parallel Java applications executing on multiprogrammed
shared-memory multiprocessors. The proposal is based on a
dialog between each Java application and the underlying
execution environment (mainly the resource manager in the
kernel) so that both cooperate on improving the overall
performance (individual application speedup and system
throughput). This dialog implies modifications at the application
(or compiler), the threading library and kernel levels. Although a
similar cooperation has been analyzed for other environments, the
Java environment offers a different execution environment
through the Java Virtual Machine. The paper includes
experimental results based on OpenMP-like benchmarks that
show the benefits of this cooperation between malleable Java
applications and the execution environment.
CSFS: A Java Enabled Network File Storage System
CSFS is a network file storage system which supports file storage
on the Internet. In CSFS, numbers of distributed file servers are
consolidated together and provide service as a whole. File name is
location independent. System architecture is of good scalability
and the system is expected to scale up to hundreds of servers. Due
to Java's advantages in distributed computing and compatibility
with heterogeneous operating systems, we implemented CSFS in
pure Java and tested the prototype by a Java versioned distributed
file system benchmark. Benchmark result shows: CSFS delivers
acceptable performance for general file operations; performance of
file upload and download is as efficient as FTP; more than 450
concurrent online users can be supported.
Zero overhead Java thread serialization
The Java system supports the transmission of code via dynamic
class loading, and the transmission or storage of data via object
serialization. However, Java does not provide any mechanism for
the transmission/storage of the computation (i.e.,
thread
serialization). Several projects have recently addressed the issue
of Java thread serialization, e.g., Sumatra, Wasp, JavaGo, Brakes,
Merpati. Some of them have attempted to minimize the overhead
incurred by the thread serialization mechanism on thread
performance, but none of them has been able to completely avoid
this overhead. We propose a Java thread serialization mechanism
that does not impose any performance overhead on serializable
threads. In this paper, we present the design choices which
allowed us to cancel the performance overhead, and we describe
the implementation details of our thread serialization prototype in
Sun Microsystems' JDK. We report on a comparative
performance evaluation of the main thread serialization
techniques, and confirm the elimination of the performance
overhead with our thread serialization mechanism.
An Object Oriented Approach to the Direct Simulation Monte
Carlo Method
A Direct Simulation Monte Carlo (DSMC) code has been
developed in Java 2, based on the original FORTRAN DSMC
code of G.A. Bird [1] and extensions to it by Anderson and Dunn
[2] and Long and Anderson [3]. Although these FORTRAN
codes perform quite well, the emergence of object-oriented
programming has led to the initiative to develop a more
maintainable DSMC code while keeping with the goal of a
retaining a high-performance numerical solution to rarefied gas
dynamics problems. The code discussed in this paper was written
in Java 2 and compiled using both GNU GCJ and Sun's Java
Development Kit. The code is much more readable and
maintainable than its FORTRAN predecessors while its serial and
parallel performance have been found to be comparable to the
FORTRAN codes in call cases and, on some computer
architectures, superior to the FORTRAN codes on a performance
basis.
While it was written to solve the pulse detonation engine problem
[4,5], the software discussed herein can be extended to solve
many gas dynamics problems. In fact, by taking advantage of the
object-oriented program structure of Java and some of the
language's advanced features, a solution to many problems can
now be found in very elegant manner. For instance, by using the
Vector foundation class, the complicated sort routine found in
traditional DSMC codes is greatly simplified. The code was
parallelized in a manner similar to the multiple-serial-jobs
approach of [6] and using Java's intrinsic multithreading
capabilities. A graphics package has been implemented, which
allows the used to qualitatively verify the collision dynamics of
flow throughout a data run. More graphical output can easily be
added in order to monitor the progress of the code real-time as it
converges to a statistically valid solution over many ensembles.
|