Method speculation of object-oriented programs attempts to exploit method-level parallelism (MLP) by executing sequential method invocations in parallel, while still maintaining correct sequential ordering of data dep...
详细信息
ISBN:
(纸本)0818685913
Method speculation of object-oriented programs attempts to exploit method-level parallelism (MLP) by executing sequential method invocations in parallel, while still maintaining correct sequential ordering of data dependencies and memory accesses. In this paper;we show why the java virtual machine is an effective environment for exploiting method-level parallelism and demonstrate how method speculation can potentially speed rep single-threaded, general purpose java programs. Results from our study show that significant speedups can be achieved on data-parallel applications with minimal programmer and compiler effort. On control flow dependent programs, moderate speedups have been achieved, suggesting more significant performance improvements an these types of programs may come from more careful analysis or re-coding of the application. For both classes of applications, we discover performance debugging drastically improves speedups by eliminating or minimizing dependencies that limit the effectiveness of method speculation.
Virtual teams of programmers are a popular form of collaboration both in Open Source, and commercial software projects. In OSS (Open Source Software) projects, programmers make their own decision which project to join...
详细信息
ISBN:
(纸本)9781479941438
Virtual teams of programmers are a popular form of collaboration both in Open Source, and commercial software projects. In OSS (Open Source Software) projects, programmers make their own decision which project to join, and, therefore, the process of task allocation among the project members is emergent. In this paper, we attempt to simulate such a process based on available data from GitHub. The simulation is used to test a hypothesis regarding the efficiency of emergent task allocation. In general, we find performance of coordinated methods to be better than emergent algorithms, which leads us to conclusion that controlling team membership through invitations and work assignment is a promising direction.
Until today, the explicit specification of "software contracts" by means of class invariants and method pre- and post-conditions was only available to Eiffel developers. iContract is the first tool that prov...
详细信息
ISBN:
(纸本)0818684828
Until today, the explicit specification of "software contracts" by means of class invariants and method pre- and post-conditions was only available to Eiffel developers. iContract is the first tool that provides the same thorough support for java. iContract is a freely available source-code pre-,processor that instruments source-code with checks for class invariants as well as,pre- and post-conditions that may be associated with methods in classes and interfaces. Special comment tags (@pre, @post, @invariant) are interpreted by iContract and converted into assertion check code that is inserted into the source-code. iContract supports universal and existential quantifiers in contract expressions. Contracts are propagated via all 4 java type extension mechanisms (class extension, innerclasses, intel lace implementation and interface extension). Due to the non-mandatory nature of the comment tags, source code that contains design by contract annotations remains fully compatible with java and can thus be processed with standard java compilers, enabling a risk;free adoption of the technique in your organisation.
As java is being considered an appropriate environment for high performance computing, we describe advanced techniques of highly expressive and efficient combining of java with existing code in other languages. We pre...
详细信息
ISBN:
(纸本)3540675531
As java is being considered an appropriate environment for high performance computing, we describe advanced techniques of highly expressive and efficient combining of java with existing code in other languages. We present their example use in developing of java wrappers for the lip - a runtime support library which enables easy and portable parallelization of irregular and out-of-core problems. Sample performance comparison results of out-of-core computations in java and C are also presented.
The aim of this work is to describe a tool (Spi2java) that automatically generates java code implementing cryptographic protocols described in the formal specification language spi calculus. Spi2java is part of a set ...
详细信息
ISBN:
(纸本)0769520510
The aim of this work is to describe a tool (Spi2java) that automatically generates java code implementing cryptographic protocols described in the formal specification language spi calculus. Spi2java is part of a set of tools for spi calculus, also including a pre-processor a parser and a security analyzer The latter can formally analyze protocols and detect protocol flaws. When a protocol has been analyzed and an adequate confidence about its correctness has been reached, Spi2java can generate a corresponding correct java implementation of the protocol, thus dramatically reducing the risk of introducing security flaws in the coding phase.
Several tools exist for reasoning about java programs annotated with JML specifications. A main issue is to deal with possible aliasing between objects and to handle correctly the frame conditions limiting the part of...
详细信息
ISBN:
(纸本)3540283722
Several tools exist for reasoning about java programs annotated with JML specifications. A main issue is to deal with possible aliasing between objects and to handle correctly the frame conditions limiting the part of memory that a method is allowed to modify. Tools designed for automatic use (like ESC/java) are not complete and even not necessarily correct. On the other side, tools which offer a full modeling of the program require a heavy user interaction for discharging proof obligations. In this paper, we present the modeling of java programs used in the KRAKATOA tool, which generates proof obligations expressed in a logic language suitable for both automatic and interactive reasoning. Using the SIMPLIFY automatic theorem prover, we are able to establish automatically more properties than static analysis tools, with a method which is guaranteed to be sound, assuming only the correctness of our logical interpretation of programs and specifications.
Parallel and distributed computing have enabled development of much more scalable software. However, developing concurrent software requires the programmer to be aware of non-determinism, data races, and deadlocks. MP...
详细信息
ISBN:
(纸本)9781538609415
Parallel and distributed computing have enabled development of much more scalable software. However, developing concurrent software requires the programmer to be aware of non-determinism, data races, and deadlocks. MPI (message passing interface) is a popular standard for writing message-oriented distributed applications. Some messages in MPI systems can be processed by one of the many machines and in many possible orders. This non-determinism can affect the result of an MPI application. The alternate results may or may not be correct. To verify MPI applications, we need to check all these possible orderings and use an application specific oracle to decide if these orderings give correct output. MPJ Express is an open source java implementation of the MPI standard. Model checking of MPI java programs is a challenging task due to their parallel nature. We developed a java based model of MPJ Express, where processes are modeled as threads, and which can run unmodified MPI java programs on a single system. This model enabled us to adapt the java PathFinder explicit state software model checker (JPF) using a custom listener to verify our model running real MPI java programs. The evaluation of our approach shows that model checking reveals incorrect system behavior that results in very intricate message orderings.
Modern software uses frameworks through their Application programming Interfaces (APIs). Framework APIs may change while frameworks evolve. Client programs have to upgrade to new releases of frameworks if security vul...
详细信息
ISBN:
(纸本)9780769553047
Modern software uses frameworks through their Application programming Interfaces (APIs). Framework APIs may change while frameworks evolve. Client programs have to upgrade to new releases of frameworks if security vulnerabilities are discovered in the used releases. Patching security vulnerabilities can be delayed by non-security-related API changes when the frameworks used by client programs are not up to date. Keeping frameworks updated can reduce the reaction time to patch security leaks. Client program upgrades are not cost-free, developers need to understand the API usages in client programs and API changes between framework releases before conduct upgrading tasks. In this paper, we propose a tool ACUA to generate reports containing detailed API change and usage information by analyzing the binary code of both frameworks and clients programs written in java. Developers can use the API change and usage reports generated by ACUA to estimate the work load and decide when to starting upgrading client programs based on the estimation.
The ME platform with its server component technology Enterprise javaBeans (EJB) has become widely adopted today Services provided by ME component containers, such as container-managed persistence (CMP), facilitate the...
详细信息
ISBN:
(纸本)1932415211
The ME platform with its server component technology Enterprise javaBeans (EJB) has become widely adopted today Services provided by ME component containers, such as container-managed persistence (CMP), facilitate the development of distributed transactional applications and increase portability of EJB components. Thanks to its intensive web support through Servlets and JSPs, the ME standard easily allows web application designers to bring data stored in EJB entity beans to the Internet as HTML pages. A major problem, however, is the fact that often there are too many instances of an entity bean to be presented on a single HTML page. In our paper, we will compare different solutions to this problem. As a starting point, we will measure the performance of a naive CMP-based approach and compare it with a bean-managed persistence (BMP) approach structured in a similar way. Since the use of CMP provides many benefits, but the naive approach shows only poor performance, we finally present a variant of Sun's page-by-page iterator pattern, which, as opposed to the original, does not rely on JDBC but rather uses the new EJBQL features introduced in the new EJB 2.1 final draft in order to provide a feasible solution within the framework of CMP. In our conclusion we also identify some possible improvements to the ME standard based on our findings.
The different java Web Services toolkit and the evaluation of their performance to analyze their suitability to grid computing was discussed. The actual de-facto web services standard framework, such as AXIS that was ...
详细信息
ISBN:
(纸本)1932415262
The different java Web Services toolkit and the evaluation of their performance to analyze their suitability to grid computing was discussed. The actual de-facto web services standard framework, such as AXIS that was provided by Apache software foundation and two frameworks that aim at providing web services-like communication methods oriented to high performance computing were provided by the University of Indiana and the WSDL grid binding. The web services were oriented to transactions involving little amount of data where SOAP was the standard communication protocol used. It was found that the grid-oriented frameworks have better performances than AXIS.
暂无评论