MPI provides high performance parallel file access API called MPI-IO. ROMIO library implements MPI-IO specifications thus providing this facility to C and Fortran programmers. Similarly, object-oriented languages such...
详细信息
ISBN:
(纸本)9780769549965;9781467364652
MPI provides high performance parallel file access API called MPI-IO. ROMIO library implements MPI-IO specifications thus providing this facility to C and Fortran programmers. Similarly, object-oriented languages such as java and C# have adapted MPI specifications and their implementations provide HPC facility to its programmers. These implementations, however, lack parallel file access capability which is very important for large-scale parallel applications. In this paper, we propose a java based parallel file access API called MPJ-IO and describe its reference implementation. We describe design details and performance evaluation of this implementation. We use JNI calls in our code to utilize functions from ROMIO library. In addition, we highlight the reasons for using JNI calls in our code
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 (internationalsymposium 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 (internationalsymposium on computing in object-orientedparallelenvironments) 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).
For many, java is the antithesis of a high-integrity programming language. Its combination of object-oriented programming features, its automatic garbage collection, and its poor support for real-time multi-threading ...
详细信息
ISBN:
(纸本)9781581135992
For many, java is the antithesis of a high-integrity programming language. Its combination of object-oriented programming features, its automatic garbage collection, and its poor support for real-time multi-threading are all seen as particular impediments. The Real-Time Specification for java has introduced many new features that help in, the real-time. domain. However, the expressive power of these features means that very complex programming models can be created, necessitating complexity in the supporting real-time virtual machine. Consequently, java, with the real-time extensions as they stand, seems too complex for confident use in high-integrity systems. This paper presents a java profile for-the development of software-intensive high-integrity real-time systems. This restricted programming model removes language features with high overheads and complex semantics, on which it is hard to perform timing and functional analyses. The profile fits within the J2ME framework and is consistent with well-known guidelines for high-integrity software development, such as those defined by the U.S. Nuclear Regulatory Commission. Copyright (c) 2005 John Wiley & Sons, Ltd.
object-oriented languages, such as java, encourage the use of many small objects linked together by field references, instead of a few monolithic structures. While this practice is beneficial from a program design per...
详细信息
ISBN:
(纸本)9781581135992
object-oriented languages, such as java, encourage the use of many small objects linked together by field references, instead of a few monolithic structures. While this practice is beneficial from a program design perspective, it can slow down program execution by incurring many pointer indirections. One solution to this problem is object inlining: when the compiler can safely do so, it fuses small objects together, thus removing the reads/writes to the removed field, saving the memory needed to store the field and object header, and reducing the number of object allocations. The objective of this paper is to measure the potential for object inlining by studying the run-time behaviour of a comprehensive set of java programs. We study the traces of program executions in order to determine which fields behave like inlinable fields. Since we are using dynamic information instead of a static analysis, our results give an upper bound on what could be achieved via a static compiler-based approach. Our experimental results measure the potential improvements attainable with object inlining, including reductions in the numbers of field reads and writes, and reduced memory usage. Our study shows that some java programs can benefit significantly from object inlining, with close to a 10% speedup. Somewhat to our surprise, our study found one case, the db benchmark, where the most important infinable field was the result of unusual program design, and fixing this small flaw led to both better performance and clearer program design. However, the opportunities for object infining are highly dependent on the individual program being considered, and are in many cases very limited. Furthermore, fields that are inlinable also have properties that make them potential candidates for other optimizations such as removing redundant memory accesses. The memory savings possible through object inlining are moderate. Copyright (c) 2005 John Wiley & Sons, Ltd.
Increasing interest is being shown in the use of java for scientific applications. The javagrande benchmark suite was designed with such applications primarily in mind. The perceived lack of performance of java still...
详细信息
Increasing interest is being shown in the use of java for scientific applications. The javagrande benchmark suite was designed with such applications primarily in mind. The perceived lack of performance of java still deters many potential users, despite recent advances in just-in-time and adaptive compilers. There are, however, few benchmark results available comparing java to more traditional languages such as C and Fortran. To address this issue, a subset of the javagrande benchmarks has been re-written in C and Fortran allowing direct performance comparisons between the three languages. The performance of a range of java execution environments, C and Fortran compilers have been tested across a number of platforms using the suite. These demonstrate that on some platforms (notable Intel Pentium) the performance gap is now quite small. Copyright (C) 2003 John Wiley Sons, Ltd.
Soon after java became popular for Internet applications, many other fields began looking at it. While java's original thrust was client-side applets, today its dominant use is in large enterprise servers running ...
详细信息
Soon after java became popular for Internet applications, many other fields began looking at it. While java's original thrust was client-side applets, today its dominant use is in large enterprise servers running business middleware. Its original client-side use is of secondary importance. java for high-performance computing has been a popular issue and the subject of annual workshops over the last seven years, including the latest event, javagrande ISCOPE, JGI'02, (http://***/javagrandeIscope/) held in Seattle from 3-5 November 2002. This meeting series joined forces with the internationalsymposium on computing in object-orientedparallelenvironments (ISCOPE), aimed primarily at object-oriented methods in science and engineering with an emphasis on the use of C++.
This paper describes a component-based nonlinear physical system simulation prototyping package written entirely in java using object-oriented design. The package provides scientists and engineers with a 'develope...
详细信息
This paper describes a component-based nonlinear physical system simulation prototyping package written entirely in java using object-oriented design. The package provides scientists and engineers with a 'developer-friendly' software environment for large-scale computational algorithm and physical model development. The software design centers on the Jacobian-free Newton-Krylov solution method surrounding a finite-volume treatment of conservation equations. This enables a clean component-like implementation. We first provide motivation for the development of the software and then discuss software structure. The discussion includes a description of the use of java's built-in thread facility that enables parallel, shared-memory computations on a wide variety of unstructured grids with triangular, quadrilateral, tetrahedral and hexahedral elements. We also discuss the use of java's inheritance mechanism in the construction of a hierarchy of physics systems objects and linear and nonlinear solver objects that simplify development and foster software re-use. We provide a brief review of the Jacobian-free Newton-Krylov nonlinear system solution method and discuss how it fits into our design. Following this, we show results from example calculations and then discuss plans including the extension of the software to distributed-memory computer systems. Copyright (C) 2003 John Wiley Sons, Ltd.
We present efficient support for generalized arrays of parallel data driven objects. Array elements are regular C++ objects, and are scattered across the parallel machine. An individual element is addressed by its ...
详细信息
We present efficient support for generalized arrays of parallel data driven objects. Array elements are regular C++ objects, and are scattered across the parallel machine. An individual element is addressed by its 'index', which can be an arbitrary object rather than a simple integer. For example, an array index can be a series of numbers, supporting multidimensional sparse arrays;a bit vector, supporting collections of quadtree nodes;or a string. Methods can be invoked on any individual array element from any processor, and the elements can participate in reductions and broadcasts. Individual elements can be created or deleted dynamically at any time. Most importantly, the elements can migrate from processor to processor at any time. We discuss support for message delivery and collective operations in the face of such dynamic behavior. The migration capabilities of array elements have proven extremely useful, for example, in implementing flexible load balancing strategies and for exploiting workstation clusters adaptively. We present the design, an implementation, and performance results. Copyright (C) 2003 John Wiley Sons, Ltd.
This paper reports on the design of a Fortran-to-java translator whose target language is the instruction set of the java Virtual Machine. The goal of the translator is to generate java implementations of legacy Fortr...
详细信息
ISBN:
(纸本)9781581133592
This paper reports on the design of a Fortran-to-java translator whose target language is the instruction set of the java Virtual Machine. The goal of the translator is to generate java implementations of legacy Fortran numerical codes in a consistent and reliable fashion. The benefits of directly generating bytecode are twofold. First, compared with generating java source code, it provides a much more straightforward and efficient mechanism for translating Fortran GOTO statements. Second, it provides a framework for pursuing various compiler optimizations, which could be beneficial not only to our project, but to the java community as a whole. Copyright (C) 2003 John Wiley Sons, Ltd.
The computational science community is reluctant to write large-scale computationally-intensive applications in java due to concerns over java's poor performance, despite the claimed software engineering advantage...
详细信息
ISBN:
(纸本)9781581133592
The computational science community is reluctant to write large-scale computationally-intensive applications in java due to concerns over java's poor performance, despite the claimed software engineering advantages of its object-oriented features. Naive java implementations of numerical algorithms can perform poorly compared to corresponding Fortran or C implementations. To achieve high performance, java applications must be designed with good performance as a primary goal. This paper presents the object-oriented design and implementation of two real-world applications from the field of computational fluid dynamics (CFD): a finite-volume fluid flow solver (LAURA, from NASA Langley Research Center) and an unstructured mesh adaptation algorithm (2D_TAG, from NASA Ames Research Center). This work builds on our previous experience with the design of high-performance numerical libraries in java. We examine the performance of the applications using the currently available java infrastructure and show that the java version of the flow solver LAURA performs almost within a factor of 2 of the original procedural version. Our java version of the mesh adaptation algorithm 2D-TAG performs within a factor of 1.5 of its original procedural version on certain platforms. Our results demonstrate that object-oriented software design principles are not necessarily inimical to high performance. Copyright (C) 2003 John Wiley Sons, Ltd.
暂无评论