Intel® Cluster Ready White Paper

Intel® Cluster Ready Home

When you see the Intel Cluster Ready name, you can be assured the cluster solution complies with the Intel Cluster Ready specification and has passed the tests of the Intel® Cluster Checker.

For more information read the Intel® Cluster Ready Usage Guidelines.

Look for Intel Cluster Ready solution vendors.

Making it Easier to Design, Select, Deploy, and Maintain High Performance Clusters

Executive Summary

Millions of businesses around the world could benefit from digital simulation and modeling to improve products and services, accelerate time to market, and reduce development costs. Yet many of these businesses lack the expertise needed to purchase, deploy, and use a high-performance computing cluster.

Intel® Cluster Ready is designed to help vendors meet the needs of this growing market, by making it easier to design, select, deploy, and maintain high performance clusters and the applications they run. It does this by providing a high level of assurance that any registered application will run reliably on any certified cluster, so customers can purchase and deploy a cluster with confidence it will run the applications their scientific and engineering staff rely upon to do their jobs.

Intel Cluster Ready includes:

  • An architectural definition of the cluster as a parallel application platform
  • A software tool to certify that a cluster meets the architectural requirements and to aid in testing and troubleshooting certified clusters
  • Cluster recipes providing step-by-step descriptions of how to build certified clusters
  • Documentation, support, and training to help vendors design, market, and sell certified clusters and registered applications
  • Certified hardware and registered software that customers can select and use to address their particular requirements

With these resources, hardware, software, and system vendors can develop products and solutions that work reliably together, with no need for extensive vertical integration. Even more importantly, customers with little or no experience with cluster computing can select, deploy, and maintain these solutions with a higher level of confidence they will work as expected.

This white paper describes Intel Cluster Ready and provides links to a variety of information and resources that can help vendors get started.

The Challenge: Simplifying the Delivery and Use of HPC Clusters

Traditional strategies for designing and implementing high performance computing clusters work fine for large research centers and for the research and development (R&D) departments of major corporations. These organizations have the internal resources and expertise needed to design, deploy, and manage complex computing clusters optimized for specific requirements. However, there are millions of smaller businesses-as well as departments within large organizations-that could benefit from the use of cluster computing to improve products or services, accelerate design cycles, and reduce development costs.

Given the affordability of today’s standards-based server, storage, and fabric solutions, price is no longer a significant roadblock to these companies, but complexity is. Most of them have little or no expertise in cluster computing and Linux administration. They need solutions they can select and deploy quickly and manage easily. They also need a high level of confidence that their chosen solutions will deliver desired results.

To tap into this market, hardware and software vendors and system integrators need more efficient and cost-effective ways to develop and implement high performance computing solutions. Traditional cluster solutions require extensive vertical integration. Hardware and software vendors must work directly together on each implementation to ensure functionality and performance. This approach works fine when designing and deploying a massive cluster selling for hundreds of thousands or millions of dollars. However, it is far too resource-intensive for developing and deploying smaller clusters.

Answering the Challenge with Intel® Cluster Ready

The primary goal of Intel Cluster Ready is to make clusters easier to specify, buy, and deploy, so vendors can tap into the growing demand for simple, reliable, turnkey solutions. Intel Cluster Ready addresses this need by laying the foundation for “application mobility,” which in this context is the ability of any registered Intel Cluster Ready application to run correctly on any certified Intel Cluster Ready cluster.

Without application mobility, vendors must try to support many different hardware and software environments, which can take considerable time and resources. Alternatively, they can try to pick one or more “winning combinations,” which limits their potential market and introduces the risk of making a wrong choice. By providing the foundation for application mobility, Intel Cluster Ready enables vendors to take a “one-to-many” approach to hardware and software development. This creates a win-win scenario for both users and vendors.

  • Users can select and deploy a cluster more easily and with greater confidence, knowing they will be able to run any registered application right out of the box.
  • Application and cluster software providers can develop a single software version that will run reliably on any certified Intel Cluster Ready cluster. This helps to broaden their potential customer base and simplify their development processes.
  • Hardware providers can similarly simplify development and broaden their customer base by offering components that can be counted on to work as expected in all Intel Cluster Ready certified clusters and with all Intel Cluster Ready registered applications.
  • System providers can design, test and certify complete cluster implementations that can be counted on to run any Intel Cluster Ready registered application. Once a design is certified, it can be adapted within limits to address a range of customer needs without recertification. It can also be built and deployed more quickly and with less effort than traditional, one-off cluster designs.

Intel Cluster Ready in Brief
According to IDC: “The Intel Cluster Ready program aims to address this dilemma [the complexity of cluster development and use] by making available a reference architecture for Intel-based systems that hardware vendors can use to certify their configurations and that ISVs can use to test and register their applications. The chief goal of this voluntary compliance program is to ensure fundamental hardware/software integration, so that end users can get their work done even in cases where no HPC-knowledgeable IT staff are available to help. The Intel Cluster Ready program intends to allow overworked IT departments to respond more readily to end users’ HPC requirements, driving technical cluster resources further down into the organization and freeing up IT staff to focus on mainstream enterprise applications (e.g., payroll, HR, sales, CRM). The Intel Cluster Ready program wants to prevent technical computing end users from having to become, in effect, their own system integrators.”

Source: IDC Event Flash: Intel Cluster Ready.

The Intel® Cluster Ready Architecture
The Foundation for Application Portability
Intel® Cluster Ready is designed to create predictable expectations for users and providers of high-performance technical computing (HPTC) clusters. These are not experimental “test-bed” clusters or high-end “capability” clusters closely targeting specific computing requirements for specialized research. Instead, Intel Cluster Ready seeks to advance the use of HPC clusters as computing resources in production environments, primarily for customers in the commercial and industrial sectors.

Intel Cluster Ready meets this need by providing cluster hardware, software, and system providers with a precisely-defined basis for their product designs, so they can meet their customers’ production cluster requirements without having to customize their product for each individual implementation. The Intel Cluster Ready architecture is not an HPC-oriented Linux* distribution; nor is it simply another Linux cluster software stack. Instead, it complements existing Linux distributions and cluster stacks, simplifying the selection and deployment process for those who prioritize deployment of multiple applications over the total flexibility of building their own cluster to address unique specifications.

Intel Cluster Ready enables binary portability of applications. Instead of requiring customers or software vendors to recompile and link a unique binary for each platform (source portability), Intel Cluster Ready defines the target system with sufficient precision that the same application binary can be run on any Intel Cluster Ready certified platform.

Intel Cluster Ready also requires an MPI* implementation that supports multiple fabrics at runtime. As a result, registered Intel Cluster Ready applications obey the “message layer independence property” and do not need alternate binaries for different message fabrics.

The Intel Cluster Ready Solution Stack Intel Cluster Ready defines a “stack” of components that exist in every cluster, including one or more applications, a cluster software stack, one or more fabrics, and the underlying cluster hardware (Figure 1).

Fig. 1 Stack Diagram









Figure 1: Stack Diagram

Applications rely on the various software components presented by the underlying software stack, and interoperability issues arise when relevant components are not compatible. For example, the alteration of a common library file can prevent correct application performance and can be quite difficult to diagnose and repair. With an Intel Cluster Ready certified cluster, applications have a predictable software environment since the application programming interfaces (APIs), utilities, and file system structure are described by the Intel® Cluster Ready Specification. Because of the clearly-defined architectural requirements, system providers have a high level of confidence that the certified clusters they build are able to run any registered application.

If a registered application requires software not included in the specification, Intel Cluster Ready requires the application to provide that software as a part of its installation. It also requires the additional software to be installed in its own subdirectory, so it will not conflict with the cluster stack or with other applications. Although this may sometimes cause duplicate software to be installed, it helps to ensure that registered applications will run as expected.

The Intel Cluster Ready architecture is designed to ensure interoperability, but not to impede innovation. It specifies a common standard, but allows for and recommends additional features, components, and innovations that integrators can include to add value and differentiate their solutions.

An architecture definition of the cluster as parallel application platform
The Intel Cluster Ready Specification defines the requirements for a multi-node platform upon which message-passing applications can be built and run. However, it does not specify the implementation. The cluster can be stateful or diskless, fully-distributed or designed to run a single-system image (SSI), built from commercial distributions or from open source software components.

The specification also has few requirements regarding how a cluster is built, stipulating only that the operating system (OS) and software installations for the compute nodes must be performed automatically and remotely. This ensures that new, repaired, or replaced nodes can be rebuilt identically to existing nodes without any manual interaction, other than possibly initiating the build process.

Some items the specification does require include:

  • The ability to run MPI applications and X-clients on any of the compute nodes
  • Consistency of configurations and file trees among all compute nodes
  • The identical accessibility of libraries and tools across the cluster
  • Access to permanent and temporary storage and user data for every compute node
  • Access to every compute node from the head node and from every other compute node
  • MPI implementations that provide fabric independence
  • A remotely-accessible, out-of-band console on all compute nodes

The specification also requires that the runtimes for specific Intel software products are installed on every certified cluster, including:

  • Intel® C++ and Fortran Compilers
  • Intel® Math Kernel Library
  • Intel® MPI Library Runtime Environment

This requirement provides two benefits. First and foremost, it ensures that the software stack includes the components required to build an HPC cluster, a capability that is not always provided by mainstream Linux distributions. Secondly, it ensures that programs built with these software tools will always work on certified clusters and enjoy simpler installations.

Since these runtimes are directly available from the Intel website for download (see http://www.intel.com/ for more information), their inclusion does not generate additional costs. It is also important to note that certified applications do not have to use these libraries. Alternate libraries, such as other MPI implementations, can be included in the software stack. To ensure correct operation, any registered application that requires alternate libraries must include the associated runtimes as a part of its installation.

Intel® Cluster Checker Software
A Tool for Certifying, Testing, and Troubleshooting Clusters
Intel® Cluster Checker (Figure 2) is a software tool that is included with every certified Intel Cluster Ready implementation. It can be used to:

  • Certify a system integrator’s design as a valid implementation of the Intel Cluster Ready specification
  • Verify that a new cluster is an accurate duplicate of a certified original
  • Confirm that a cluster is working correctly, which reduces the need for service calls not related to application or hardware malfunctions
  • Provide diagnostic information to help software and system providers troubleshoot and correct problems

Intel Cluster Checker

Intel Cluster Checker accomplishes all this by performing per-node and cluster-wide hardware and software functional and performance tests. The functional tests verify that systems are configured consistently and appropriately. For example, Intel® Cluster Checker can be used to verify that all server nodes are using the same BIOS versions and the same key BIOS settings (different BIOS versions or settings can be the root cause of subtle problems such as memory size variations and performance differences). Intel Cluster Checker can also be used to verify that the required tools, libraries, and files are present, are the correct versions, and are located in the same place on each node. This ensures that the minimal software stack is available and configured identically on all compute nodes.

Figure 2: Intel® Cluster Checker

An example of a performance test that can be performed by Intel Cluster Checker is the measurement of memory bandwidth using the STREAM* benchmark. This particular test ensures memory performance is consistent across all compute nodes. Intel Cluster Checker also allows the user to configure minimum performance thresholds to ensure that performance is not only consistent across the cluster, but also meets expectations. Beyond simple performance measurements, Intel Cluster Checker uses the Intel® MPI Benchmarks to ensure that network fabrics are performing properly. The full bisectional fabric performance of the entire cluster can be tested.

Intel Cluster Checker can be used by vendors and cluster administrators to identify many common symptoms and sources of cluster malfunction. Test results include debug output to help identify root causes of performance and functionality problems. By enabling even unsophisticated users to identify and resolve many issues, this information may substantially reduce the number of support calls received by system providers and ISVs.

Intel Cluster Checker is designed primarily to support the requirements of the Intel Cluster Ready Specification. However, it is also extensible. Developers and users can add additional tests to support new cluster features and support requirements.

Recipes for Building Certified Clusters
Step-by-Step Example Descriptions

Intel Cluster Ready provides step-by-step recipes for building clusters that can be certified as Intel Cluster Ready, along with a bill of materials (BOM) for each recipe. Large system providers may already have cluster offerings that need only small changes to enable certification. However, smaller vendors may not have an established cluster practice or they may ship cluster hardware without a software stack. Recipes provide reliable guidelines to help these vendors build properly-configured clusters that are able to support registered applications. Although these recipes cannot guarantee optimum performance for all registered applications, they do help to ensure the cluster is functional and meets basic performance expectations.

The latest Intel Cluster Ready recipes are available on the Intel website at http://software.intel.com/en-us/articles/intel-cluster-ready-recipes

Services for Hardware and Software Providers ICR Platform
Documentation, Support, and Training

The Intel Cluster Ready Specification, Intel Cluster Checker, and step-by-step recipes are useful resources for developing registered applications and certified clusters. Intel also provides documentation, as well as direct training and support, for hardware, software, and system providers. Additional resources are available to help vendors market and sell their certified hardware products and registered software solutions.

Certifying Hardware and Registering Software

The processes for certifying and registering products are straightforward.

  • Certifying a cluster. After a system provider has verified a system with Intel Cluster Checker, a certification request can be submitted to Intel. Once the certificate is issued, the cluster can be sold as a certified Intel Cluster Ready cluster. Clusters delivered to customers under that certification can vary within narrow bounds and additional compute nodes may be added (up to double the number of nodes in the original certification) without requiring recertification.
  • Registering an application. To register an application, software vendors install their applications on a certified, Intel-approved cluster, execute their validation tests, and then complete the registration process.

A list of certified cluster solutions, components found in those solutions, and registered applications is available on the Intel Cluster Ready website. This is one way in which Intel helps vendors promote their products. It also provides a valuable resource for end users, making it easy for them to find certified clusters and registered applications that can be used together with confidence.

Conclusion

Intel Cluster Ready is an architecture and technical program that makes it easier to design, purchase, deploy, and support clusters built with Intel components. It also simplifies the deployment and use of applications on those clusters.

With its “one-to-many” strategy, Intel Cluster Ready helps to ensure that hardware, software and system vendors can independently develop products that work together reliably out of the box, without having to engage directly with each other on every cluster implementation. By building certified clusters and registered applications, they can be confident that hardware and software will perform as expected. Even more importantly, users with little or no expertise in cluster computing can successfully purchase, deploy, and maintain an Intel Cluster Ready certified cluster, with a high level of confidence it will meet their expectations.

如需更全面地了解编译器优化,请参阅优化注意事项