High Performance Computing Using Java
21014306
Table of Contents: Page No
1) Abstract 3
2) High Performance Computing 4
3) Java as a language 5
4) High Performance Computing in Java 6
a) Parallel processing 6
• SPMD programming model 6
b) Distributed processing 10
• Remote method Invocation (RMI) 10
5) Conclusion 14
6) References 15
1) Abstract:
Java language had big impact in IT industry and engineering applications and has grown bigger and wider since its evolution. It had also emerged as a serious contender for high performance computing. Though, java is more efficient than other programming languages it is comparatively slower than others. (Mike Ashworth(1999)).
Java has developed significantly to become a primary choice for high performance computing with the extra effort taken by its supporters (Mike Ashworth(1999)). This paper presents the processes that java uses for high performance. This paper also presents two models in detail that are used for high performance computing one each from parallel proces...
... middle of paper ...
...nal paper “Data Parallel Extensions to Java”.
4) Mike Ashworth(1999). An article named “New Language on the Block: Java for High-Performance Computing?”.
5) Bryan Carpenter and Geoffrey Fox(1998). An article named “HPspmd: Data Parallel SPMD Programming Models from Fortran to Java”.
6) Eric Bruno(2007). An article named “Implement Parallel Processing in Your Java Applications”.
7) Aart J.C. Bik and Dennis B. Gannon(2000). “Automatically exploiting implicit parallelism in Java”.
Books & Tutorials:
1) Siddhartha Chatterjee (1999). “Languages and compilers for parallel computing” a collection of proceedings from 11th international workshop.
2) Jguru. An article named “Remote Method Invocation (RMI)” from Oracle tutorials & code camps.
3) Charles Severance, Kevin Dowd(1998). High Performance Computing, Second Edition from O’Rielly media publications.
RMI: Remote Method Invocation allows an object that lives in one process to invoke methods of an object that lives in another process.
The satisfaction of turning an idea into something real never diminishes. ”- An Wang. Works Cited Lee, John A. N. Computer Pioneers. Los Alamitos, CA: IEEE Computer Society, 1995.
Over the years, computer science kept evolving; leading to the emergence of what has become a standard in modern software development: Multitasking. Whether logical or physical, it has become a requirement for today's programs. In order to make it possible it became necessary to establish the notion of concurrency and scheduling. In this essay, concurrency will be discussed as well as two types of scheduling; pre-emptive used in threads and cooperative used in agents, their similarities and differences.
In terms of teaching, our undergraduate and graduate curriculum provides a timely and well-rounded view of the field, with special emphasis on the practical aspects of building useful software. Our strengths lie in the traditional mainstream of areas of computer science: algorithms, programming languages, operating systems, distributed computing, networks, databases and theory of computing. We also offer courses in some subfields: graphics, artificial intelligence and the software aspects of computer architecture. The department's programs prepare students for positions in the design and development of computer systems and applications, in business and industry, and for scientific positions in industrial or academic computing research.
Schlager, Neil, and Josh Lauer. "The History, Development, and Importance of Personal Computers." Science and Its Times 7 (2001): n. pag. Print.
However, this growth was unregulated and while the surge in new programming languages was an exciting advancement, the development of numerous languages for the same basic use resulted in reprogramming being as costly as initial programming and the need to entirely reprogram applications with the purchase of a new computer. Such complications indicated the need for standardized languages. Despite the varied field of programming, Hopper’s main focus remains on the use of computers for businesses. Therefore, in 1959 Hopper became a technical consultant on a committee of industry and government personnel whose purpose was to develop a common business-oriented language for computer programming, later to be known as COBOL. Using FLOW-MATIC as its basic foundation, the first COBOL standard was issued by the American National Standards Institute and it became widely adopted.
Kilmann, R. H. (2011, April). CPP Author insights [Fact sheet]. Retrieved from CPP.com Web site: https://www.cpp.com/products/tki/index.aspx
Brookshear, J. G., Smith, D. T. and Brylow, D. (2011) Computer Science: An Overview. 11th ed. Prentice Hall / ADDISON WESLEY Publishing Company Incorporated. Available at: http://books.google.com/books?id=LbtoewAACAAJ.
Murakami, K.; Inoue, K.; and Miyajima, H.; “Parallel Processing RAM (PPRAM) (in English),” Japan-Germany Forum on Information Technology, Nov. 1997.
This white paper identifies some of the considerations and techniques which can significantly improve the performance of the systems handling large amounts of data.
Houghton. A Brief Timeline in the History of Computers. Western Carolina University Retrieved January 30th 2014 from Western Carolina University:
Berzal (2005) investigated on the tools and frameworks that are available for Java application development. This was to explore the merits and demerits of tools and frameworks. This researcher made good review of various frameworks in Java platform. The frameworks include Struts, Tapestry, WebWork, InternetBeans Express, Velocity and Cocoon. The purpose of these frameworks is to help developers build web applications systematically. They all support the design pattern Model-View-Controller (MVC) (Berzal, 2005).
It was pure joy to learn how the Boolean logic makes computers work. In my undergraduate study I had taken up courses on Software Engineering, Computer Networks, Data Structures, JAVA, Operating Systems, Computer Graphics, Design and Analysis of Algorithms, Database Management, Web Technology and Mobile Application Development. Practical application aspects were introduced to me through laboratories correspond...
Software engineering is important in today’s society because we use the products of software engineering almost daily. We use the products of software engineering in objects as simple as our car keys to objects as complicated as supercomputers. The past, present, and future of software engineering is quite interesting. This paper will provide information about this field of study and why software engineering is going to be around a while.
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).