Operating System for the K computer



Similar documents
SPARC64 VIIIfx: CPU for the K computer

Current Status of FEFS for the K computer

Achieving Mainframe-Class Performance on Intel Servers Using InfiniBand Building Blocks. An Oracle White Paper April 2003

Network Attached Storage. Jinfeng Yang Oct/19/2015

Technical Computing Suite Job Management Software

- An Essential Building Block for Stable and Reliable Compute Clusters

StreamStorage: High-throughput and Scalable Storage Technology for Streaming Data

LS-DYNA Best-Practices: Networking, MPI and Parallel File System Effect on LS-DYNA Performance

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

The K computer: Project overview

Symfoware Server Reliable and Scalable Data Management

Recommended hardware system configurations for ANSYS users

Remote Copy Technology of ETERNUS6000 and ETERNUS3000 Disk Arrays

Full and Para Virtualization

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Sun Constellation System: The Open Petascale Computing Architecture

Petascale Software Challenges. Piyush Chaudhary High Performance Computing

Implementing Network Attached Storage. Ken Fallon Bill Bullers Impactdata

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Integrated Application and Data Protection. NEC ExpressCluster White Paper

PARALLELS CLOUD STORAGE

Integration of PRIMECLUSTER and Mission- Critical IA Server PRIMEQUEST

Server Platform Optimized for Data Centers

The functionality and advantages of a high-availability file server system

Whitepaper. Implementing High-Throughput and Low-Latency 10 Gb Ethernet for Virtualized Data Centers

OPERATING SYSTEM SERVICES

From Ethernet Ubiquity to Ethernet Convergence: The Emergence of the Converged Network Interface Controller

Performance Monitoring User s Manual

Cray DVS: Data Virtualization Service

Product Brief SysTrack VMP

Example of Standard API

Oracle9i Release 2 Database Architecture on Windows. An Oracle Technical White Paper April 2003

Solution Concept for Public Libraries: One Library

Building an Inexpensive Parallel Computer

Zadara Storage Cloud A

Gigabit Ethernet Design

System Management and Operation for Cloud Computing Systems

Opus Guide for IT Managers

Performance and scalability of a large OLTP workload

How To Create A Multi Disk Raid

IP SAN Fundamentals: An Introduction to IP SANs and iscsi

COS 318: Operating Systems. Virtual Machine Monitors

Manjrasoft Market Oriented Cloud Computing Platform

INTRODUCTION ADVANTAGES OF RUNNING ORACLE 11G ON WINDOWS. Edward Whalen, Performance Tuning Corporation

Network Virtualization for Large-Scale Data Centers

Meeting the Five Key Needs of Next-Generation Cloud Computing Networks with 10 GbE

Chapter 3 Operating-System Structures

PCI Express High Speed Networks. Complete Solution for High Speed Networking

Embedded OS. Product Information

Storage System: Management of Explosively Increasing Data in Mission-Critical Systems

Virtualization for Cloud Computing

Integrating F5 Application Delivery Solutions with VMware View 4.5

Maximizing Hadoop Performance and Storage Capacity with AltraHD TM

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Big Data Processing in Cloud Environments

Hitachi s Midrange Disk Array as Platform for DLCM Solution

Performance Comparison of Fujitsu PRIMERGY and PRIMEPOWER Servers

Linux Performance Optimizations for Big Data Environments

Eloquence Training What s new in Eloquence B.08.00

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Oracle Database Scalability in VMware ESX VMware ESX 3.5

High-Performance IP Service Node with Layer 4 to 7 Packet Processing Features

LOAD BALANCING DISTRIBUTED OPERATING SYSTEMS, SCALABILITY, SS Hermann Härtig

Provisioning Technology for Automation

Cluster Scalability of ANSYS FLUENT 12 for a Large Aerodynamics Case on the Darwin Supercomputer

PRIMERGY server-based High Performance Computing solutions

Seeking Opportunities for Hardware Acceleration in Big Data Analytics

Software design (Cont.)

Highly Available Mobile Services Infrastructure Using Oracle Berkeley DB

LSKA 2010 Survey Report Job Scheduler

Online Failure Prediction in Cloud Datacenters

Have both hardware and software. Want to hide the details from the programmer (user).

ECLIPSE Performance Benchmarks and Profiling. January 2009

x64 Servers: Do you want 64 or 32 bit apps with that server?

OPTIMIZING SERVER VIRTUALIZATION

Parallels VDI Solution

TCP Servers: Offloading TCP Processing in Internet Servers. Design, Implementation, and Performance

Enabling High performance Big Data platform with RDMA

Overview of Next-Generation Green Data Center

Application Brief: Using Titan for MS SQL

Security Technology for Smartphones

The Key Technology Research of Virtual Laboratory based On Cloud Computing Ling Zhang

CPS221 Lecture: Operating System Structure; Virtual Machines

Assignment # 1 (Cloud Computing Security)

Overlapping Data Transfer With Application Execution on Clusters

Symmetric Multiprocessing

Optical Interconnect Technology for High-bandwidth Data Connection in Next-generation Servers

Architecture of Hitachi SR-8000

Improved LS-DYNA Performance on Sun Servers

White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux

HPC Software Requirements to Support an HPC Cluster Supercomputer

LS DYNA Performance Benchmarks and Profiling. January 2009

Solving I/O Bottlenecks to Enable Superior Cloud Efficiency

Transcription:

Operating System for the K computer Jun Moroo Masahiko Yamada Takeharu Kato For the K computer to achieve the world s highest performance, Fujitsu has worked on the following three performance improvements in the development of the operating system (OS). First, to bring out the maximum hardware performance of our original CPU and interconnect, we provided a mechanism of controlling hardware extensions directly from applications. As the second improvement, we have introduced the synchronization scheduling function that minimizes the synchronization wait time of parallel programs resulting from system interruptions by coordinating job runtime and system runtime between multiple nodes. Third, multiple page size support that allows use of more than one page size has been achieved for improved memory access performance and memory utilization efficiency. This paper also describes the performance improvement functions, usability and robustness of the OS developed. 1. Introduction Supercomputers are used in large-scale simulation computations in a variety of science and technology fields. For weather forecasts, for example, the prediction area can be divided at the municipality level or even further at the station level to calculate values such as the temperature, wind direction, and wind speed for each subarea, which enables highly accurate predictions to be made. Aerodynamic simulations on aircraft allow people to estimate how an aircraft will move without having to build a model or actual aircraft. In the development of new drugs, substances that are candidates for a medicine can be extracted out of a vast number of types and combinations to narrow them down to those with a curative effect. Carrying out such large-scale simulations involves enormous amounts of memory and compute nodes and a huge number of files. Accordingly, an operating system (OS) capable of bringing out the maximum hardware performance of the supercomputer is essential. This paper gives a description of the OS of the K computer note)i that is capable of conducting large-scale simulations. 2. Software configuration of the K computer Generally, supercomputers perform highspeed computations by: 1) Dividing huge computations 2) Operating many computers (compute nodes) concurrently in a coordinated manner 3) Transferring computation results at high speeds between compute nodes by using a set of standard communication libraries called Message Passing Interface (MPI) The OS processes application startup and IO note)i K computer is the English name that RIKEN has been using for the supercomputer of this project since July 2010. K comes from the Japanese word Kei, which means ten peta or 10 to the 16th power. FUJITSU Sci. Tech. J., Vol. 48, No. 3, pp. 295 301 (July 2012) 295

processing requests and takes charge of system processing including time of day control. For the OS of the K computer, we have maximized the hardware and software performance by improving the OS kernel and libraries. We worked on developing the OS of the K computer with a target of achieving 10 PFLOPS, a performance level ten times higher than the system at the time of its initial development. The basic software of the K computer is composed of the OS and basic middleware (operations management software, language system) (Figure 1). The OS implements the architecture-dependent portion of the Linux kernel and has additional drivers for using the hardware of the K computer so that it can be used from the middleware in the upper level. We have worked on developing the OS to install on the K computer, aiming for targets including improved usability, improved performance and improved robustness as shown in Table 1. The following sections present the respective targets. 3. Improved usability (effective utilization of user assets) Some of the existing supercomputers use special OSes, on which software that has been Operations management software Language system Middleware Job management Compilers Debuggers tuning tools System control/management Language libraries MPI libraries OS Commands, libraries OS Interrupt time management Process management Memory management Network Device drivers File system Architecture-dependent portion Sector cache Barriers IO Hardware CPU (SPARC64 VIIIfx) Sector cache Barriers IO devices interconnect Figure 1 Software configuration of the K computer. Table 1 Features of the K computer OS. Improved usability Improved performance Improved robustness Feature Effective utilization of user assets Direct control of hardware extensions Improved scalability Improved memory performance and efficiency Security RAS enhancement Linux POSIX API Realization method SIMD instruction support Hardware barrier Sector cache Extension of device drivers for hardware control registers Synchronization scheduling with rsadc Large page support User access protection Fallback for failure 296 FUJITSU Sci. Tech. J., Vol. 48, No. 3 (July 2012)

developed by the user cannot be used. For the OS of the K computer, we have adopted Linux to allow continued use of the user s assets. Similarly to general OSes, the OS of the K computer is equipped with process management, memory management, IO management (device driver), file system and network functions. Linux is used in more than 91% of the TOP500 ranked supercomputers and we have adopted it in view of making user applications portable. Users can use POSIX API, a UNIX application programming interface (API), on the K computer. In addition, the OS of the K computer has API (library, command) extensions for using extended hardware, which allows easy use of hardware functions through the compiler and MPI library functions. These contrivances enable the OS of the K computer to port general open source software (application programs, tools, etc.) by recompilation without having to change the source program. 4. Improved performance 4.1 Direct control of hardware extensions SPARC64 VIIIfx is a SPARC64 VII-based CPU equipped with expanded registers, extended SIMD instructions, hardware barriers between cores and sector cache for speedup. For the OS of the K computer, we have prepared a mechanism with additional device drivers that allow these hardware extensions to be controlled directly from applications. The drivers map registers that control barrier synchronization and sector cache into the memory space of applications, by which high-speed control is achieved without involving system call overhead. The sector cache is intended to be used to divide the cache in the CPU into two virtual regions to facilitate caching of the data that are repeatedly used by applications. Specifically, the complier generates memory access instructions to cache less frequently used data in sector 0 and more frequently used data in sector 1. This prevents frequently used data from being expelled from the cache, and thus improves the execution performance of applications. The amount of frequently used data may vary depending on the functions in applications. Accordingly, the ratio of the sector cache used from user applications has been made changeable during program execution to allow the utilization efficiency of the cache to be optimized. The performance improvement effect of cache control cannot be sufficiently achieved if overhead is generated due to the issuance of a system call when a device driver is called along with sector cache operation. For that reason, device drivers for the K computer have been designed and implemented to allow user applications to directly control the registers that control the sector cache. This has successfully reduced the sector cache control time from a few microseconds to a few nanoseconds. 4.2 Improved memory access performance The OS of the K computer is equipped with large page support as a function to provide both high memory access performance and high memory utilization efficiency. Generally, the virtual memory management unit provided for Linux for 64-bit SPARC manages the memory used by programs in 8 Kbyte page units. A cache (TLB: translation lookaside buffer) is provided for speeding up the address translation performed by the hardware but the number of entries is limited. With a page size of 8 Kbytes, use of memory of a few Mbytes or larger causes the process to exceed the capacity of the TLB and overhead resulting from OS address translation is generated. If the page size to be managed with one entry is increased, high-speed access to memory of a few Gbytes or larger can be achieved by means of a TLB. However, managing the entire FUJITSU Sci. Tech. J., Vol. 48, No. 3 (July 2012) 297

data area with one-sized large pages may reduce the memory utilization efficiency because of the unused memory area in a large page. To address this problem, the OS of the K computer allows the page size to be selected from the options of 4 Mbytes, 32 Mbytes and 256 Mbytes. For example, to run an application that uses a stack larger than the area for static data including global variables, a large page can be allocated to the stack and a small page to the data area. In this way, both improved memory utilization efficiency and improved performance thanks to the reduction of TLB misses can be achieved (Figure 2). 4.3 Improved scalability We have developed a synchronization scheduler and statistics sampling mechanism for the purpose of improving the performance of parallel jobs across multiple nodes (scalability improvement). 4.3.1 Synchronization scheduler A single computation job that runs on the K computer system is a parallel program deployed on multiple nodes and, every time a certain computation process is completed, mutual synchronization and communication take place between nodes connected via interconnects. For system operation, the OS and operations software daemons (programs that run in the background for system management) need to run, and they run asynchronously regardless of the job. This daemon operation causes interruptions (system noise) of a parallel program. In computation with tens of thousands of nodes, interruptions may increase in proportion to the number of nodes, leading to a significant performance degradation. There are two ways to solve this problem: 1) Dedicate a specific core of a node composed of multiple CPU cores to the OS to run the daemon for eliminating interruptions in the job on each node (spatial division) 2) Reduce interruptions in synchronization/ communication of a parallel program to a certain level independently of the number of nodes by synchronized running of daemons between compute nodes (synchronization scheduler method) (temporal division) With the method described in 1), when one of the eight cores of the CPU of the K computer is allocated to the system and seven cores to the job, the execution efficiency is limited to 87.5% (seven-eighths). Accordingly, we have developed the synchronization scheduler method described in 2) for the K computer. With the synchronization scheduler of the K computer, the OS uses the barrier function of the interconnect to achieve inter-node synchronization. The synchronization scheduler enhances the process scheduler function of Linux to perform synchronization at intervals of 100 ms, for example, and run the daemons in 1 ms out of the 100 ms. The parallel program can Example of process that uses 32 Mbytes of static data Page with 256 Mbytes of static data Static data area (256 Mbytes) 32 Mbytes used 224 Mbytes of unused area generated Page with 32 Mbytes of static data Static data area 32 Mbytes used (32 Mbytes) No unused area generated Memory utilization efficiency increased Stack area (256 Mbytes) Stack area (256 Mbytes) Figure 2 Effect of multiple page size support in process that uses 32 Mbytes of static data. 298 FUJITSU Sci. Tech. J., Vol. 48, No. 3 (July 2012)

run 99% of the time in synchronization between all nodes without interruptions, which allows for a performance improvement in proportion to the number of nodes (Figure 3). 4.3.2 Statistics sampling function The K computer reduces interruptions themselves by using the synchronization scheduler to lower the effect of daemons to jobs and optimizing daemon processes. As an example, this section describes the improvement of the statistics sampling function. When a user application runs on a compute node, daemon processes that run periodically in the system can cause interruptions (system noise) to the user application and result in variation in execution performance of the user application (the execution performance may vary depending on the execution timing of the user application). For this reason, reducing system noise on a compute node requires the daemon processes that run periodically in the system to be minimized. To monitor to ensure normal operation of the system and analyze performance bottlenecks, the OS samples statistics including CPU and memory usage. Generally, for OS statistics, the sadc command is run via cron, a function intended for periodically executing system processes, to read kernel data and write to the statistics file. This method does not cause major system noise with small systems but with the K computer, which is an enormous system, this statistics sampling process may result in system noise. For the K computer, remote sadc function (rsadc), which collects compute node performance statistics in IO nodes, has been developed (Figure 4). We have aimed to reduce costs and improve reliability with the K computer by aggregating IO devices onto IO nodes in each rack. We have reduced the number of interruptions by offloading to these IO nodes the IO processes of performance statistics of the Actual computation job Ideal computation job... Node N... Node 1 Node 2 Node 1 Node 2 Node N Time Time : Job execution section : System process execution section : Synchronization wait section : Synchronization start : Synchronization end Figure 3 Operation of synchronization scheduler. FUJITSU Sci. Tech. J., Vol. 48, No. 3 (July 2012) 299

sadc used rsadc used Compute node IO node Compute node IO node sadc daemon nfs server ksadc daemon rsadc nfs client TCP/IP TCP/IP IO IO RDMA Figure 4 Schematic diagram of rsadc. many compute nodes. The ksadc daemon of compute nodes maintains the performance statistics of the individual nodes in the memory and carries out IO processes by means of rsadc on IO nodes. The command rsadc uses the remote direct memory access (RDMA) function of the interconnect to transfer the performance statistics of the individual compute nodes to IO node memory without daemon processes on compute nodes, which can be stored on disks. For the K computer, we have developed a function for a system composed of many racks so that it can collect log files required for billing and system management from IO nodes of the many racks into one control node without accessing compute nodes. This has enabled the administrator to gain an understanding of the conditions of the entire system without causing interruptions in parallel jobs. 5. Improved robustness The K computer, which is composed of a large number of hardware components, is a system required by various users to perform lengthy computations and it needs to be highly robust. In relation to hardware failures, for example, it is important to have reliability, availability and serviceability (RAS) functions, which allow continued operation even if one component fails and early detection of the point of failure for replacement. In addition, the system must be secure so that it is possible to share files within user groups or prevent other groups from viewing the files. The K computer has been given high robustness by making use of hardware redundancy, RAS functions provided for Linux including multipath driver and security function and adding to Linux the RAS functions that have been enhanced in Fujitsu s existing supercomputers and servers. The following subsections describe examples of the enhanced RAS functions and security functions. 5.1 RAS enhancement The OS of the K computer has inherited the existing server technologies of Fujitsu to enhance the functions of intermittent memory error recovery and identification and notification of hardware failure points. To address memory errors caused by alpha rays and such like, the OS of the K computer cooperates with the memory patrol function of the hardware to perform data correction, thereby making the system highly reliable. The hardware performs memory read (patrol) at intervals specified by the OS. By using the error correcting code (ECC) mechanism, the OS writes data to the memory when any single-bit error is detected in the memory data, by which error correction including ECC is performed. Performing this error correction 300 FUJITSU Sci. Tech. J., Vol. 48, No. 3 (July 2012)

periodically prevents correctable single-bit errors from developing into uncorrectable double-bit errors, which improves reliability. Once any failed page is detected, the OS marks it to prevent it being allocated memory when any subsequent memory allocation request is issued, thereby retiring the page. When any memory error is detected, the OS specifies the slot containing that memory and notifies the administrator of it so as to reduce the time from stopping the node to replacing the component. The RAS functions have been enhanced to allow precise identification of possible points of failure based on error events detected in relation to CPU and IO devices (PCI channel, Gbit Ethernet adapter, Fibre Channel adapter, etc.) in addition to memory. 5.2 Security functions The K computer system is used simultaneously by many users and it is essential that it has security functions. However, security functions do not make sense if they affect the computing performance. The security functions of the K computer have been achieved by combining the user management and file system functions normally used in UNIX-based OSes. The OS supports the following security functions in relation to authentication by general user management. Password encryption Change of file and directory access rights Change of owners of files and directories Change of group ownership of files and directories For files and directories, security management is provided based on the controlled access protection profile (CAPP), which controls access by read, write and execute permissions for user, group and other. 6. Conclusion This paper has described the features of the OS of the K computer. The development of an OS for a globally unparalleled large-scale system was a challenging task, and we needed to achieve both ultimate performance and usability. We intend to continuously work on developing the OS to provide the foundation for more easily conducting large-scale simulations on the K computer and help advance various fields in science and industry. Jun Moroo Fujitsu Ltd. Mr. Moroo is currently engaged in software development for nextgeneration HPC. Takeharu Kato Fujitsu Ltd. Mr. Kato is currently engaged in software development for nextgeneration HPC. Masahiko Yamada Fujitsu Ltd. Mr. Yamada is currently engaged in software development for nextgeneration HPC. FUJITSU Sci. Tech. J., Vol. 48, No. 3 (July 2012) 301