About the HPCC Roadmap


This HPCC Roadmap is a guide to High Performance Computing and Communications applications, algorithms, software and technologies. It is being developed as part of the National HPCC Software Exchange. The goal is to provide the user with relevant information, review articles, and software for HPCC application and technology areas.

Note:The Roadmap is still in the early stages of construction.

There are many different possible ways of constructing a roadmap to HPCC, since different people will be approaching the area from many different perspectives -- different goals, technical backgrounds, fields of study, applications, algorithms, computing platforms, environments (government, academia or industry), and so on. Ideally the roadmap would be customized for each perspective, but this is a virtually impossible task. Instead, we have tried to create a roadmap from a small number of the most useful and general perspectives -- applications, algorithms, and technologies. However it is sometimes difficult to place a particular topic or piece of software into one of these three categories, so this is not a perfect breakdown (it is not an orthogonal basis set!), and there will be overlaps between these areas.

Applications are projects designed to solve a specialized problem, such as designing an aircraft, understanding how galaxies are formed, forecasting the weather, etc.

Algorithms are methods to solve a more narrowly-defined problem of a smaller granularity than an application, such as inverting a matrix, coloring a graph, or generating a stream of random numbers. The same algorithm may be used in many different applications.

Technologies are the tools used to enable the application or algorithm, such as parallel computers, computer languages and compilers, debuggers and performance tools, visualization environments, etc.

For example, calculating the properties of fundamental particles using computer simulation (lattice QCD) is an application studied by many high-energy physicists. It uses a number of algorithms such as Monte Carlo methods, random number generation, matrix inversion and statistical analysis of the data. The simulations are often run on parallel supercomputers, so some of the enabling technologies are parallel languages and compilers (such as MPI or HPF), and profiling and performance monitoring tools.

Applications

The NHSE does not have much software at the application level (e.g. the full software package to do lattice QCD simulations) since it is so specialized for a particular application or area of study and is thus not usually reusable by other people. However the algorithms and enabling technologies used can be used in many different applications, and this is the kind of software that can be accessed at the NHSE.

Algorithms

The categorization of algorithms cannot be exact since since what an algorithm is called, or to what granularity it is divided, depends on the background and specialist discipline of the person and the application they are developing.

Complex applications often involve several algorithmic components, but usually only one or two will dominate the computational performance. The software in the NHSE is mostly at the granularity of a particular algorithm (which may be used in a number of different applications). so this categorization is more useful for finding software.

Technologies

The NHSE contains a lot of software for HPCC enabling technologies, and this category contains information about using HPCC and pointers to software such as parallel languages and compilers, profiling and debugging tools, visualization systems, etc.

Roadmap Information For Each Area

Within each of these perspectives we are constructing a heirarchy of information, with pointers (hyperlinks) connecting each of the levels to allow the user to find more detailed information. The levels of the heirarchy include:

The information provided is a combination of structured (or edited) information, consisting of a relatively small number of pointers to the most useful information, and unstructured (unedited) information, consisting of pointers to all available information, generated automatically by search engines. Structured information is of course more useful to the user, however it takes much more effort and resources to generate and maintain, and is difficult to keep up-to-date. The unstructured information is more up-to-date and comprehensive, but requires far more effort on the part of the user in order to extract useful information.

We are enlisting experts to write review articles in their field of expertise, which guide people to interesting applications and the best algorithms and technologies for particular applications. Also, we want to use advancing Web technology to allow groups of people to contribute to up-to-date knowledge systems for particular areas, in place of the simple library-style pointers to information and software that are currently being used.

Links Between Different Areas

Another crucial element is the linkage between the different categories. A researcher investigating a particular application will want to find information and software for this application, or for key algorithms used in the application, and may need to utilize different software (or even different algorithms) depending on the computing platforms being used. So an entry for a particular application will refer to the algorithms and technologies it uses, an entry for an algorithm will refer to the technologies needed and the applications which use the algorithm. From the technological perspective, we can for example distinguish between compute intensive applications (which need fast processors) and data intensive applications (which need large and fast memory systems). Traditional scientific applications mostly fall into the former category, whereas most database and business applications fall into the latter.


NHSE HPCC Roadmap, roadman@npac.syr.edu.
Last updated Dec 1 1996 by PDC.