ppOpen-HPC: Open Source Infrastructure for Development and Execution of Large-Scale Scientific Applications on Post-Peta-Scale Supercomputers with Automatic Tuning (AT); Kengo Nakajima, Takahiro Katagiri, Masaki Satoh, Takashi Furumura, Hiroshi Okuda (The University of Tokyo), Takeshi Iwashita (Kyoto University), and Hide Sakaguchi (JAMSTEC)
In this presentation, recent achievements and progress of the "ppOpen-HPC" project are overviewed. Moreover, results of collaborations with users of ppOpen-HPC are also provided. ppOpen-HPC is an open source infrastructure for development and execution of optimized and reliable simulation code on post-peta-scale (pp) parallel computers based on many-core architectures, and it consists of various types of libraries, which cover general procedures for scientific computation. Source code developed on a PC with a single processor is linked with these libraries, and the parallel code generated is optimized for post-peta-scale systems. The target post-peta-scale system is the Post T2K System (http://www.cc.u-tokyo.ac.jp/support/press/SCD-ITC.pdf) of the University of Tokyo based on many-core architectures, such as Intel MIC/Xeon Phi. It will be installed in FY.2015-2016 and its peak performance is expected to be 20-30 PFLOPS. ppOpen-HPC supports approximately 2,000 users of the supercomputer system in the University of Tokyo, enabling them to switch from homogeneous multicore clusters to a post-peta-scale system based on many-core architectures. ppOpen-HPC is a five-year project (FY.2011-2015) supported by Japanese government (http://postpeta.jst.go.jp/en/). ppOpen-HPC is developed by the University of Tokyo (four departments), Kyoto University and JAMSTEC. The expertise of members covers a wide range of disciplines related to scientific computing, such as system software, numerical libraries/algorithms, computational mechanics, and earth sciences. ppOpen-HPC includes the four components, ppOpen-APPL, ppOpen-MATH, ppOpen-AT, and ppOpen-SYS. Libraries in ppOpen-APPL, ppOpen-MATH, and ppOpen-SYS are called from user's programs written in Fortran and C/C++ with MPI.
All issues related to hybrid parallel programming models are hidden from users by ppOpen-HPC. In ppOpen-HPC, we are focusing on five types of discretization methods for scientific computing, which are FEM, FDM, FVM, BEM, and DEM. ppOpen-APPL is a set of libraries covering various types of procedures for these five methods, such as parallel I/O of data-sets, assembling of coefficient matrix, linear-solvers with robust and scalable preconditioners, adaptive mesh refinement (AMR), and dynamic load-balancing. Each component should be developed based on existing practical application code. ppOpen-APPL provides common data structures and interfaces based on parallel netCDF, which will enable users to easily implement the procedures of ppOpen-HPC for legacy code. Automatic tuning (AT) enables a smooth and easy shift to further development on new/future architectures through the use of ppOpen-AT. Directive-based special AT languages for specific procedures in scientific computing, focused on optimum memory access, are being developed. ppOpen-AT automatically and adaptively generates optimum implementation for efficient memory accesses in the processes of methods for scientific computing in each component of ppOpen-APPL, such as explicit time marching procedures, matrix assembling procedures, and implicit linear solvers. And this is achieved in various environmental constraints such as the architecture of the supercomputer system, available resources, problem size, etc. ppOpen-AT will also optimize widely-used open-source applications and numerical libraries, such as OpenFOAM and PETSc. In the presentation, an example of application of ppOpen-AT on 3D FDM code of seismic simulations for Intel Xeon/Phi will be demonstrated. Finally, ppOpen-SYS consists of libraries related to node-to-node communication and fault-tolerance.