Abstract—High Performance Computing (HPC) provides support to run advanced application programs efficiently. Java adaptation in HPC has become an apparent choice for new endeavors, because of its significant characteristics. These include object-oriented, platform independent, portable, secure, built-in networking, multithreading, and an extensive set of Application Programming Interfaces (APIs). Consequently multi-core systems and multi-core programming tools are becoming popular. However, today the leading HPC programming model is Message Passing Interface (MPI). In present day computing, while writing a parallel program for multi-core systems in distributed environment may deploy an approach where both shared and distributed memory models are used. Moreover an interoperable, asynchronous, and reliable working environment is required for programmers and researchers to build the HPC applications. This paper reviews the existing MPI implementations in Java. Several assessment parameters are identified to analyze the Java based MPI models; including their strengths and weaknesses.
Keywords-HPC; Java; message passing; MPI
I. INTRODUCTION
Nowadays, there is a persistent demand for greater computational power to process large amount of data. HPC makes previously unachievable calculations possible. Today the modern computer architectures are relying more and more upon hardware level parallelism. They attain computing performance, through realization of multiple execution units, pipelined instructions [1] and multiple CPU cores [2]. The largest and fastest computers use both shared and distributed memory architectures. Contemporary trends show that the hybrid type of memory architectures will continue to prevail [3].
Modern practice...
... middle of paper ...
...ournal of Supercomputing, 2009.
[27] Ian Foster, “The Anatomy of the Grid: Enabling Scalable Virtual Organizations,” in Proc. 7th International Euro-Par Conference on Parallel Processing, Manchester, 2001, pp. 1–4.
[28] Myrinet webpage on MYRI. [Online]. Available: http://www.myri.com/myrinet/overview
[29] Infiniband website. [Online]. Available: http://www.infinibandta.org
[30] D. B. Gustavson, "The Scalable Coherent Interface and Related Standards Projects," IEEE Micro, 18(12):10-22, 1992.
[31] J. R. Graham, “Comparing parallel programming models,” Journal of Computing Sciences in Colleges, 23(6):65-71, 2008.
[32] Java Grande Forum homepage. [Online]. Available: http://www.javagrande.org
[33] R. V. v. Nieuwpoort et al., “Ibis: an Efficient Java based Grid Programming Environment”, Concurrency and Computation: Practice and Experience, 17(7-8):1079-1107, 2005.
"IBM's ASCC introduction." IBM Archives: IBM's ASCC (a.k.a. The Harvard Mark I). Ed. IBM. IBM. 11 Apr. 2014 .
Seitz, Brian K. "Concurrent Engineering Comes of Age." Software Strategies Magazine, June 1997. Web. .
This white paper identifies some of the considerations and techniques which can significantly improve the performance of the systems handling large amounts of data.
Kleinjohann, B. (2001). Architecture and Design of Distributed Embedded Systems: IFIP WG10.3/WG10.4/WG10.5 International Workshop on Distributed and Parallel Embedded Systems (DIPES 2000) October 18-19, 2000, Schloタ Eringerfeld, Germany. Boston, MA: Springer US.
N.D. Shah, Y.H. Shah, H Modi, “Comprehensive Study of the Features, Execution Steps and Microarchitecture of the Superscalar Processors”, IEEE International Conference on Computational Intelligence and Computing Research (ICCIC), pp. 1-4, December 2013.
In HDLs, the problem of parallel updates to a shared resource is solved by updating only one “process” and exactly one possible new value for x is specified for every clo...
Ceruzzi, P. E. (1998). A history of modern computing (pp. 270-272). London, England: The MIT Press.
The evolution of the graphics processing unit over the years has been towards a better floating point performance. NVIDIA introduced its parallel architecture called “Compute Unified Device Architecture” in 2006-2007 and change the outlook of GPU computing. The CUDA has a significant number of processor cores that work together to chomp the data set given in the application. GPU computing or General Purpose GPU is the use of a GPU (Graphics Processing Unit) to do general purpose scientific and engineering computing. The model for GPU computing is to use a central processing unit and a graphics processing unit together in a heterogenous co-processing computing model. he computationally-intensive part is accelerated by the GPU and the sequential part of the appli...
In the past few decades, one field of engineering in particular has stood out in terms of development and commercialisation; and that is electronics and computation. In 1965, when Moore’s Law was first established (Gordon E. Moore, 1965: "Cramming more components onto integrated circuits"), it was stated that the number of transistors (an electronic component according to which the processing and memory capabilities of a microchip is measured) would double every 2 years. This prediction held true even when man ushered in the new millennium. We have gone from computers that could perform one calculation in one second to a super-computer (the one at Oak Ridge National Lab) that can perform 1 quadrillion (1015) mathematical calculations per second. Thus, it is only obvious that this field would also have s...
Paging is one of the memory-management schemes by which a computer can store and retrieve data from secondary storage for use in main memory. Paging is used for faster access to data. The paging memory-management scheme works by having the operating system retrieve data from the secondary storage in same-size blocks called pages. Paging writes data to secondary storage from main memory and also reads data from secondary storage to bring into main memory. The main advantage of paging over memory segmentation is that is allows the physical address space of a process to be noncontiguous. Before paging was implemented, systems had to fit whole programs into storage, contiguously, which would cause various storage problems and fragmentation inside the operating system (Belzer, Holzman, & Kent, 1981). Paging is a very important part of virtual memory impl...
The Von Neumann bottleneck is a limitation on material or data caused by the standard personal computer architecture. Earlier computers were fed programs and data for processing while they were running. Von Neumann created the idea behind the stored program computer, our current standard model. In the Von Neumann architecture, programs and data are detained or held in memory, the processor and memory are separate consequently data moves between the two. In that configuration, latency or dormancy is unavoidable. In recent years, processor speeds have increased considerably. Memory enhancements, in contrast, have mostly been in size or volume. This enhancement gives it the ability to store more data in less space; instead of focusing on transfer rates. As the speeds have increased, the processors now have spent an increasing amount of time idle, waiting for data to be fetched from the memory. All in all, No matter how fast or powerful a...
Computers are very complex and have many different uses. This makes for a very complex system of parts that work together to do what the user wants from the computer. The purpose of this paper is to explain a few main components of the computer. The components covered are going to be system units, Motherboards, Central Processing Units, and Memory. Many people are not familiar with these terms and their meaning. These components are commonly mistaken for one and other.
Multithreading is the ability of an operating system to run programs concurrently that are divided into sub parts or threads. It is similar to multitasking but instead of running on multiple processes concurrently, multithreading allows multiple threads in a process to run at the same time. Threads are more basic and smaller unit of instruction. Hence multithreading can occur within a single process. Multithreading can also be defined as a combination of microprocessor design and machine code which allows computer instructions to be carried out concurrently and the results to be combined in right logical order. Programs can execute multiple tasks simultaneously by incorporating multithreading. The real purpose of multithreading is to help in proper and resource effective utilization of the hardware and software resources. Multithreading provides concurrency as it enables many programs to run in parallel and execute simultaneously thus saving time and providing efficiency (Ball et al., 2011).
A supercomputer is a workstation at the forefront of contemporary transforming limit – especially speed of count which can happen at velocities of nanoseconds.