The 42th AICS Cafe / Workshop room (6th floor) An Introduction to K-scope for Application Performance Improvement August 30, 2013 Masaaki Terai Research & Development Scientist RIKEN AICS, Software Development Team Operations and Computer Technologies Div. Outline • Background • Design • Overview of Usage and Features -‐ Introduction to Feature1: Interface -‐ Introduction to Feature2: Static Program Analysis -‐ Introduction to Feature3: Visualization of Profile Result for the K • Recent Work • Demonstration 2 Background 3 Team Missions • Software development team, operations and computer technologies div. • Missions -‐ Performance tuning for applications -‐ Performance estimation and evaluation (include system examination) -‐ Various enhancement and feedback (compiler, profiler,..., tools) -‐ K-‐support desk (as a part of operation) -‐ Maintenance for private servers 4 HPC Applications • Examples for application from -‐ Target applications in development of the K -‐ AICS -‐ Others • Below statistics are estimated with grep and wc. Application Language Number of Files Line of Codes NICAM Fortran 90/77 204 302285 Seism3D Fortran 90/77 41 15921 RSDFT Fortran 90/77 373 197670 PHASE Fortran 90/77 393 243327 Front Flow/Blue FORTAN 77 233 60703 Lattice QCD Fortran 90 146 63971 NwChem* Fortran 77 256 75030 SCALE-‐LES Fortran 90/77, C 196 133806 Para-‐TCCI Fortran 90 44 42607 * This is a part of whole program. 5 Story and Problem • Familiar story -‐ Actually a few applications are simple by refactoring or scrap and build. -‐ However almost the applications are often destined to bloat with time. -‐ The application has complex and a number of source codes to perform detailed simulation on the background of progress in hardware performance and development environment. • Specific story in HPC -‐ We have little to no non-‐commercial code reading tools for Fortran. • Possible problems -‐ We receive those applications to improve the performance. -‐ An engineer except for primary developer dedicates time and energy to understand source code before the work. -‐ Reduction in productivity 6 Tools (Static Code Analysis) al They are simple. It’s up to you to benefit your work. n- n e o v ti n o grep, find, diff, vim, emacs (+ sed, awk, perl…) C Enhancements with Software engineering (Static Error Detection/Assisted Coding and Maintenance/Optimization/Metrics/Project Management) • FortranLint* (Cleanscape) • NAG Fortran Compiler* (NAG) • Fujitsu Visual Analyzer* (Lahey Computer Systems) • plusFORT* (Polyhedron) n + a • FORCHECK* (Leiden University) + a tr /C av or • DEEP (Pacific-‐Sierara Research, 1998) C J F R. F. Fowler and C. Greenough, “So5ware Quality Assurance for Fortran 90 -‐ A Survey of Available Tools”, Technical Report (1999). Conglomerate + Multi Platform • Understand2.0* (Scientific Toolworks) • Photran (University of Illinois) *eclipse plugin Most of the tools are: -‐ Commercial -‐ Not for Performance Improvement -‐ Stopped development or no longer activity -‐ Only support Windows and UNIX/Linux 7 Tuning as Application Development One target, some approaches Target Performance • Application developer • System software engineer Improvement • Computational scientist • Computer scientist Algorithm Compiler (Solver) Hand-‐coded optimization Implementation Semi-‐automatic optimization Tool’s target user • Performance improvement engineer • Application developer / Maintainer • Software engineer 8 Performance Improvement • Performance Improvement (= tuning) -‐ Single processor tuning x Parallel performance tuning The system is hierarchical. Today’s topic System Board CPU (=compute node) Rack Image of 3D torus of Tofu interconnect 864 racks (=82,944 compute nodes) 8 on the K computer 9 Trial and Error • Tuning -‐ Trial and error coding/ Compiling Execution Evaluation tuning -‐ Systematic approach based on cause and effect with tools -‐ The execution system consists of many layers such as application, compiler, CPU and so on. -‐ Major parts of them are black box for a common engineer. -‐ Tuning is gray area between heuristic and systematic -‐ Like a puzzle 10
Description: