HPCwire

Leading HPC
Solution Providers





















HPCwire >> Blogs

Blog: From the Editor

From the Editor | Main Blog Index

HPC Programming For the Masses


Much of the bleeding edge work that goes on in the global high performance computing community takes place in federally funded supercomputing centers and laboratories around the world. These are the places destined to get the first petascale supercomputers, where grand challenge applications can be pushed to their grandest limits. But now that high performance computing is firmly entrenched in all types of organizations -- commercial, academic and government -- it's safe to say that mainstream HPC is much more common than high-end supercomputing.

This democratization of supercomputing means cluster computing machines have become the de facto HPC architecture for people without deep pockets, i.e., most of the world. This is the reason the cluster model has become the dominant force shaping the industry, and the reason why the number of departmental and workgroup cluster systems are growing at double-digit rates. Since the way people use capability supercomputers is rather different from the way they use cluster computing, this dichotomy tends to split the HPC community in a variety of ways. One of the most important ways this manifests itself is the different ways HPC software is developed.

The legacy applications and libraries of high performance computing are almost entirely written in Fortran or C, with MPI thrown in to provide the parallelism. This level of technology almost always requires a software engineer to be in the room when any non-trivial application is developed. This is a workable arrangement for supercomputing centers and the national labs; programmers can be sequestered on demand. In this environment, plenty of time is devoted to squeeze the last bit of performance from the application. Such are the advantages of federally funded enterprises (at least when they're properly funded).

Once you leave the rarified atmosphere of supercomputing centers and national labs, the situation changes. As I've implied in previous articles on the subject, not every department or workgroup is going to be able to afford their very own software engineer. It's a simple numbers game. So if these groups are planning to develop their own applications, rather than just using someone else's, then another programming model must be considered.

One promising development is the emergence of high-level parallel languages like UPC (Universal Parallel C), CAF (Co-Array Fortran), and Titanium (parallel Java). Also in process is the development of the High Productivity Computing Systems (HPCS) language being pursued with DARPA money. Currently there are three HPCS languages: Chapel, X10, and Fortress. Eventually DARPA will whittle these down to one. In general though, this entire group represents third generation languages (3GLs) with built-in constructs for parallelism.

By increasing the level of abstraction for parallelism, these languages promise to increase productivity for HPC development. But by themselves, they won't be able to deliver high performance computing to the small developer.

Why not?

Because they are high-level languages in name only. The term is applied to any language that rises above the abstraction of assembly code. This includes all 3GLs like C/C++, Fortran, Java, etc. To be honest, true high-level programming languages don't exist yet. I mean this in the same sense that high-level human languages don't exist either. Is Mandarin high-level? Certainly not to me. All these "new" parallel programming languages will still be dependent on software engineers.

There are other programming models that may come to play a very important role in high performance computing. They fall under the general categories of domain specific languages (DSLs) and fourth generation languages (4GLs). As compared to a general-purpose language, DSLs attempt to be expressive for a specific subject matter or domain, while 4GLs emphasize higher level of abstraction. For both types, the execution model is often interactive, rather than compiled. Much of this technology is built on 3GLs, making use of both the older language environments and 3GL libraries.

In practice, the features of these DSLs and 4GLs overlap quite a bit, and are often just referred to as "very high-level languages". Because these languages target rather large domains and usually provide greater abstraction, they are accessible to a wider audience. Specifically, they are targeted to people without formal computer science training.

Example of these languages include MATLAB for scientific and mathematical computing; SQL for database applications; and Excel for financial and other numerical business applications. Today, all three of these have parallelized variants. The MathWorks and Interactive Supercomputing (ISC) have their own versions of a parallel-enabled MATLAB. In this week's issue we discuss ISC's version with Bill Blake, the new CEO. Parallel versions of SQL have been developed by a number of vendors. For example, both Microsoft and Oracle have built platforms that can distribute SQL database queries across multiple machines. Finally, Microsoft is combining an Excel Services front end with Microsoft Windows Computer Cluster Server 2003 to parallelize spreadsheet computations. A prototype was demonstrated at the SIA (Securities Industry Association) Technology Management Conference last June.

While parallel programming languages like UPC may help increase productivity for the HPC elite, my money is on the parallelized versions of the DSLs/4GLs to help spread HPC to the masses. At least until we get to the 5GLs.

-----

As always, comments about HPCwire are welcomed and encouraged. Write to me, Michael Feldman, at editor@hpcwire.com.

Posted by Michael Feldman - February 9 @ 12:00AM

(Digg, Technorati, more)

Discussion

There are 0 discussion items posted.  

Michael Feldman

Michael Feldman is the editor of HPCwire.

More Michael Feldman



Recent Comments

Feature Articles

Book Review: Petascale Computing: Algorithms and Applications

Petascale Computing: Algorithms and Applications, edited by David A. Bader, is the first book in CRC's Computational Science Series, edited by Horst Simon. Although the book is a collection of papers, Bader has done an excellent job of creating a compilation that holds together and covers a broad topic very well.
Read More...

The Week in Review

Cilk++ used in parallelization of the FP-tree algorithm for pattern mining; Istanbul benchmark results posted; and the latest on the NVIDIA Tesla shortage. John West recaps those stories and more in our weekly wrap-up.
Read More...

A Trio of HPC Offerings Unveiled at ISC

Last week's International Supercomputing Conference (ISC'09) was a convenient excuse for vendors to announce a raft of new products, but three, in particular, stood out.
Read More...

Top Headlines

NSA Plans Massive, 65MW, $2B Data Center in Utah

Jul 06 | The Register | NSA looks to tap into cheap electrical power for new supercomputers. Read more...

Building the Computer That Could Halt Nuclear Armageddon

Jul 06 | TechRadar | Breaking the exaflops barrier will help keep the nation's nuclear weapons safe. And that's just the start. Read more...

Cloudy With a Chance of HPC

Jul 01 | GenomeWeb Daily News | The popularity of cloud computing in the life sciences community was on full display at April's Bio-IT World conference. Read more...

HPC From the Beach

Jul 01 | Linux Magazine | How can getting to the ocean help with HPC computing? Read more...

DARPA Investigates Extreme Supercomputing

Jun 29 | GCN.com | Agency issues RFI for "Ubiquitous High Performance Computing" systems. Read more...

Featured Whitepapers

Building High Performance Computing in a Green and Modular Solution Building Block

Apr 14 | | Many HPC IT departments are feeling the rising pressure to deliver more capacity computing and performance while trying to reduce the total cost of ownership. This white paper discusses how an environmentally-friendly and open-standards HPC building block based computing system using flexible interconnect options helps address capacity computing needs.

Multimedia

Webcast: Dell Expands HPC Access and Adoption with Intel Cluster Ready Program


Source: Addison Snell, GM/VP, Tabor Research; sponsored by Dell

Many organizations that could benefit from the use of HPC clusters find that it is complicated to get the systems up and running because of limited IT resources or the complexities of the clusters themselves. Learn how the Intel Cluster Ready program, for which Dell was an original partner, seeks to address this challenge for entry level and mid-range HPC users.

Video White Paper: Architecting a Better Network Storage Solution

BlueArc's Titan architecture represents an evolutionary step in file servers by creating a hardware-based file system that can scale bandwidth, IOPS, and overall data capacity well beyond conventional software-based devices. With its ability to virtualize a massive storage pool of up to four usable petabytes of tiered storage, Titan can scale with growing data requirements, offering a competitive advantage for businesses, researchers, or other enterprises seeking to better manage data growth while still ensuring optimal performance.

Webcast: HPC Development Solutions: Sun Studio & Sun HPC ClusterTools


Sun Studio Compilers and Tools and Sun HPC ClusterTools allow you to create high performance parallel applications for OpenSolaris, Solaris and Linux. Sun Studio Express 11/08 includes MPI performance analysis capabilities and full OpenMP 3.0 compiler support. Learn about all this and the latest in Sun HPC ClusterTools 8.1.

Blogs by Topics

Blogs by Author

HPC Blogroll



Featured Events


WORLDCOMP 2009
Data Mining Courses