
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.
|