Application Performance Optimizations Pak Lui
2 140 Applications Best Practices Published Abaqus CPMD LS-DYNA MILC AcuSolve Dacapo minife OpenMX Amber Desmond MILC PARATEC AMG DL-POLY MSC Nastran PFA AMR Eclipse MR Bayes PFLOTRAN ABySS FLOW-3D MM5 Quantum ESPRESSO ANSYS CFX GADGET-2 MPQC RADIOSS ANSYS FLUENT GROMACS NAMD SPECFEM3D ANSYS Mechanics Himeno Nekbone WRF BQCD HOOMD-blue NEMO CCSM HYCOM NWChem CESM ICON Octopus COSMO Lattice QCD OpenAtom CP2K LAMMPS OpenFOAM For more information, visit: http://www.hpcadvisorycouncil.com/best_practices.php
3 HPC Advisory Council HPC Center Dell PowerEdge R730 32-node cluster Dell PowerEdge R720/R720xd 32-node cluster Dell PowerEdge C6145 6-node cluster Dell PowerEdge R815 11-node cluster HP Proliant XL230a Gen9 10-node cluster HP ProLiant SL230s Gen8 4-node cluster HP Cluster Platform 3000SL 16-node cluster Dell PowerVault MD3420 / MD3460 InfiniBand-based Lustre Storage Colfax CX1350s-XK5 4-node cluster Dell PowerEdge C6100 4-node cluster Dell PowerEdge M610 38-node cluster
4 Agenda Overview of HPC Applications Performance Way to Inspect, Profile, Optimize HPC Applications CPU, memory, file I/O, network System Configurations and Tuning Case Studies, Performance Comparisons, Optimizations and Highlights Conclusions
5 HPC Application Performance Overview To achieve scalability performance on HPC applications Involves understanding of the workload by performing profile analysis Tune for the most time spent (either CPU, Network, IO, etc) Underlying implicit requirement: Each node to perform similarly Run CPU/memory /network tests or cluster checker to identify bad node(s) Comparing behaviors of using different HW components Which pinpoint bottlenecks in different areas of the HPC cluster A selection of HPC applications will be shown To demonstrate method of profiling and analysis To determine the bottleneck in SW/HW To determine the effectiveness of tuning to improve on performance
6 Ways To Inspect and Profile Applications Computation (CPU/Accelerators) Tools: gprof, top, htop, perf top, pstack, Visual Profiler, etc Tests and Benchmarks: HPL, STREAM File I/O Bandwidth and Block Size: iostat, collectl, darshan, etc Characterization Tools and Benchmarks: iozone, ior, etc Network Interconnect and MPI communications Tools and Profilers: perfquery, MPI profilers (IPM, TAU, etc) Characterization Tools and Benchmarks: Latency and Bandwidth: OSU benchmarks, IMB
7 Case Study: LS-DYNA
8 Note The following research was performed under the HPC Advisory Council activities Participating vendors: Intel, Dell, Mellanox Compute resource - HPC Advisory Council Cluster Center The following was done to provide best practices LS-DYNA performance overview Understanding LS-DYNA communication patterns Ways to increase LS-DYNA productivity MPI libraries comparisons For more info please refer to http://www.dell.com http://www.intel.com http://www.mellanox.com http://www.lstc.com
9 LS-DYNA LS-DYNA A general purpose structural and fluid analysis simulation software package capable of simulating complex real world problems Developed by the Livermore Software Technology Corporation (LSTC) LS-DYNA used by Automobile Aerospace Construction Military Manufacturing Bioengineering
Objectives 10 The presented research was done to provide best practices LS-DYNA performance benchmarking MPI Library performance comparison Interconnect performance comparison CPU cores/speed comparison Optimization tuning The presented results will demonstrate The scalability of the compute environment/application Considerations for higher productivity and efficiency
11 Test Cluster Configuration Dell PowerEdge R730 32-node (896-core) Thor cluster Dual-Socket 14-Core Intel E5-2697v3 @ 2.60 GHz CPUs (Power Management in BIOS sets to Maximum Performance) Memory: 64GB memory, DDR4 2133 MHz, Memory Snoop Mode in BIOS sets to Home Snoop OS: RHEL 6.5, MLNX_OFED_LINUX-2.4-1.0.5.1_20150408_1555 InfiniBand SW stack Hard Drives: 2x 1TB 7.2 RPM SATA 2.5 on RAID 1 Mellanox ConnectX-4 EDR 100Gb/s InfiniBand Adapters Mellanox Switch-IB SB7700 36-port EDR 100Gb/s InfiniBand Switch Mellanox ConnectX-3 FDR VPI InfiniBand and 40Gb/s Ethernet Adapters Mellanox SwitchX-2 SX6036 36-port 56Gb/s FDR InfiniBand / VPI Ethernet Switch MPI: Open MPI 1.8.4, Mellanox HPC-X v1.2.0-326, Intel MPI 5.0.2.044, IBM Platform MPI 9.1 Application: LS-DYNA 8.0.0 (builds 95359, 95610), Single Precision Benchmarks: 3 Vehicle Collision, Neon refined revised
PowerEdge R730 Massive flexibility for data intensive operations 12 Performance and efficiency Intelligent hardware-driven systems management with extensive power management features Innovative tools including automation for parts replacement and lifecycle manageability Broad choice of networking technologies from GigE to IB Built in redundancy with hot plug and swappable PSU, HDDs and fans Benefits Designed for performance workloads from big data analytics, distributed storage or distributed computing where local storage is key to classic HPC and large scale hosting environments High performance scale-out compute and low cost dense storage in one package Hardware Capabilities Flexible compute platform with dense storage capacity 2S/2U server, 6 PCIe slots Large memory footprint (Up to 768GB / 24 DIMMs) High I/O performance and optional storage configurations HDD options: 12 x 3.5 - or - 24 x 2.5 + 2x 2.5 HDDs in rear of server Up to 26 HDDs with 2 hot plug drives in rear of server for boot or scratch
13 LS-DYNA Performance Network Interconnects EDR InfiniBand delivers superior scalability in application performance Provides higher performance by over 4-5 times than 1GbE, 10GbE and 40GbE 1GbE stop scaling beyond 4 nodes, and 10GbE stops scaling beyond 8 nodes InfiniBand demonstrates continuous performance gain at scale 505% 572% 444% Higher is better 28 MPI Processes / Node
14 LS-DYNA Profiling Time Spent in MPI Majority of the MPI time is spent on MPI_recv and MPI Collective Ops MPI_Recv(36%), MPI_Allreduce(27%), MPI_Bcast(24%) Similar communication characteristics seen on both input dataset Both exhibit similar communication patterns Neon_refined_revised 32 nodes 3 Vehicle Collision 32 nodes
15 LS-DYNA Profiling Time Spent in MPI Most of the MPI messages are in the medium sizes Most message sizes are between 0 to 64B For the most time consuming MPI calls MPI_Recv: Most messages are under 4KB MPI_Bcast: Majority are less than 16B, but larger messages exist MPI_Allreduce: Most messages are less than 256B neon_refined_revised
16 LS-DYNA Performance EDR vs FDR InfiniBand EDR InfiniBand delivers superior scalability in application performance As the cluster scales, performance gap of EDR IB becomes widen Performance advantage of EDR InfiniBand increases for larger core counts EDR IB provides 15% versus FDR IB at 32 nodes (896 cores) 15% Higher is better 28 MPI Processes / Node
17 LS-DYNA Performance Cores Per Node Better performance is seen at scale with less CPU cores per node At low node counts, higher performance can be achieved with more cores per node At high node counts, slightly better performance by using less cores per node Memory bandwidth might be limited by more CPU cores being used 2% 5% 3%5% Higher is better CPU @ 2.6GHz
18 LS-DYNA Performance AVX2/SSE2 CPU Instructions LS-DYNA provides executables with supports for different CPU instructions AVX2 is supported on Haswell while SSE2 is supported on previous generations Due to runtime issue, AVX2 executable build 95610 is used, instead of the public build 95359 Slight improvement of ~2-4% by using executable with AVX2 instructions The AVX2 instructions runs at a lower clock speed (2.2GHz) than normal CPU clock (2.6GHz) 4% Higher is better 24 MPI Processes / Node
19 LS-DYNA Performance Turbo Mode Turbo Boost enables processors to run above its base frequency Capability to allow CPU cores to run dynamically above the CPU clock When thermal headroom allows the CPU to operate The 2.6GHz clock speed could boost to Max Turbo Frequency of 3.3GHz Running with Turbo Boost translates to a ~25% of performance boost 40% 25% Higher is better 28 MPI Processes / Node
20 LS-DYNA Performance Memory Optimization Setting the environment variables for memory allocator improve on performance Modifying the memory allocator allows faster memory registration for communications Environment variables used: export MALLOC_MMAP_MAX_=0 export MALLOC_TRIM_THRESHOLD_=-1 19% 176% Higher is better 28 MPI Processes / Node
21 LS-DYNA Performance MPI Optimization FCA and MXM enhance LS-DYNA performance at scale for HPC-X Open MPI and HPC-X are based on the Open MPI distribution The yalla PML, UD transport and memory optimization in HPC-X reduce overhead MXM provides a speedup of 38% over un-tuned baseline run at 32 nodes (768 cores) MCA parameters: -mca btl_sm_use_knem 1 -mca pml yalla -x MXM_TLS=ud,shm,self -x MXM_SHM_RNDV_THRESH=32768 -x HCOLL_CONTEXT_CACHE_ENABLE=1 38% Higher is better 24 MPI Processes / Node
22 LS-DYNA Performance Intel MPI Optimization The DAPL provider performs better than OFA provider for Intel MPI DAPL would provide better scalability performance for Intel MPI on LS-DYNA MCA parameters for MXM: Common for 2 tests: I_MPI_DAPL_SCALABLE_PROGRESS 1, I_MPI_RDMA_TRANSLATION_CACHE 1, I_MPI_FAIR_CONN_SPIN_COUNT 2147483647, I_MPI_FAIR_READ_SPIN_COUNT 2147483647, I_MPI_ADJUST_REDUCE 2, I_MPI_ADJUST_BCAST 0, I_MPI_RDMA_TRANSLATION_CACHE 1, I_MPI_RDMA_RNDV_BUF_ALIGN 65536, I_MPI_SPIN_COUNT 121 For OFA: -IB, MV2_USE_APM 0, I_MPI_OFA_USE_XRC 1 For DAPL: -DAPL, I_MPI_DAPL_DIRECT_COPY_THRESHOLD 65536, I_MPI_DAPL_UD enable, I_MPI_DAPL_PROVIDER ofa-v2-mlx5_0-1u 20% Higher is better 24 MPI Processes / Node
23 LS-DYNA Performance MPI Libraries HPC-X outperforms Platform MPI, and Open MPI in scalability performance HPC-X delivers higher performance than Intel MPI (OFA) by 33%, (DAPL) by 11%, Platform MPI by 27% on neon_refined_revised Performance is 20% higher than Intel OFA, and % 8% better than Platform MPI in 3cars Tuning parameter used: For Open MPI: -bind-to-core and KNEM. For Platform MPI: -cpu_bind, -xrc. For Intel MPI: see previous slide 11% 27% 33% 20% 7% Higher is better 24 MPI Processes / Node
24 LS-DYNA Performance System Generations Current Haswell system configuration outperforms prior system generations Current systems outperformed Ivy Bridge by 47%, Sandy Bridge by 75%, Westmere by 148%, Nehalem by 290% Scalability support from EDR InfiniBand and HPC-X provide huge boost in performance at scale for LS-DYNA System components used: Haswell: 2-socket 14-core E5-2697v3@2.6GHz, 2133MHz DIMMs, ConnectX-4 EDR InfiniBand Ivy Bridge: 2-socket 10-core E5-2680v2@2.8GHz, 1600MHz DIMMs, Connect-IB FDR InfiniBand Sandy Bridge: 2-socket 8-core E5-2680@2.7GHz, 1600MHz DIMMs, ConnectX-3 FDR InfiniBand Westmere: 2-socket 6-core x5670@2.93ghz, 1333MHz DIMMs, ConnectX-2 QDR InfiniBand Nehalem: 2-socket 4-core x5570@2.93ghz, 1333MHz DIMMs, ConnectX-2 QDR InfiniBand 148%75% 290% 47% Higher is better
25 LS-DYNA Summary Performance Compute: Intel Haswell cluster outperforms system architecture of previous generations Outperforms Ivy Bridge by 47%, Sandy Bridge by 75%, Westmere by 148%, and Nehalem by 290% Using executable with AVX2 instructions provides slight advantage Slight improvement of ~2-4% by using executable with AVX2 instructions Turbo Mode: Running with Turbo Boost provides ~25% of performance boost in some cases Turbo Boost enables processors to run above its base frequency Network: EDR InfiniBand and HPC-X MPI library deliver superior scalability in application performance EDR IB provides higher performance by over 4-5 times vs 1GbE, 10GbE and 40GbE, 15% vs FDR IB at 32 nodes MPI Tuning HPC-X enhances LS-DYNA performance at scale for LS-DYNA MXM UD provides a speedup of 38% over un-tuned baseline run at 32 nodes HPC-X outperforms Platform MPI, and Open MPI in scalability performance Up to 27% better than Platform MPI on neon_refined_revised, and 8% better than Platform MPI in 3cars
26 Case Study: GROMACS
27 GROMACS GROMACS (GROningen MAchine for Chemical Simulation) A molecular dynamics simulation package Primarily designed for biochemical molecules like proteins, lipids and nucleic acids A lot of algorithmic optimizations have been introduced in the code Extremely fast at calculating the nonbonded interactions Ongoing development to extend GROMACS with interfaces both to Quantum Chemistry and Bioinformatics/databases An open source software released under the GPL
Objectives 28 The presented research was done to provide best practices GROMACS performance benchmarking CPU performance comparison MPI library performance comparison Interconnect performance comparison System generations comparison The presented results will demonstrate The scalability of the compute environment/application Considerations for higher productivity and efficiency
29 Test Cluster Configuration Dell PowerEdge R730 32-node (896-core) Thor cluster Dual-Socket 14-Core Intel E5-2697v3 @ 2.60 GHz CPUs (Power Management in BIOS sets to Maximum Performance) Memory: 64GB memory, DDR4 2133 MHz, Memory Snoop Mode in BIOS sets to Home Snoop, Turbo Enabled OS: RHEL 6.5, MLNX_OFED_LINUX-3.0-1.0.1 InfiniBand SW stack Hard Drives: 2x 1TB 7.2 RPM SATA 2.5 on RAID 1 Mellanox ConnectX-4 EDR 100Gbps EDR InfiniBand Adapters Mellanox Switch-IB SB7700 36-port 100Gb/s EDR InfiniBand Switch Mellanox ConnectX-3 FDR InfiniBand, 10/40GbE Ethernet VPI Adapters Mellanox SwitchX-2 SX6036 36-port 56Gb/s FDR InfiniBand / VPI Ethernet Switch MPI: Mellanox HPC-X v1.2.0-326 Compiler and Libraries: Intel Composer XE 2015.3.187 and MKL Application: GROMACS 4.6.7 Benchmark datasets: DPPC in Water (d.dppc, 121856 atoms, 150000 steps, SP) unless stated otherwise
30 GROMACS Performance Network Interconnects InfiniBand is the only interconnect that delivers superior scalability performance EDR InfiniBand provides higher performance and more scalable than 1GbE, 10GbE, or 40GbE Performance for Ethernet stays flat (or stops scaling) beyond 2 nodes EDR InfiniBand outperforms 10GbE-RoCE on scalability performance by 55% at 32 nodes / 896c EDR InfiniBand demonstrates continuous performance gain at scale 4.2x4.1x 55% 4.6x Higher is better 28 MPI Processes / Node
31 GROMACS Profiling Time Spent by MPI Calls The most time consuming MPI call os MPI_Sendrecv MPI_Sendrecv: 66% (or 27% of runtime) at 32 nodes (896 cores) MPI_Waitall: 18% (or 7% of runtime), MPI_Bcast: 6% (or 2% of runtime) Point to point and non-blocking sends and receives consume most time in GROMACS 32 Nodes
32 GROMACS Profiling MPI Message Sizes Majority of data transfer messages are medium sizes, except for: MPI_Sendrecv has a large concentration (from 8B to 8KB) MPI_Bcast shows some concentration 32 Nodes
33 GROMACS Profiling MPI Data Transfer As the cluster grows, similar communication behavior is seen Majority of communications are between neighboring ranks Non-blocking (point to point) data, and point-to-point transfers are shown in the graph Collective data communications are small compared to point-to-point communications 32 Nodes / 896 Cores 2 Nodes / 56 Cores
34 GROMACS Performance EDR vs FDR InfiniBand EDR InfiniBand delivers superior scalability in application performance As the number of nodes scales, performance gap of EDR IB becomes widen Performance advantage of EDR InfiniBand increases for larger core counts EDR InfiniBand provides 29% versus FDR InfiniBand at 32 nodes (896 cores) 29% Higher is better 28 MPI Processes / Node
35 GROMACS Performance System Generations Thor cluster (based on Intel E5-2697v3 - Haswell) outperforms prior generations 1.1 to 3.5x higher performance than clusters based on previous generations of Intel architecture System components used: Janus: 2-socket 6-core Xeon X5670 @ 2.93GHz, 1333MHz DIMMs, ConnectX-2 QDR IB Jupiter: 2-socket 8-core Xeon E5-2680 @ 2.7GHz, 1600MHz DIMMs, ConnectX-3 FDR IB Thor: 2-socket 14-core Xeon E5-2680V3 @2.6GHz, 2133MHz DIMMs, ConnectX-4 EDR IB 118% 356% Higher is better
36 GROMACS Performance Cores Per Node Running more CPU cores provides higher performance ~7-10% higher productivity with 28PPN compared to 24PPN Higher demand on memory bandwidth and network might limit performance as more cores are used 39% 7% 13% Higher is better CPU @ 2.6GHz
37 GROMACS Performance Turbo Mode & CPU Clock Advantages are seen with running higher clock rate Either by enabling Turbo mode or higher CPU clock frequency Boosting CPU clock rate yields higher performance at lower cost Increasing to 2600MHz (from 2300MHz) run 11% faster 11% 16% Higher is better CPU @ 2.6GHz
38 GROMACS Performance Floating Point Precision GROMACS allows running either SP and DP for floating point precision Running at SP is shown to be faster than running at DP Seen around 41%-47% faster running at SP (Single Precision) versus DP (Double Precision) All other slides are running using Single Precision 41% 47% Higher is better CPU @ 2.6GHz
39 GROMACS Summary Latest system generation improve GROMACS performance at scale Compute: Intel Haswell cluster outperforms system architecture of previous generations Haswell cluster outperforms Sandy Bridge cluster by 110%, and outperforms Westmere cluster by 350% at 32 node Compute: Running more CPU cores provides higher performance ~7-10% higher productivity with 28PPN compared to 24PPN Network: EDR InfiniBand delivers superior scalability in application performance EDR InfiniBand provides higher performance and more scalable than 1GbE, 10GbE, or 40GbE Performance for Ethernet (1GbE/10GbE/40GbE) stays flat (or stops scaling) beyond 2 nodes EDR InfiniBand outperforms 10GbE-RoCE on scalability performance by 55% at 32 nodes / 896c Running at Single Precision is approximately twice as fast as running at Double Precision Seen around 41%-47% faster running at SP (Single Precision) versus DP (Double Precision) MPI Profile shows majority of data transfer are point-to-point and non-blocking communications MPI_Sendrecv and MPI_Waitall are the most used MPI communication
40 40 Thank You HPC Advisory Council All trademarks are property of their respective owners. All information is provided As-Is without any kind of warranty. The HPC Advisory Council makes no representation to the accuracy and completeness of the information contained herein. HPC Advisory Council undertakes no duty and assumes no obligation to update or correct any information presented herein