HPCwire
 The global publication of record for High Performance Computing - LIVEwire Edition / November 20, 2003: Vol. 10, No. 3

  |  Table of Contents  |  

Features:

ENGINEERED INTELLIGENCE EXPANDS CxC PROGRAMMING LANGUAGE
by Tim Curns, Assistant Editor, HPCwire

Engineered Intelligence, based in Fort Collins, Colo., unveiled new software technology this week at SC2003. The software company, which focuses strictly on HPC software, released MPI-XF and an updated version of its own programming language, CxC. In addition, Hewlett-Packard committed to bundling its hardware to EI's software.

With its CxX product, EI is hoping to enable every scientist, not just computer science experts, to benefit from parallel computing. They want to focus on productivity for people who have never done supercomputing before.

CxC was created to make it easier for regular scientists to write programs. For instance, if someone wanted to program a biology or chemistry application, they would need to be an expert in the science, as well as a system administrator, a parallel programmer, know a bit about IT and be a computer scientist, above all. EI believes there is a larger group of scientists who can greatly benefit from parallel computing.

To enable these scientists, EI researched the problems commonly associated with clusters. Application failure, usage difficulty and the program developmenet time of the application are among the most noted cluster problems. Also, the cluster's performance often does not meet the expectations of developers. CxC was created to focus on the parallel protype environment in the development cycle. CxC lets a user create a parallel application very easily, without a cluster, through the use of a virtual language.

Matt Orberdorfer, president and CEO of EI, stated, "The prototype allows us to focus on the science, and not on the computer science. You can decide based on your science problem, how many CPUs you need."

CxC, as a language, is very close to the C and C++ languages. It has, however, a few significant differences. The programming happens in three steps. In the first step, a parallel computer is defined through three or four lines of code. The second step involves definining a communication topology between the CPUs. The third step is to program the applications running on the virtual CPUs.

"Using virtual parallel processors, CxC divides the problem up into smaller pieces that fit into cache and thereby achieves faster throughput," said Oberdorfer.

As a result of customer demand, EI also added new functionality for multi-dimensional arrays to CxC.


Top of Page

  |  Table of Contents  |