This special issue is devoted to selected papers from the acm 2002 javagrande-ISCOPE (JGI2002) conference. It was held in Seattle, WA, 3-5 November 2002. javagrande andISCOPE (International Symposium on Computing in ...
This special issue is devoted to selected papers from the acm 2002 javagrande-ISCOPE (JGI2002) conference. It was held in Seattle, WA, 3-5 November 2002. javagrande andISCOPE (International Symposium on Computing in Object-oriented Parallel Environments) continuedtheir partnership with a joint conference, and a merged Call for Papers and Program Committee. Assuch, the JGI2002 conference focused on object-orientation in a broad range of topics (includingparallelism, communication, distribution, and high-performance applications and systems) and java inthe broad area of high-performance computing (including engineering and scientific applications,simulations, and data-intensive applications). This combined conference represented one of theWorld's premier research forums in high-performance object-oriented computation. All of the papershave been revised and re-refereed to ensure appropriate journal quality. This was the seventh of aseries of meetings, exploring the use of the object-oriented techniques and the java programminglanguage for scientific and engineering computing and high-performance network computing—a range ofapplications that has been denoted with the epithet 'grande'. The previous javagrande workshopswere held very successfully in Syracuse in 1996, Las Vegas in 1997, Palo Alto in 1998, San Franciscoin 1999 and 2000, and Palo Alto (Stanford University) again in 2001. The proceedings were alsopublished in special issues of Concurrency and Computation: Practice ami Experience (volume 9,issues 6 and 11; volume 10, issues 11-13; volume 12 issues 6-8; volume 13. issues 8-9; and volume 15Issues 3-5).
java uses exceptions to provide elegant error handling capabilities during program execution. However, the presence of exception handlers complicates the job of the just-in-time (JIT) compiler, while exceptions are ra...
详细信息
java uses exceptions to provide elegant error handling capabilities during program execution. However, the presence of exception handlers complicates the job of the just-in-time (JIT) compiler, while exceptions are rarely used in most programs. This paper describes two techniques for reducing such complications. First, we delay the translation of an exception handier until the exception really occurs. This on-demand translation of exception handlers allows more optimizations when translating the main flow, without being hindered by constraints caused by the exception flows. Secondly, for those exceptions that are actually thrown during program execution we insert exception-type check code and a direct branch to the translated exception handlers. This exception handler prediction is motivated by an observation that frequently thrown exceptions are likely to be handled by the same exception handlers, so this will eliminate the exception processing overhead of the java virtual machine. Our experiments indicate that the code quality of the main flow is no longer affected by the presence of exception handlers. Also, frequently thrown exceptions can be efficiently handled by the exception handier prediction. Copyright (C) 2004 John Wiley Sons, Ltd.
java workloads are becoming increasingly prominent on various platforms ranging from embedded systems, over general-purpose computers to high-end servers. Understanding the implications of all the aspects involved whe...
详细信息
java workloads are becoming increasingly prominent on various platforms ranging from embedded systems, over general-purpose computers to high-end servers. Understanding the implications of all the aspects involved when running java workloads, is thus extremely important during the design of a system that will run such workloads. In other words, understanding the interaction between the java application, its input and the virtual machine it runs on, is key to a successful design. The goal of this paper is to study this complex interaction at the microarchitectural level, e.g., by analyzing the branch behavior, the cache behavior, etc. This is done by measuring a large number of performance characteristics using performance counters on an AMD K7 Duron microprocessor. These performance characteristics are measured for seven virtual machine configurations, and a collection of java benchmarks with corresponding inputs coming from the SPEGjvm98 benchmark suite, the SPECjbb2000 benchmark suite, the javagrande Forum benchmark suite and an open-source raytracer, called Raja with 19 scene descriptions. This large amount of data is further analyzed using statistical data analysis techniques, namely principal components analysis and cluster analysis. These techniques provide useful insights in an understandable way. From our experiments, we conclude that (i) the behavior observed at the microarchitectural level is primarily determined by the virtual machine for small input sets, e.g., the SPEQjvm98 s1 input set;(ii) the behavior can be quite different for various input sets, e.g., short-running versus long-running benchmarks;(iii) for long-running benchmarks with few hot spots, the behavior can be primarily determined by the java program and not the virtual machine, i.e., all the virtual machines optimize the hot spots to similarly behaving native code;(iv) in general, the behavior of a java application running on one virtual machine can be significantly different from running
java workloads are becoming increasingly prominent on various platforms ranging from embedded systems, over general-purpose computers to high-end servers. Understanding the implications of all the aspects involved whe...
详细信息
ISBN:
(纸本)9781581137125
java workloads are becoming increasingly prominent on various platforms ranging from embedded systems, over general-purpose computers to high-end servers. Understanding the implications of all the aspects involved when running java workloads, is thus extremely important during the design of a system that will run such workloads. In other words, understanding the interaction between the java application, its input and the virtual machine it runs on, is key to a succesful design. The goal of this paper is to study this complex interaction at the microarchitectural level, e.g., by analyzing the branch behavior, the cache behavior, etc. This is done by measuring a large number of performance characteristics using performance counters on an AMD K7 Duron microprocessor. These performance characteristics are measured for seven virtual machine configurations, and a collection of java benchmarks with corresponding inputs coming from the SPECjvm98 benchmark suite, the SPECjbb2000 benchmark suite, the javagrande Forum benchmark suite and an open-source raytracer, called Raja with 19 scene descriptions. This large amount of data is further analyzed using statistical data analysis techniques, namely principal components analysis and cluster analysis. These techniques provide useful insights in an understandable *** our experiments, we conclude that (i) the behavior observed at the microarchitectural level is primarily determined by the virtual machine for small input sets, e.g., the SPECjvm98 s1 input set; (ii) the behavior can be quite different for various input sets, e.g., short-running versus long-running benchmarks; (iii) for long-running benchmarks with few hot spots, the behavior can be primarily determined by the java program and not the virtual machine, i.e., all the virtual machines optimize the hot spots to similarly behaving native code; (iv) in general, the behavior of a java application running on one virtual machine can be significantly different from runnin
The proceedings contains 20 papers from the conference on Proceedings of the acm 2000 java grande conference. The topics discussed include: towards an efficient exploitation of loop-level parallelism in java;bulk file...
详细信息
ISBN:
(纸本)1581132883
The proceedings contains 20 papers from the conference on Proceedings of the acm 2000 java grande conference. The topics discussed include: towards an efficient exploitation of loop-level parallelism in java;bulk file I/O extensions to java;development routes for message passing parallelism in java;generating java trace data and a portable sampling-based profiler for java virtual machines.
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 provi...
详细信息
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. Copyright (C) 2001 John Wiley & Sons, Ltd.
暂无评论