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 based on the UltraSPARCtrademark processor, 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 UltraSPARC clusters, 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

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

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

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. Initial versions are at 600, 750, and 900 MHz, with a published roadmap to 1.2 GHz. L2 cache sizes are up to 8 MBytes.

Nodes

Nodes (the units of a cluster) might be as small as workstations or workgroup servers. For example, the Sun Bladetrademark 1000 can have up to two UltraSPARC-III CPUs and 8 GBytes of main memory.

The largest server based on the UltraSPARC-III Cu microprocessor is the Sun Fire 15K. This popular server hosts up to 106 processors and over half a Tbyte of memory. Thus, a single such server may itself have the power of a reasonable-size cluster, while offering very high bandwidth, low latency, and a single, large, uniform address space to 106 CPUs at once.

Clusters

SMPs might be clustered by means of any Sun-supported TCP/IP interconnect, such as 100BASE-T Ethernet or ATM.

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.

The Sun Fire Link interconnect supports low-latency, high-bandwidth communications between Sun Fire 6800, 12K, and 15K servers. MPI latencies are typically about 2-6 microseconds between nodes. Bandwidths generally range from 400-800 Mbyte/sec. Aggregate bandwidths between nodes are 2-4 Gbyte/sec. The Sun Fire Link interconnect supports Remote Shared Memory (RSM), which allows processes on one node to write directly to memory on another node. Sun MPI exploits RSM for high MPI performance.


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 5 software runs under the Solaris 8 (32-bit or 64-bit) Operating Environment.

The Sun HPC ClusterTools suite is layered on top of the Sun compilers. Specifically, HPC ClusterTools 5 software is supported with the Sun Fortetrademark Developer 6 update 2 release and its successor, the Sun ONE Studio 7, Compiler Collection 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.

In the remainder of this chapter, we describe 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:

Further, 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 Forte Developer compilers. MPI provides full support for Fortran 77, C, and C++, and basic support for Fortran 90.

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

Sun S3L

The Sun Scalable Scientific Subroutine Library (Sun S3L) provides a set of parallel and scalable capabilities and tools that are used widely in scientific and engineering computing. Built on top of MPI, it provides highly optimized implementations of vector and dense matrix operations (level 1, 2, 3 Parallel BLAS), FFT, tridiagonal solvers, sorts, matrix transpose, and many other operations. Sun S3L also provides optimized versions of a subset of the ScaLAPACK library, along with utility routines to convert between S3L and ScaLAPACK descriptors.

S3L is thread-safe and also supports the multiple instance paradigm, which enables an operation to be applied concurrently to multiple, disjoint data sets in a single call. Sun S3L routines can be called from applications written in F77, F90, C, and C++. This library is described in more detail in Chapter 6.

Prism Environment

The Prism environment is the Sun HPC ClusterTools graphical programming environment. It enables you to develop, execute, and debug multithreaded or unthreaded message-passing programs and to visualize data at any stage in the execution of a program.

The Prism environment also supports performance profiling of message-passing programs. The analysis provides an overview of what MPI calls, message sizes, or other characteristics account for the execution time. You can display information about the sort of message-passing activity in different phases of a run, identify time-consuming events, and, with simple mouse clicks, investigate any of them in detail.

The Prism profiling capabilities are described in more detail in Chapter 9. The environment can be used with applications written in Fortran 77, Fortran 90, C, and C++.

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 Operating Environment 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 ONE Grid Engine, PBS, and the Load Sharing Facility suite from Platform Computing Corporation.