C H A P T E R  2

Introduction: The Sun HPC ClusterTools Solution

The Sun HPC ClusterTools suite is a solution for high-performance computing. It provides the tools you need to develop and execute parallel (message-passing) applications. These programs can run on any Sun system, from a single workstation up to a cluster of high-end symmetric multiprocessors (SMPs).

This chapter presents an overview of the hardware and software products that Sun Microsystems provides for high-performance computing, with emphasis on the components of the Sun HPC ClusterTools software suite.


Sun HPC Hardware

Programs written with Sun HPC ClusterTools software run on the whole line of Sun servers and workstations. This feature enables you to exploit all available hardware in achieving performance.

For detailed information on UltraSPARC-based computing see:

http://www.sun.com/sparc

http://www.sun.com/desktop

http://www.sun.com/servers

For detailed information on AMD Opteron x64-based computing, see:

http://www.sun.com/x64/index.html

This section notes the performance-related features of Sun SMPs and clusters. These will be important in the first step of performance programming, choosing your tools and hardware, discussed in Chapter 3.

Processors

UltraSPARC microprocessors are a full implementation of the SPARC V9 architecture, which provides high-performance, 64-bit computing in a Solaris Operating System.

The UltraSPARC-I processor introduced this family in 1995.

The UltraSPARC-II processor supports CPU clock speeds in the range of 250-480 MHz and L2 cache sizes up to 8 bytes.

The UltraSPARC-III processor, introduced in 2000, has complete binary compatibility with older applications, while introducing new performance enhancements for programs that target only the latest processors. Clock speeds of up to 1.2 GHz are supported. L2 cache sizes are up to 8 Mbytes.

The UltraSPARC IV processor has clock speeds up to 1350MHz, with L2 cache sizes of up to 16 Mbytes. Its successor, the UltraSPARC IV+ processor supports initial clock speeds of up to 1.5 MHz. The UltraSPARC IV+ contains a different caching scheme than its predecessor, which allows it to support 2 MB of L2 cache on-chip as well as 32 Mbytes of external L3 cache.

The AMD Opteron 200 Series processors in Sun Fire trademark network servers have clock speeds of up to 2.4 GHz with 1 Mbytes of L2 cache per core on single- or dual-core servers.

Nodes

Nodes (the units of a cluster) might be as small as a single workstation or server, or as large as a high-end server containing multiple processors.

Clusters

SMPs might be clustered by means of any Sun-supported TCP/IP interconnect, such as Gigabit Ethernet or Infiniband.

Individual Sun HPC ClusterTools message-passing applications can have up to 2048 processes running on as many as 256 nodes of a cluster. The programmer must manage the location of data in the distributed memory and its transfers between nodes.


Sun HPC ClusterTools Software

Sun's HPC message-passing software supports applications designed to run on single systems and clusters of SMPs. Called Sun HPC ClusterTools software, it provides the tools for developing distributed-memory parallel applications and for managing distributed resources in the execution of these applications.

Sun HPC ClusterTools 6 software runs under the Solaris 10 (32-bit or 64-bit) Operating System (Solaris OS).

The Sun HPC ClusterTools suite is layered on top of the Sun compilers. Specifically, HPC ClusterTools 6 software is supported with the Sun Studio Compiler Collection 8, 9, 10, and 11 release. The compiler collections include Fortran, C, and C++ compilers, Sun Performance Library software, and the Performance Analyzer, all of which can be used to develop single-process or multithreaded programs. The HPC ClusterTools software extends such shared-memory programming with message passing, so that parallel programs can run distributed over multiple processes, potentially on multiple nodes of a cluster. The relationship between HPC ClusterTools software and the compiler collection are explored further in Chapter 3.

The remainder of this chapter describes some HPC ClusterTools features that extend shared-memory programming:

Sun MPI

Sun MPI is a highly optimized version of the Message-Passing Interface (MPI) communications library. This dynamic library is the basis of distributed-memory programming, as it enables the programmer to create distributed data structures and to manage interprocess communications explicitly.

MPI is the de facto industry standard for message-passing programming. You can find more information about it on the MPI web page and the many links it provides:

http://www.mpi-forum.org

Sun MPI is a complete library of message-passing routines, including all MPI 1.2 compliant and MPI 2 compliant routines. In addition, Sun MPI provides the following features:

In addition, any party can provide additional protocol modules to interoperate with Sun MPI and support high-performance message passing over any interconnect. At run time, Sun MPI chooses from among all loaded protocol modules to effect best performance.

Sun MPI programs are compiled on Sun Studio compilers. MPI provides full support for Fortran 77, C, and C++, and basic support for Fortran 90.

Chapter 4 and Appendix A of this manual provide more information about Sun MPI features, as well as instructions for getting the best performance from an MPI program.

Cluster Runtime Environment

The Cluster Runtime Environment (CRE) component of Sun HPC ClusterTools software serves as the runtime resource manager for message-passing programs. It supports interactive execution of Sun HPC applications on single SMPs, or on clusters of SMPs.

CRE is layered on the Solaris OS, but enhanced to support multiprocess execution. It provides the tools for configuring and managing clusters, nodes, and logical sets of processors (partitions).

Alternatively, Sun HPC message-passing programs can be executed by third-party resource-management software, such as Sun N1 Grid Engine (N1GE) Version 6, Platform Computing LSF HPC Version 6.2, and OpenPBS Portable Batch System (PBS) 2.3.16 and Altair PBS Professional 7.1.