首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
F-MPJ: scalable Java message-passing communications on parallel systems   总被引:1,自引:0,他引:1  
This paper presents F-MPJ (Fast MPJ), a scalable and efficient Message-Passing in Java (MPJ) communication middleware for parallel computing. The increasing interest in Java as the programming language of the multi-core era demands scalable performance on hybrid architectures (with both shared and distributed memory spaces). However, current Java communication middleware lacks efficient communication support. F-MPJ boosts this situation by: (1) providing efficient non-blocking communication, which allows communication overlapping and thus scalable performance; (2) taking advantage of shared memory systems and high-performance networks through the use of our high-performance Java sockets implementation (named JFS, Java Fast Sockets); (3) avoiding the use of communication buffers; and (4) optimizing MPJ collective primitives. Thus, F-MPJ significantly improves the scalability of current MPJ implementations. A performance evaluation on an InfiniBand multi-core cluster has shown that F-MPJ communication primitives outperform representative MPJ libraries up to 60 times. Furthermore, the use of F-MPJ in communication-intensive MPJ codes has increased their performance up to seven times.  相似文献   

2.
严忠林 《计算机工程》2011,37(16):62-64
C指针的处理是C to Java代码自动转换系统中一个重要而困难的问题。已有的方法大多不能处理含有技巧的指针代码,转换生成的代码难以理解,往往无法正确执行。基于此,提出一种可用Java实现C指针所有功能的方案,该方案在类型转换后不改变原程序结构,并保持尽可能高的运行效率。示例分析表明,运用该方法可使各种类型的C指针运用都能自动转换为执行正确、结构清晰、修改方便、运行快捷的Java代码。  相似文献   

3.
Only two Java viruses are known and have been published as a proof-of-concept: StrangeBrew and BeanHive. Since then the Java programming language has matured and greatly evolved to include a large number of new, sophisticated functionalities. At the same time, no serious study has been conducted to assess the potential viral risk attached to the new Java language. The potential threats have not really been explored yet. This article presents the state-of-the-art of Java viral capabilities and identifies some new techniques specific to the Java features that could be efficiently used by an attacker to spread malicious codes by means of Java classes. While this paper primarily focuses on targeting Java applications and not applets, the latter case will nonetheless be addressed among the different ways an actual attack could be launched by means of Java malicious codes. The protection and cure against such codes are also considered, dealing with the analysis of these programs at the bytecode level  相似文献   

4.
In the 1990s the Message Passing Interface Forum defined MPI bindings for Fortran, C, and C++. With the success of MPI these relatively conservative languages have continued to dominate in the parallel computing community. There are compelling arguments in favour of more modern languages like Java. These include portability, better runtime error checking, modularity, and multi‐threading. But these arguments have not converted many HPC programmers, perhaps due to the scarcity of full‐scale scientific Java codes, and the lack of evidence for performance competitive with C or Fortran. This paper tries to redress this situation by porting two scientific applications to Java. Both of these applications are parallelized using our thread‐safe Java messaging system—MPJ Express. The first application is the Gadget‐2 code, which is a massively parallel structure formation code for cosmological simulations. The second application uses the finite‐domain time‐difference method for simulations in the area of computational electromagnetics. We evaluate and compare the performance of the Java and C versions of these two scientific applications, and demonstrate that the Java codes can achieve performance comparable with legacy applications written in conventional HPC languages. Copyright © 2009 John Wiley & Sons, Ltd.  相似文献   

5.
Android Java应用程序(APP)运行时需依赖Dalvik虚拟机环境,从而影响APP的性能表现.C/C++程序具有极好的硬件适应能力,但不能直接开发Android APP.针对该问题,利用Dalvik虚拟机支持JNI (Java Native Inter-face)调用的特点,设计了基于Qt的Android APP C/C++开发方法框架体系,给出了框架的详细工作机制和解决方案,系统总结了利用C/C++开发Android APP的主要过程和步骤.最后,以Android版机械CAD导教APP的开发工作为例,验证了方法的有效性和可行性,为直接利用C/C++开发Android APP提供了一种新途径.  相似文献   

6.
As network‐enabled embedded devices and Java grow in their popularity, embedded system researchers start seeking ways to make these devices Java‐enabled. However, it is a challenge to apply Java technology to these devices due to their shortage of resources. In this paper, we propose EJVM (Economic Java Virtual Machine), an economic way to run Java programs on network‐enabled and resource‐limited embedded devices. Espousing the architecture proposed by distributed JVM, we store all Java codes on the server to reduce the storage needs of the client devices. In addition, we use two novel techniques to reduce the client‐side memory footprints: server‐side class representation conversion and on‐demand bytecode loading. Finally, we maintain client‐side caches and provide performance evaluation on different caching policies. We implement EJVM by modifying a freely available JVM implementation, Kaffe. From the experiment results, we show that EJVM can reduce Java heap requirements by about 20–50% and achieve 90% of the original performance. Copyright © 2001 John Wiley & Sons, Ltd.  相似文献   

7.
计算机软件测试研究   总被引:10,自引:0,他引:10  
计算机系统软件性能测量是计算机系统性能评价的重要手段。文章讨论了使用程序监视器对软件的覆盖率、执行时间、内存占用情况进行测试,分析程序结构和数据结构,并针对其性能瓶颈,提出了对程序进行改进的方法,从而提高程序代码的质量和性能,保证软件可靠高效运行。  相似文献   

8.
传统的Java程序利用软件Java虚拟机(Java Virtual Machine,JVM)对Java字节码文件进行解释或二次编译后交由本地CPU执行,其运行速度大大受限,而硬件JVM处理器可直接执行Java字节码,因而大幅提高了Java程序的运行速度,所以硬件JVM处理器是突破Java程序性能瓶颈的最有效方法.本文以Jop Java及picoJava为例,根据Java虚拟机的规范分析了硬件JVM处理器中最重要的流水线结构、堆栈结构及操作的实现方式、指令折叠技术和字节码与微码的映射技术,并提出了改进措施.  相似文献   

9.
Context: Static analysis of source code is a scalable method for discovery of software faults and security vulnerabilities. Techniques for static code analysis have matured in the last decade and many tools have been developed to support automatic detection.Objective: This research work is focused on empirical evaluation of the ability of static code analysis tools to detect security vulnerabilities with an objective to better understand their strengths and shortcomings.Method: We conducted an experiment which consisted of using the benchmarking test suite Juliet to evaluate three widely used commercial tools for static code analysis. Using design of experiments approach to conduct the analysis and evaluation and including statistical testing of the results are unique characteristics of this work. In addition to the controlled experiment, the empirical evaluation included case studies based on three open source programs.Results: Our experiment showed that 27% of C/C++ vulnerabilities and 11% of Java vulnerabilities were missed by all three tools. Some vulnerabilities were detected by only one or combination of two tools; 41% of C/C++ and 21% of Java vulnerabilities were detected by all three tools. More importantly, static code analysis tools did not show statistically significant difference in their ability to detect security vulnerabilities for both C/C++ and Java. Interestingly, all tools had median and mean of the per CWE recall values and overall recall across all CWEs close to or below 50%, which indicates comparable or worse performance than random guessing. While for C/C++ vulnerabilities one of the tools had better performance in terms of probability of false alarm than the other two tools, there was no statistically significant difference among tools’ probability of false alarm for Java test cases.Conclusions: Despite recent advances in methods for static code analysis, the state-of-the-art tools are not very effective in detecting security vulnerabilities.  相似文献   

10.
Distributed multimedia applications make diverse demands on communication services and quality of service. These requirements must be met end-to-end in an efficient and integrated manner through the enabling middleware of end systems and communication networks. The middleware should allow an adaptive quality of service (QoS) to be specified and supported; it should also provide application programming interfaces with integrated group communication support that simplify the programming task of multimedia applications. This paper focuses on the latter aspect and presents a distributed solution known as Stream Manager. Stream Manager allows heterogeneous media devices to be connected by the same session initiation procedures of Stream Manager. Through an underlying network connection management service, it allows a new group stream to be supported in addition to the OMGs unicast streams and point-to-multipoint multicast streams. The basic operations of Stream Manager and its application interfaces will be described, and the design and implementation of a prototype in Jini/Java will be presented. The performance of the prototype was measured experimentally in terms of throughput, delay, and latencies of joining and leaving a stream. We then compared its performance with that of streams handled by using Java RMI, Java sockets, and CORBA A/V stream. The performance of our system was found to be superior to that of Java RMI and comparable to that of Java socket but slightly inferior to that of CORBA A/V stream due to the higher intrinsic Java processing overhead.  相似文献   

11.
Commercial transaction processing applications are an important workload running on symmetric multiprocessor systems (SMPs). They differ dramatically from scientific, numeric-intensive, and engineering applications because they are I/O bound, and they contain more system software activities. Most SMP servers available in the market have been designed and optimized for scientific and engineering workloads. A major challenge of studying architectural effects on the performance of a commercial workload is the lack of easy access to large-scale and complex database engines running on a multiprocessor system with powerful I/O facilities. Experiments involving case studies have been shown to be highly time-consuming and expensive. In this paper, we investigate the feasibility of using queuing network models with the support of simulation to study the SMP architectural impacts on the performance of commercial workloads. We use the commercial benchmark TPC-C as the workload. A bus-based SMP machine is used as the target platform. Queueing network modeling is employed to characterize the TPC-C workload on the SMP. The system components such as processors, memory, the memory bus, I/O buses, and disks are modeled as service centers, and their effects on performance are analyzed. Simulations are conducted as well to collect the workload-specific parameters (model parameterization) and to verify the accuracy of the model. Our studies find that among disk-related parameters, the disk rotation latency affects the performance of TPC-C most significantly. Among I/O buses and number of disks, the number of I/O buses has the deepest impact on performance. This study also demonstrates that our modeling approach is feasible, cost-effective, and accurate for evaluating the performance of commercial workloads on SMPs, and it is complementary to the measurement-based experimental approaches.  相似文献   

12.
This paper proposes a new ITPS panel with special corrugated-core webs which are designed with cutouts for weight saving. The structural design problem was formulated with mass per unit area of the ITPS as the objective function and some functional requirements as constraints. We developed the optimizer fulfilling both thermal and structural functions for minimal areal density. The optimization problem was solved by interpolating the residual error of response surface approximation (RSA) with Radial Basis Function (RBF) to establish the improved RSA (IRSA). The 400 preliminary design points were obtained using Latin Hypercube Sampling method. The quadratic polynomial RSA of the ITPS sandwich panel performance was generated by the least squares method (LSM) based on finite element results and IRSA was used to optimize the constraints. Transient heat transfer, stress and buckling analyses were conducted using finite element method (FEM). Finally, a new ITPS panel with optimal dimensions was obtained. The optimization results show that the areal density of the new ITPS panel decreases by 26.27 % compared with the previous research, which proves the potential of this new design optimization method for the future spacecraft vehicles.  相似文献   

13.
Huck  J. Morris  D. Ross  J. Knies  A. Mulder  H. Zahir  R. 《Micro, IEEE》2000,20(5):12-23
Microprocessors continue on the relentless path to provide more performance. Every new innovation in computing-distributed computing on the Internet, data mining, Java programming, and multimedia data streams-requires more cycles and computing power. Even traditional applications such as databases and numerically intensive codes present increasing problem sizes that drive demand for higher performance. Design innovations, compiler technology, manufacturing process improvements, and integrated circuit advances have been driving exponential performance increases in microprocessors. To continue this growth in the future, Hewlett Packard and Intel architects examined barriers in contemporary designs and found that instruction-level parallelism (ILP) can be exploited for further performance increases. This article examines the motivation, operation, and benefits of the major features of IA-64. Intel's IA-64 manual provides a complete specification of the IA-64 architecture  相似文献   

14.
This paper proposes the use of multiple level orthogonal (MLO) codes in multicarrier CDMA (MC-CDMA) systems. It is extremely challenging to improve system error probability performance of MC-CDMA systems with binary spreading codes in multi-user conditions, since attainable-diversity performance is severely degraged by multi-user interference (MUI) in frequency-selective fading channel conditions, even with the use of optimum multi-user detection (MUD) methods. MLO codes are shown to improve system error probability performance in heavily-loaded or fully-loaded systems, in comparison to binary codes. Some widely used MLO code generation methods are summarized, and a new generation method is also provided. The performance advantage of MLO codes over binary codes is analyzed by treating the spreading process in MC-CDMA as a coding process and via analysis of pair-wise sequence error probability. Rules for choosing desirable MLO codes for multi-user MC-CDMA are also given. Numerical results show that MLO codes can provide a substantial performance improvement in fully-loaded systems. For example, for a K = 4 user system with spreading gain L = 4, our system can obtain a diversity order of 3, whereas the binary code system diversity order is only slightly larger than 1. The MLO code application provides a new way to compensate for multi-user interference (MUI) and makes MC-CDMA more attractive for future high data-rate transmission systems.  相似文献   

15.
O'Connor  J.M. Tremblay  M. 《Micro, IEEE》1997,17(2):45-53
Our goal is to describe the picoJava-I architecture. To do so, we first describe characteristics of the Java Virtual Machine that are of interest to a processor designer. To illustrate the microarchitecture trade-offs made for picoJava-I, we also present statistics on the dynamic distribution of byte codes for various Java applications as well as the impact of the Java runtime. Finally, we present the microarchitecture itself and discuss its performance. This small, flexible microprocessor core provides performance five to 20 times better than other means of Java execution  相似文献   

16.
会话外观是一种经典的EJB设计模式,其实现通常都是静态的,亦即要将EntityBean的LocalHome接口硬编码为会话外观SessionBean具体的实例变量,这在需要封装多个EntityBean时,会话外观SessionBean将变得异常复杂而难以实现和维护。本文通过对以上静态会话外观模式不足的分析,提出了一种基于Java反射机制和接口技术的、动态会话外观模式的实现策略,有效的解决了由单一会话外观来封装多个EntityBean的问题。  相似文献   

17.
Dale Parson  Zhenyu Zhu 《Software》2000,30(15):1641-1660
The JavaTM Native Interface (JNI) provides a set of mechanisms for implementing Java methods in C or C++. JNI is useful for reusing C and C++ code repositories within Java frameworks. JNI is also useful for real‐time systems, where compiled C/C++ code executes performance‐critical tasks, while Java code executes system control and feature tasks. Available JNI literature concentrates on creating Java proxy classes that allow Java clients to interact with C++ classes. Current JNI literature does not discuss Java proxies for entire C++ inheritance hierarchies; that is the topic of this paper. Our experience in reusing C++ class hierarchies within a Java framework has uncovered a set of useful techniques for constructing Java proxy class hierarchies that mirror their C++ counterparts. This report gives both high level design guidelines and specific programming idioms for constructing Java class hierarchies that serve as proxies for C++ counterparts. We begin by discussing opportunities for reuse within a proxy class hierarchy, as well as problems caused by differences between the Java and C++ approaches to inheritance. The two most significant differences are due to C++ support for invocation of a member function based on the static type of its class, and C++ support for multiple implementation inheritance. Two example C++ class hierarchies provide the basis for a set of sections that present the design guidelines and that codify the programming idioms. This work could serve as the basis for an automatic generator of Java proxy class hierarchies. Copyright © 2000 John Wiley & Sons, Ltd.  相似文献   

18.
We are pleased to present a set of papers discussing the role of Java in Science and Engineering Simulation. These were presented at a small workshop with 45 participants at Syracuse on 16-17 December 1996. This was very successful, and a follow-up event will be sponsored by ACM in Las Vegas on 21 June 1997. The growing interest in this field is also supported by an email discussion list and other materials collected at the web site http://www.npac.syr.edu/projects/javaforcse. Java and Web technology can be used in many areas of science and engineering computation. These include sophisticated user interfaces and coarse-grain integration of different modules in complex meta-applications. However, also interesting (and controversial) is perhaps the use of Java as the language used for the computationally intense parts of a scientific code. All these areas were discussed at the workshop, with promising initial results and studies reported in each case. Again applications were described both for large-scale event-driven and time-stepped simulations and also for smaller client-side applets aimed at education. The appeal of Java as a simulation language includes its object-oriented characteristics, elegant applet software distribution model and natural support of graphical user interfaces. There are also non-technical reasons to think Java will be very important. In particular, one expects children to learn Java naturally as part of their Web experiences. On entering University, I find it hard to believe that many will be willing to switch from Java to Fortran77 or Fortran90. The papers in this issue fall into five areas. The first paper (‘Java for parallel computing and as a general language for scientific and engineering simulation and modeling’ by Geoffrey C. Fox and Wojtek Furmanski) is a general overview and the next three (‘Optimizing Java bytecodes’ by Michał Cierniak an Wei Li; ‘Optimizing Java: theory and practice’ by Zoran Budimlic and Ken Kennedy; ‘Technologies for ubiquitous supercomputing: a Java interface to the Nexus communication system’ by Ian Foster, George K. Thiruvathukal and Steven Tuecke) describe base Java technology from optimized compilation to linkage with communication infrastructure. The next two papers (‘Java simulations for physics education’ by Simeon Warner, Simon Catterall and Edward Lipson; ‘Using Java and JavaScript in the Virtual Programming Laboratory: a Web-based parallel programming environment’ by Kivanc Dincer and Geoffrey C. Fox) describe uses of Java in both science and computer science education. Then we have two papers (‘Java's role in distributed collaboration by Marina Chen and James Cowie’; ‘Java enabling collaborative education, health care, and computing’ by Lukasz Beca, Gang Cheng, Geoffrey C. Fox, Tomasz Jurga, Konrad Olszewski, Marek Podgorny, Piotr Sokolowski and Krzysztof Walczak) centred on the fascinating field of collaboration. The last six papers study the critical area of parallel and distributed computing in Java. These discuss world-wide computing (‘SuperWeb: research issues in Java-based global computing’ by Albert D. Alexandrov, Maximilian Ibel, Klaus E. Schauser and Chris J. Scheiman), large-scale software integration with Java servers (‘WebFlow – a visual programming paradigm for Web/Java based coarse grain distributed computing’ by Dimple Bhatia, Vanco Burzevski, Maja Camuseva, Geoffrey Fox, Wojtek Furmanski and Girish Premchandran) and mobility (‘Resource-aware metacomputing’ by Anurag Acharya, M. Ranganathan and Joel Saltz). These three distributed computing studies are contrasted with three on parallel computing: ‘Automatically exploiting implicit parallelism in Java’ by Aart J. C. Bik and Dennis B. Gannon on shared memory; ‘SPMD programming in Java’ by Susan Flynn Hummel, Ton Ngo and Harini Srinivasan on the SPMD style, and ‘Experiments with “HP Java”’ by Bryan Carpenter, Yuh-Jye Chang, Geoffrey Fox, Donald Leskiw and Xiaoming Li on classic distributed memory data parallelism. Currently, it appears that Java promises the computational scientist programming environments which have both attractive user interfaces and high-performance execution. An important purpose of the first workshop and the follow-up events is to get a broad input and study of the issues in this field so that we can guide the rapidly moving Java juggernaut to be maximally effective for scientific and engineering computation. © 1997 John Wiley & Sons, Ltd.  相似文献   

19.
Java just-in-time (JIT) compilers improve the performance of a Java virtual machine (JVM) by translating Java bytecode into native machine code on demand. One important problem in Java JIT compilation is how to map stack entries and local variables to registers efficiently and quickly, since register-based computations are much faster than memory-based ones, while JIT compilation overhead is part of the whole running time. This paper introduces LaTTe, an open-source Java JIT compiler that performs fast generation of efficiently register-mapped RISC code. LaTTe first maps "all" local variables and stack entries into pseudoregisters, followed by real register allocation which also coalesces copies corresponding to pushes and pops between local variables and stack entries aggressively. Our experimental results indicate that LaTTe's sophisticated register mapping and allocation really pay off, achieving twice the performance of a naive JIT compiler that maps all local variables and stack entries to memory. It is also shown that LaTTe makes a reasonable trade-off between quality and speed of register mapping and allocation for the bytecode. We expect these results will also be beneficial to parallel and distributed Java computing: 1) by enhancing single-thread Java performance; and 2) by significantly reducing the number of memory accesses which the rest of the system must properly order to maintain coherence and keep threads synchronized  相似文献   

20.
In this study, a prototype of web-based distributed problem-solving environment (W-DPSE) is presented to facilitate computer aided engineering (CAE) technologies. This system provides an effective approach to distributed modeling and simulation, and in addition, to support networked collaboration such that scientists around the world could interactively, visually and experimentally explore their daily design work through the proposed system. The W-DPSE system is constructed as a three-tiered architecture, consisting of three major layers: a web client presentation interface (WCPI), computing solver servers (CSS), and a system management server (SMS). All the components within this architecture are implemented with an object-oriented approach—Java while transparent communication across these three layers is attained through the remote method invocation (RMI) technology. To generalize the applicability of the system so as to accommodate interdisciplinary and diversified applications, a novel and efficient interface is developed for wrapping legacy computation codes, including C and FORTRAN etc., as a Java component. Note that in the interface, the communication mechanisms between Java objects and legacy codes are implemented by way of java native interface (JNI) and Unix inter-process communication (IPC) provided by OS. At last, the applicability of the W-DPSE system is extensively confirmed through the practices of two engineering applications: topology optimization of structures and pollutant transport simulations of coastal waters.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号