Mixing C and Java(trade mark) for High Performance Computing

Abstract

Performance computing software, especially high performance embedded computing (HPEC) software, is typically developed in C for processing as well as infrastructure functionality. Infrastructure includes communications, processor/core allocation, task management, job scheduling, fault detection, fault handling, and logging. C and optimized assembler language libraries are used to achieve the highest processing performance relative to limitations on size, weight, and power dissipation. There has been a trend to move away from dedicated logic and specialty programmable processors to commodity-based processors. As a result, it is now possible to examine more robust software options. Many of these functions, especially infrastructure functions, can be implemented quickly and safely utilizing Java(trademark) frameworks but some doubt that the performance can be satisfactory. Java frameworks have extensive open source and vendor support, and Javas platform independence reduces the need to redevelop functions as hardware and operating systems evolve. Tests show that the performance of Oracle(registered trademark) Java(trademark) 7 Standard Edition (on Intel processors) can equal that of C for some problems if dynamic object creation is used judiciously and the application can afford a brief start-up and warm-up time. Java can invoke native libraries very quickly. With some of the available bridging technologies it can natively allocate data and even extend its garbage collection discipline to such data. Even though there is some additional Java overhead for invoking and utilizing graphics processing units, in tests it was able to utilize the graphical processing unit (GPU) at the same rate as native C code when the data was allocated natively.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Sep 01, 2013
Accession Number
AD1107257

Entities

People

  • Nazario Jr Irizarry

Organizations

  • MITRE Corporation

Tags

Communities of Interest

  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Central Processing Units
  • Computer Programming
  • Computer Programs
  • Computers
  • High Performance Computing
  • Linear Algebra
  • Load Monitoring
  • Network Protocols
  • Object Code
  • Object-Oriented Programming Language
  • Operating Systems
  • Parallel Computing
  • Parallel Processing
  • Software Design
  • Software Development
  • Software Development Tools
  • Test Methods

Fields of Study

  • Computer science

Readers

  • Database Systems and Applications
  • Economics
  • Parallel and Distributed Computing.