SlideShare ist ein Scribd-Unternehmen logo
1 von 69
Downloaden Sie, um offline zu lesen
TAU and E4S
July 9, 2020, 3:15pm CEST/6:15am PT
OpenPOWER Foundation Workshop at CINECA
CINECA, Italy
Prof. Sameer Shende
Research Associate Professor and
Director, Performance Research Laboratory, OACISS,
University of Oregon
http://tau.uoregon.edu/TAU_IBM_Cineca20.pdf
2
Challenges
• With growing hardware complexity, it is getting harder to
accurately measure and optimize the performance of our
HPC and AI/ML workloads.
• As our software gets more complex, it is getting harder to
install tools and libraries correctly in an integrated and
interoperable software stack.
3
Motivation: Improving Productivity
• TAU Performance System®:
– Deliver a scalable, portable, performance evaluation toolkit for HPC and
AI/ML workloads
– http://tau.uoregon.edu
• Extreme-scale Scientific Software Stack (E4S):
– Delivering a modular, interoperable, and deployable software stack
– Deliver expanded and vertically integrated software stacks to achieve full
potential of extreme-scale computing
– Lower barrier to using software technology (ST) products from ECP
– Enable uniform APIs where possible
– https://e4s.io
4
TAU Performance System®
Parallel performance framework and toolkit
• Supports all HPC platforms, compilers, runtime system
• Provides portable instrumentation, measurement, analysis
5
TAU Performance System
Instrumentation
• Python, C++, C, Fortran, UPC, Java, Chapel, Spark
• Automatic instrumentation
Measurement and analysis support
• MPI, OpenSHMEM, ARMCI, PGAS
• pthreads, OpenMP, OMPT interface, hybrid, other thread models
• GPU, ROCm, CUDA, OpenCL, OpenACC
• Parallel profiling and tracing
Analysis
• Parallel profile analysis (ParaProf), data mining (PerfExplorer)
• Performance database technology (TAUdb)
• 3D profile browser
6
• How much time is spent in each application routine and outer loops? Within loops, what is the
contribution of each statement? What is the time spent in OpenMP loops? In kernels on
GPUs. How long did it take to transfer data between host and device (GPU)?
• How many instructions are executed in these code regions?
Floating point, Level 1 and 2 data cache misses, hits, branches taken? What is the extent of
vectorization for loops?
• What is the memory usage of the code? When and where is memory allocated/de-allocated?
Are there any memory leaks? What is the memory footprint of the application? What is the
memory high water mark?
• How much energy does the application use in Joules? What is the peak power usage?
• What are the I/O characteristics of the code? What is the peak read and write bandwidth of
individual calls, total volume?
• How does the application scale? What is the efficiency, runtime breakdown of performance
across different core counts?
Application Performance Engineering
using TAU
7
Instrumentation
• Source instrumentation using a preprocessor
– Add timer start/stop calls in a copy of the source code.
– Use Program Database Toolkit (PDT) for parsing source code.
– Requires recompiling the code using TAU shell scripts (tau_cc.sh, tau_f90.sh)
– Selective instrumentation (filter file) can reduce runtime overhead and narrow instrumentation
focus.
• Compiler-based instrumentation
– Use system compiler to add a special flag to insert hooks at routine entry/exit.
– Requires recompiling using TAU compiler scripts (tau_cc.sh, tau_f90.sh…)
• Runtime preloading of TAU’s Dynamic Shared Object (DSO)
– No need to recompile code! Use mpirun tau_exec ./app with options.
Add hooks in the code to perform measurements
8
Profiling and Tracing
• Tracing shows you when the events take
place on a timeline
Profiling Tracing
• Profiling shows you how much
(total) time was spent in each routine
• Profiling and tracing
Profiling shows you how much (total) time was spent in each routine
Tracing shows you when the events take place on a timeline
9
Using TAU’s Runtime Preloading Tool: tau_exec
• Preload a wrapper that intercepts the runtime system call and substitutes with another
o MPI
o OpenMP
o POSIX I/O
o Memory allocation/deallocation routines
o Wrapper library for an external package
• No modification to the binary executable!
• Enable other TAU options (communication matrix, OTF2, event-based sampling)
10
TAU: Quickstart Guide
Setup:
• % module load tau
Profiling with an un-instrumented application:
• MPI: % mpirun -np 64 tau_exec -ebs ./a.out
• MPI+OpenMP with Clang 9+: % export TAU_OMPT_SUPPORT_LEVEL=full;
% mpirun -np 64 tau_exec –T ompt,v5 –ompt ./a.out
• Pthread: % mpirun -np 64 tau_exec –T mpi,pthread –ebs ./a.out
• Python+MPI+Sampling: % mpirun -np 64 tau_python –ebs ./a.py
• Python+MPI+CUDA+Sampling: % mpirun –np 64 tau_python –cupti –ebs ./a.py
• Python+CUDA (no MPI): % tau_exec –T cupti,serial –cupti ./a.py
Analysis: % pprof –a –m | more; % paraprof (GUI)
Tracing:
• Vampir: MPI: % export TAU_TRACE=1; export TAU_TRACE_FORMAT=otf2
% mpirun -np 64 tau_exec ./a.out; vampir traces.otf2 &
• Chrome: % export TAU_TRACE=1; mpirun –np 64 tau_exec ./a.out; tau_treemerge.pl;
% tau_trace2json tau.trc tau.edf –chrome –ignoreatomic –o app.json
Chrome browser: chrome://tracing (Load -> app.json)
• Jumpshot: % export TAU_TRACE=1; mpirun –np 64 tau_exec ./a.out; tau_treemerge.pl;
% tau2slog2 tau.trc tau.edf –o app.slog2; jumpshot app.slog2 &
11
ParaProf Profile Browser
% paraprof
12
ParaProf Profile Browser
13
TAU supports Python, MPI, and CUDA
Without any modification to the source code or DSOs or interpreter, it instruments and
samples the application using Python, MPI, and CUDA instrumentation.
% mpirun –np 230 tau_python –T cupti,mpi,pdt –ebs –cupti ./exafel.py
Instead of:
% mpirun –np 230 python ./exafel.py
Kernel on GPU
14
TAU Thread Statistics Table
Python, MPI, CUDA, and samples from DSOs are all integrated in a single view
15
ParaProf
Click on Columns:
to sort by incl time
Open binvcrhs
Click on Sample
16
ParaProf
17
TAU Context Event Window
TAU tracks the data transfers between the host and the GPU.
18
TAU’s tracking of Python and MPI
TAU can observe events in closed-source vendor libraries (e.g., in MPI_Bcast)!
19
Callstack Sampling in TAU
% export TAU_SAMPLING=1; export TAU_EBS_UNWIND=1
20
Deep Learning: Tensorflow
% tau_python –ebs nt3_baseline_keras2.py (CANDLE)
21
Sampling Tensorflow
22
Event Based Sampling (EBS)
% mpirun -n 16 tau_exec –ebs a.out
Uninstrumented!
23
Callsite Profiling and Tracing
% export TAU_CALLSITE=1
24
TAU – Context Events
Bytes written to each file
Write bandwidth per file
25
ParaProf 3D Profile Browser
26
TAU – ParaProf 3D Visualization
% paraprof app.ppk
Windows -> 3D Visualization -> Bar Plot (right pane)
27
TAU – 3D Communication Window
% export TAU_COMM_MATRIX=1; mpirun … tau_exec ./a.out
% paraprof ; Windows -> 3D Communication Matrix
28
Tracing: Jumpshot (ships with TAU)
29
Tracing: Chrome Browser
% export TAU_TRACE=1
% mpirun –np 256 tau_exec ./a.out
% tau_treemerge.pl; tau_trace2json tau.trc tau.edf –chrome –ignoreatomic –o app.json
Chrome browser: chrome://tracing (Load -> app.json)
30
Vampir [TU Dresden] Timeline: Kokkos
% export TAU_TRACE=1; export TAU_TRACE_FORMAT=otf2
% tau_exec –ompt ./a.out
% vampir traces.otf2 &
31
TAU’s Support for Runtime Systems
MPI
PMPI profiling interface
MPI_T tools interface using performance and control variables
Pthread
Captures time spent in routines per thread of execution
OpenMP
OMPT tools interface to track salient OpenMP runtime events
Opari source rewriter
Preloading wrapper OpenMP runtime library when OMPT is not supported
OpenACC
OpenACC instrumentation API
Track data transfers between host and device (per-variable)
Track time spent in kernels
32
TAU’s Support for Runtime Systems (contd.)
OpenCL
OpenCL profiling interface
Track timings of kernels
CUDA
Cuda Profiling Tools Interface (CUPTI)
Track data transfers between host and GPU
Track access to uniform shared memory between host and GPU
ROCm
Rocprofiler and Roctracer instrumentation interfaces
Track data transfers and kernel execution between host and GPU
Kokkos
Kokkos profiling API
Push/pop interface for region, kernel execution interface
Python
Python interpreter instrumentation API
Tracks Python routine transitions as well as Python to C transitions
33
Examples of Multi-Level Instrumentation
MPI + OpenMP
MPI_T + PMPI + OMPT may be used to track MPI and OpenMP
MPI + CUDA
PMPI + CUPTI interfaces
OpenCL + ROCm
Rocprofiler + OpenCL instrumentation interfaces
Kokkos + OpenMP
Kokkos profiling API + OMPT to transparently track events
Kokkos + pthread + MPI
Kokkos + pthread wrapper interposition library + PMPI layer
Python + CUDA + MPI
Python + CUPTI + pthread profiling interfaces (e.g., Tensorflow, PyTorch) + MPI
MPI + OpenCL
PMPI + OpenCL profiling interfaces
34
TAU Execution Command (tau_exec)
Uninstrumented execution
% mpirun -np 256 ./a.out
Track GPU operations
% mpirun –np 256 tau_exec –cupti ./a.out
% mpirun –np 256 tau_exec –opencl ./a.out
% mpirun –np 256 tau_exec –openacc ./a.out
Track MPI performance
% mpirun -np 256 tau_exec ./a.out
Track I/O, and MPI performance (MPI enabled by default)
% mpirun -np 256 tau_exec -io ./a.out
Track OpenMP and MPI execution (using OMPT for Intel v19+ or Clang 8+)
% export TAU_OMPT_SUPPORT_LEVEL=full;
% mpirun –np 256 tau_exec –T ompt,v5,mpi -ompt ./a.out
Track memory operations
% export TAU_TRACK_MEMORY_LEAKS=1
% mpirun –np 256 tau_exec –memory_debug ./a.out (bounds check)
Use event based sampling (compile with –g)
% mpirun –np 256 tau_exec –ebs ./a.out
Also -ebs_source=<PAPI_COUNTER> -ebs_period=<overflow_count> -ebs_resolution=<file | function | line>
Extreme-scale Scientific Software
Stack (E4S)
https://e4s.io
36
Extreme-scale Scientific Software Stack (E4S)
https://e4s.io
§ E4S is a community effort to provide open source software packages for
developing, deploying, and running scientific applications on HPC platforms.
§ E4S provides both source builds and containers of a broad collection of HPC
software packages.
§ E4S exists to accelerate the development, deployment and use of HPC
software, lowering the barriers for HPC users.
§ E4S provides containers and turn-key, from-source builds of 80+ popular
HPC software packages:
§ MPI: MPICH and OpenMPI
§ Development tools: TAU, HPCToolkit, and PAPI
§ Math libraries: PETSc and Trilinos
§ Data and Viz tools: Adios, HDF5, and Paraview
37
ECP is working towards a periodic, hierarchical release process
• In ECP, teams increasingly need to ensure that their libraries and
components work together
– Historically, HPC codes used very few dependencies
• Now, groups related SW products work together on small releases
of “Software Development Kits” - SDKs
• SDKs will be rolled into a larger, periodic release – E4S.
• Deployment at Facilities builds on SDKs and E4S
Develop
Package
Build
Test
Deploy
Math
Libraries
Develop
Package
Build
Test
Deploy
Data and
Visualization
Develop
Package
Build
Test
Deploy
Programming
Models
…
Build
TestDeploy
Integrate
E4S:
ECP-wide
software
release
https://e4s.io
38
E4S: Extreme-scale Scientific Software Stack
• Curated release of ECP ST products based on Spack [http://spack.io] package manager
• Spack binary build caches for bare-metal installs
– x86_64, ppc64le (IBM Power 9), and aarch64 (ARM64)
• Container images on DockerHub and E4S website of pre-built binaries of ECP ST products
• Base images and full featured containers (GPU support)
• GitHub recipes for creating custom images from base images
• GitLab integration for building E4S images
• E4S validation test suite on GitHub
• E4S VirtualBox image with support for container runtimes
• Docker
• Singularity
• Shifter
• Charliecloud
• AWS image to deploy E4S on EC2
https://e4s.io
39
Integration and Interoperability: E4S
• E4S is released twice a year. ECP Annual Meeting release of E4S v1.1:
– Containers and turn-key, from-source builds popular HPC software packages
– 45+ full release ECP ST products including:
• MPI: MPICH and OpenMPI
• Development tools: TAU, HPCToolkit, and PAPI
• Math libraries: PETSc and Trilinos
• Data and Viztools: Adios, HDF5
– Limited access to 10 additional ECP ST products
– GPU support
40
Download E4S v1.1 GPU image
https://e4s.io
41
E4S v1.1 Release at DockerHub: GPU Support
• 40+ ECP ST Products
• Support for GPUs
• NVIDIA
(CUDA 10.1.243)
• ppc64le and x86_64
% docker pull ecpe4s/ubuntu18.04-e4s-gpu
42
E4S v1.1 GPU Release
• 46 ECP ST products
• Ubuntu v18.04 ppc64le
• Support for GPUs
• NVIDIA
43
E4S Support for Singularity Container Runtime [Sylabs.io]
● wget http://oaciss.uoregon.edu/e4s/images/e4s_ubuntu1804_gpu_ppc64le_1.1.simg
● singularity exec --nv e4s_ubuntu1804_gpu_ppc64le_1.1.simg /bin/bash --rcfile /etc/bashrc
● spack find
44
E4S v1.1 GPU Support
% docker pull ecpe4s/ubuntu18.04-e4s-gpu
Spack
46
Spack
• E4S uses the Spack package manager for software delivery
• Spack provides the ability to specify versions of software packages that are and are not
interoperable.
• Spack is a build layer for not only E4S software, but also a large collection of software tools
and libraries outside of ECP ST.
• Spack supports achieving and maintaining interoperability between ST software packages.
47
Scientific software is becoming extremely complex
r-rminer
r
r-adabag
r-mass
r-lattice
r-nnet
r-rpart
r-cubist
r-e1071
r-glmnet
r-kernlab
r-kknn
r-mda
r-party
r-plotrix
r-pls
r-randomforest
r-xgboost
bzip2
cairo
freetype
zlib
glib
ncurses
pcre
readline
curl
icu4c
jdk
libjpeg-turbo
libtiff
pango
tcltk
fontconfig
pkgconf
libpng
pixman
font-util
gperf
libxml2
util-macros
xz
gettext
libffi
perl
python
tar
gdbm
openssl
sqlite
cmake
nasm
gobject-introspection
harfbuzz
bison
flex
sed
m4 libsigsegv
help2man
libx11 inputproto
kbproto
libxcb
xproto
xextproto
xtrans
libpthread-stubs
libxau
libxdmcp
xcb-proto
r-caret
r-mlbench
r-car
r-nlme
r-foreach
r-ggplot2
r-plyr
r-reshape2
r-modelmetrics
r-mgcv
r-pbkrtest
r-quantreg
r-matrix
r-lme4
r-minqa
r-rcpp
r-nloptr
r-rcppeigen
r-testthat
r-crayon
r-digest
r-magrittr
r-praise
r-r6
r-matrixmodels
r-sparsem
r-codetools
r-iterators
r-gtable
r-lazyeval
r-scales
r-tibble
r-stringr
r-stringi
r-dichromat
r-labeling
r-munsell
r-rcolorbrewer
r-viridislite
r-colorspace
r-assertthat
r-rlang
r-class
r-igraph
gmp
r-irlba
r-pkgconfig
autoconf
automake
libtool
r-coin
r-modeltools
r-mvtnorm
r-sandwich
r-zoo
r-survival
r-strucchange
r-multcomp r-th-data
r-data-table
R Miner: R Data Mining Library
dealii
adol-c
arpack-ng
cmake
zlib
openblas
openmpi
assimp
boost
gmsh oce
intel-tbb
gsl
hdf5
metis
muparser
nanoflann
netcdfnetcdf-cxx
netlib-scalapack
p4est
petsc
slepc
suite-sparse
sundials
trilinos
autoconf
m4
automake
libtool
perl
libsigsegv
gdbm
readline
ncurses
pkgconf
openssl
hwloc libxml2
xz
bzip2
gmp
netgen
tetgen
hypre
parmetis
python
superlu-dist
sqlite
glm
matio
mumps
dealii: C++ Finite Element Library
nalu
cmake
openmpi
trilinos
yaml-cpp
ncurses
openssl
pkgconf
zlib
hwloc libxml2
xz
boost
glm
hdf5
matio
metis
mumps
netlib-scalapack
openblas
netcdf
parallel-netcdf
parmetis
suite-sparse
superlu
bzip2
m4 libsigsegv
Nalu: Generalized Unstructured Massively Parallel Low Mach Flow
48
• Half of this DAG is external (blue); more than half of it is open source
• Nearly all of it needs to be built specially for HPC to get the best performance
Even proprietary codes are based on many open source libraries
ARES
tcl
tkscipy
python
cmake
hpdf
opclient
boost
zlib
numpy
bzip2
LAPACK
gsl
HDF5
gperftools papi
GA
bdivxml
sgeos_xmlScallop
rng perflib memusage timers
SiloSAMRAI
HYPRE
matprop
overlink qd
LEOS
MSlibLaser
CRETIN
tdf
Cheetah DSD
Teton
Nuclear
ASCLaser
MPI
ncurses
sqlite readline openssl BLAS
Physics Utility Math External
Types of Packages
49
• How to install Spack (works out of the box):
• How to install a package:
• TAU and its dependencies are installed within the Spack directory.
• Unlike typical package managers, Spack can also install many variants of the same build.
– Different compilers
– Different MPI implementations
– Different build options
Spack is a flexible package manager for HPC
$ git clone https://github.com/spack/spack
$ . spack/share/spack/setup-env.sh
$ spack install tau
50
• Each expression is a spec for a particular configuration
– Each clause adds a constraint to the spec
– Constraints are optional – specify only what you need.
– Customize install on the command line!
• Spec syntax is recursive
– Full control over the combinatorial build space
Spack provides the spec syntax to describe custom configurations
$ spack install tau unconstrained
$ spack install tau@2.29 @ custom version
$ spack install tau@2.29 %gcc@7.3.0 % custom compiler
$ spack install tau@2.29 %gcc@7.3.0 +mpi+python+pthreads +/- build option
$ spack install tau@2.29 %gcc@7.3.0 +mpi ^mvapich2@2.3~wrapperrpath ^ dependency information
51
`spack find` shows what is installed
• All the versions coexist!
– Multiple versions of same
package are ok.
• Packages are installed to
automatically find correct
dependencies.
• Binaries work regardless of
user’s environment.
• Spack also generates
module files.
– Don’t have to use them.
52
• Spack simplifies HPC software for:
– Users
– Developers
– Cluster installations
– The largest HPC facilities
• Spack is central to ECP’s software strategy
– Enable software reuse for developers and users
– Allow the facilities to consume the entire ECP stack
• The roadmap is packed with new features:
– Building the ECP software distribution
– Better workflows for building containers
– Stacks for facilities
– Chains for rapid dev workflow
– Optimized binaries
– Better dependency resolution
The Spack community is growing rapidly
@spackpm
github.com/spack/spack
Visit spack.io
E4S Spack Build Cache and
Container Build Pipeline
54
Reproducible, Customizable Container Builds & Spack Mirrors
• E4S provides base images and recipes for building Docker containers based on SDKs
– Git: https://github.com/UO-OACISS/e4s
– E4S provides build caches for Spack for native bare-metal as well as container builds based
installation of ST products
– Build caches: https://oaciss.uoregon.edu/e4s/inventory.html
• The build cache model can be extended to target platforms, and can be managed by facilities staff when
appropriate.
55
E4S: Spack Build Cache at U. Oregon
• https://oaciss.uoregon.edu/e4s/inventory.html
• 10,000+ binaries
• S3 mirror
• No need to build
from source code!
56
E4S: DockerHub Images: ecpe4s
• Dockerhub
• Tensorflow 2.2
• CUDA 10.2
• ppc64le
57
E4S: ppc64le Base Container Images
• Ubuntu 18.04
• RHEL/UBI 7.6
• Centos 7.6
• Hub.docker.com
• ecpe4s
58
E4S: Multi-platform Reproducible Docker Recipes
https://e4s.io
E4S
• x86_64
• ppc64le
• aarch64
59
E4S: Build Pipeline for Creating Spack Build Cache at U. Oregon
• GitLab
• Multi-platform builds
60
E4S Validation Test Suite
• git clone https://github.com/E4S-Project/testsuite.git
To validate packages built in E4S
61
Reproducible Container Builds using E4S Base Images
● PMR SDK base image has Spack build cache mirror and
GPG key installed.
● Base image has GCC and MPICH configured for MPICH
ABI level replacement (with system MPI).
● Customized container build using binaries from E4S
Spack build cache for fast deployment.
● No need to rebuild packages from the source code.
● Same recipe for container and native bare-metal builds
with Spack!
62
E4S VirtualBox Image
https://e4s.io
Container Runtimes
• Docker
• Shifter
• Singularity
• Charliecloud
63
Future work, issues…
● Improved support for GPUs and visualization tools
● DOE LLVM
● Addition of CI testing
● Facility deployment
● Scalable startup with full-featured “Supercontainers”
● Improving the launch of MPI applications
64
Conclusions
● TAU provides a versatile tool to measure performance of HPC and AI/ML workloads
● TAU is part of the bigger ECP E4S project
● E4S provides a well integrated software stack for AI/ML and HPC for IBM ppc64le
● From-source builds assisted by a binary build cache or containers
● Docker and Singularity images are available for download
● https://e4s.io
65
Download TAU from U. Oregon
http://tau.uoregon.edu
for more information
Free download, open source, BSD license
66
Performance Research Laboratory, University of Oregon, Eugene
www.uoregon.edu
67
• US Department of Energy (DOE)
– ANL
– Office of Science contracts, ECP
– SciDAC, LBL contracts
– LLNL-LANL-SNL ASC/NNSA contract
– Battelle, PNNL and ORNL contract
• Department of Defense (DoD)
– PETTT, HPCMP
• National Science Foundation (NSF)
– SI2-SSI, Glassbox
• NASA
• CEA, France
• Partners:
–University of Oregon
–The Ohio State University
–ParaTools, Inc.
–University of Tennessee, Knoxville
–T.U. Dresden, GWT
–Jülich Supercomputing Center
Support Acknowledgements
68
Acknowledgment
“This research was supported by the Exascale Computing Project (17-SC-20-SC), a collaborative effort of
two U.S. Department of Energy organizations (Office of Science and the National Nuclear Security
Administration) responsible for the planning and preparation of a capable exascale ecosystem, including
software, applications, hardware, advanced system engineering, and early testbed platforms, in support
of the nation’s exascale computing imperative.”
69

Weitere ähnliche Inhalte

Was ist angesagt?

CuPy: A NumPy-compatible Library for GPU
CuPy: A NumPy-compatible Library for GPUCuPy: A NumPy-compatible Library for GPU
CuPy: A NumPy-compatible Library for GPUShohei Hido
 
“Deploying PyTorch Models for Real-time Inference On the Edge,” a Presentatio...
“Deploying PyTorch Models for Real-time Inference On the Edge,” a Presentatio...“Deploying PyTorch Models for Real-time Inference On the Edge,” a Presentatio...
“Deploying PyTorch Models for Real-time Inference On the Edge,” a Presentatio...Edge AI and Vision Alliance
 
BPF Hardware Offload Deep Dive
BPF Hardware Offload Deep DiveBPF Hardware Offload Deep Dive
BPF Hardware Offload Deep DiveNetronome
 
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...AMD Developer Central
 
CC-4005, Performance analysis of 3D Finite Difference computational stencils ...
CC-4005, Performance analysis of 3D Finite Difference computational stencils ...CC-4005, Performance analysis of 3D Finite Difference computational stencils ...
CC-4005, Performance analysis of 3D Finite Difference computational stencils ...AMD Developer Central
 
New Process/Thread Runtime
New Process/Thread Runtime	New Process/Thread Runtime
New Process/Thread Runtime Linaro
 
A Survey on in-a-box parallel computing and its implications on system softwa...
A Survey on in-a-box parallel computing and its implications on system softwa...A Survey on in-a-box parallel computing and its implications on system softwa...
A Survey on in-a-box parallel computing and its implications on system softwa...ChangWoo Min
 
Webinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceWebinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceAMD Developer Central
 
SDVIs and In-Situ Visualization on TACC's Stampede
SDVIs and In-Situ Visualization on TACC's StampedeSDVIs and In-Situ Visualization on TACC's Stampede
SDVIs and In-Situ Visualization on TACC's StampedeIntel® Software
 
Fast Scalable Easy Machine Learning with OpenPOWER, GPUs and Docker
Fast Scalable Easy Machine Learning with OpenPOWER, GPUs and DockerFast Scalable Easy Machine Learning with OpenPOWER, GPUs and Docker
Fast Scalable Easy Machine Learning with OpenPOWER, GPUs and DockerIndrajit Poddar
 
Best Practices and Performance Studies for High-Performance Computing Clusters
Best Practices and Performance Studies for High-Performance Computing ClustersBest Practices and Performance Studies for High-Performance Computing Clusters
Best Practices and Performance Studies for High-Performance Computing ClustersIntel® Software
 
"The OpenVX Hardware Acceleration API for Embedded Vision Applications and Li...
"The OpenVX Hardware Acceleration API for Embedded Vision Applications and Li..."The OpenVX Hardware Acceleration API for Embedded Vision Applications and Li...
"The OpenVX Hardware Acceleration API for Embedded Vision Applications and Li...Edge AI and Vision Alliance
 
An Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating SystemAn Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating SystemLinaro
 
AI Pipeline Optimization using Kubeflow
AI Pipeline Optimization using KubeflowAI Pipeline Optimization using Kubeflow
AI Pipeline Optimization using KubeflowSteve Guhr
 
Leverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesLeverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesAMD Developer Central
 
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAn Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAMD Developer Central
 
Arm as a Viable Architecture for HPC and AI
Arm as a Viable Architecture for HPC and AIArm as a Viable Architecture for HPC and AI
Arm as a Viable Architecture for HPC and AIinside-BigData.com
 

Was ist angesagt? (20)

Open power ddl and lms
Open power ddl and lmsOpen power ddl and lms
Open power ddl and lms
 
CuPy: A NumPy-compatible Library for GPU
CuPy: A NumPy-compatible Library for GPUCuPy: A NumPy-compatible Library for GPU
CuPy: A NumPy-compatible Library for GPU
 
TensorFlow for HPC?
TensorFlow for HPC?TensorFlow for HPC?
TensorFlow for HPC?
 
“Deploying PyTorch Models for Real-time Inference On the Edge,” a Presentatio...
“Deploying PyTorch Models for Real-time Inference On the Edge,” a Presentatio...“Deploying PyTorch Models for Real-time Inference On the Edge,” a Presentatio...
“Deploying PyTorch Models for Real-time Inference On the Edge,” a Presentatio...
 
BPF Hardware Offload Deep Dive
BPF Hardware Offload Deep DiveBPF Hardware Offload Deep Dive
BPF Hardware Offload Deep Dive
 
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...
 
CC-4005, Performance analysis of 3D Finite Difference computational stencils ...
CC-4005, Performance analysis of 3D Finite Difference computational stencils ...CC-4005, Performance analysis of 3D Finite Difference computational stencils ...
CC-4005, Performance analysis of 3D Finite Difference computational stencils ...
 
New Process/Thread Runtime
New Process/Thread Runtime	New Process/Thread Runtime
New Process/Thread Runtime
 
A Survey on in-a-box parallel computing and its implications on system softwa...
A Survey on in-a-box parallel computing and its implications on system softwa...A Survey on in-a-box parallel computing and its implications on system softwa...
A Survey on in-a-box parallel computing and its implications on system softwa...
 
Webinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceWebinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop Intelligence
 
SDVIs and In-Situ Visualization on TACC's Stampede
SDVIs and In-Situ Visualization on TACC's StampedeSDVIs and In-Situ Visualization on TACC's Stampede
SDVIs and In-Situ Visualization on TACC's Stampede
 
Fast Scalable Easy Machine Learning with OpenPOWER, GPUs and Docker
Fast Scalable Easy Machine Learning with OpenPOWER, GPUs and DockerFast Scalable Easy Machine Learning with OpenPOWER, GPUs and Docker
Fast Scalable Easy Machine Learning with OpenPOWER, GPUs and Docker
 
Best Practices and Performance Studies for High-Performance Computing Clusters
Best Practices and Performance Studies for High-Performance Computing ClustersBest Practices and Performance Studies for High-Performance Computing Clusters
Best Practices and Performance Studies for High-Performance Computing Clusters
 
"The OpenVX Hardware Acceleration API for Embedded Vision Applications and Li...
"The OpenVX Hardware Acceleration API for Embedded Vision Applications and Li..."The OpenVX Hardware Acceleration API for Embedded Vision Applications and Li...
"The OpenVX Hardware Acceleration API for Embedded Vision Applications and Li...
 
Intel python 2017
Intel python 2017Intel python 2017
Intel python 2017
 
An Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating SystemAn Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating System
 
AI Pipeline Optimization using Kubeflow
AI Pipeline Optimization using KubeflowAI Pipeline Optimization using Kubeflow
AI Pipeline Optimization using Kubeflow
 
Leverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesLeverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math Libraries
 
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAn Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
 
Arm as a Viable Architecture for HPC and AI
Arm as a Viable Architecture for HPC and AIArm as a Viable Architecture for HPC and AI
Arm as a Viable Architecture for HPC and AI
 

Ähnlich wie Performance Evaluation using TAU Performance System and E4S

Containerizing HPC and AI applications using E4S and Performance Monitor tool
Containerizing HPC and AI applications using E4S and Performance Monitor toolContainerizing HPC and AI applications using E4S and Performance Monitor tool
Containerizing HPC and AI applications using E4S and Performance Monitor toolGanesan Narayanasamy
 
TAU E4S ON OpenPOWER /POWER9 platform
TAU E4S ON OpenPOWER /POWER9 platformTAU E4S ON OpenPOWER /POWER9 platform
TAU E4S ON OpenPOWER /POWER9 platformGanesan Narayanasamy
 
2010 02 instrumentation_and_runtime_measurement
2010 02 instrumentation_and_runtime_measurement2010 02 instrumentation_and_runtime_measurement
2010 02 instrumentation_and_runtime_measurementPTIHPA
 
HiPEAC 2019 Tutorial - Maestro RTOS
HiPEAC 2019 Tutorial - Maestro RTOSHiPEAC 2019 Tutorial - Maestro RTOS
HiPEAC 2019 Tutorial - Maestro RTOSTulipp. Eu
 
TAU for Accelerating AI Applications at OpenPOWER Summit Europe
TAU for Accelerating AI Applications at OpenPOWER Summit Europe TAU for Accelerating AI Applications at OpenPOWER Summit Europe
TAU for Accelerating AI Applications at OpenPOWER Summit Europe OpenPOWERorg
 
Scallable Distributed Deep Learning on OpenPOWER systems
Scallable Distributed Deep Learning on OpenPOWER systemsScallable Distributed Deep Learning on OpenPOWER systems
Scallable Distributed Deep Learning on OpenPOWER systemsGanesan Narayanasamy
 
(Open) MPI, Parallel Computing, Life, the Universe, and Everything
(Open) MPI, Parallel Computing, Life, the Universe, and Everything(Open) MPI, Parallel Computing, Life, the Universe, and Everything
(Open) MPI, Parallel Computing, Life, the Universe, and EverythingJeff Squyres
 
May2010 hex-core-opt
May2010 hex-core-optMay2010 hex-core-opt
May2010 hex-core-optJeff Larkin
 
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
 Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo... Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo...
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...Rogue Wave Software
 
SREcon 2016 Performance Checklists for SREs
SREcon 2016 Performance Checklists for SREsSREcon 2016 Performance Checklists for SREs
SREcon 2016 Performance Checklists for SREsBrendan Gregg
 
Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...inside-BigData.com
 
1 Vampir Overview
1 Vampir Overview1 Vampir Overview
1 Vampir OverviewPTIHPA
 
Burst Buffer: From Alpha to Omega
Burst Buffer: From Alpha to OmegaBurst Buffer: From Alpha to Omega
Burst Buffer: From Alpha to OmegaGeorge Markomanolis
 
ThoughtWorks Tech Talks NYC: DevOops, 10 Ops Things You Might Have Forgotten ...
ThoughtWorks Tech Talks NYC: DevOops, 10 Ops Things You Might Have Forgotten ...ThoughtWorks Tech Talks NYC: DevOops, 10 Ops Things You Might Have Forgotten ...
ThoughtWorks Tech Talks NYC: DevOops, 10 Ops Things You Might Have Forgotten ...Rosemary Wang
 
Native Support of Prometheus Monitoring in Apache Spark 3.0
Native Support of Prometheus Monitoring in Apache Spark 3.0Native Support of Prometheus Monitoring in Apache Spark 3.0
Native Support of Prometheus Monitoring in Apache Spark 3.0Databricks
 
Application Profiling at the HPCAC High Performance Center
Application Profiling at the HPCAC High Performance CenterApplication Profiling at the HPCAC High Performance Center
Application Profiling at the HPCAC High Performance Centerinside-BigData.com
 

Ähnlich wie Performance Evaluation using TAU Performance System and E4S (20)

Containerizing HPC and AI applications using E4S and Performance Monitor tool
Containerizing HPC and AI applications using E4S and Performance Monitor toolContainerizing HPC and AI applications using E4S and Performance Monitor tool
Containerizing HPC and AI applications using E4S and Performance Monitor tool
 
TAU E4S ON OpenPOWER /POWER9 platform
TAU E4S ON OpenPOWER /POWER9 platformTAU E4S ON OpenPOWER /POWER9 platform
TAU E4S ON OpenPOWER /POWER9 platform
 
TAU on Power 9
TAU on Power 9TAU on Power 9
TAU on Power 9
 
Multicore
MulticoreMulticore
Multicore
 
2010 02 instrumentation_and_runtime_measurement
2010 02 instrumentation_and_runtime_measurement2010 02 instrumentation_and_runtime_measurement
2010 02 instrumentation_and_runtime_measurement
 
HiPEAC 2019 Tutorial - Maestro RTOS
HiPEAC 2019 Tutorial - Maestro RTOSHiPEAC 2019 Tutorial - Maestro RTOS
HiPEAC 2019 Tutorial - Maestro RTOS
 
TAU for Accelerating AI Applications at OpenPOWER Summit Europe
TAU for Accelerating AI Applications at OpenPOWER Summit Europe TAU for Accelerating AI Applications at OpenPOWER Summit Europe
TAU for Accelerating AI Applications at OpenPOWER Summit Europe
 
Scallable Distributed Deep Learning on OpenPOWER systems
Scallable Distributed Deep Learning on OpenPOWER systemsScallable Distributed Deep Learning on OpenPOWER systems
Scallable Distributed Deep Learning on OpenPOWER systems
 
Mpi4py
Mpi4pyMpi4py
Mpi4py
 
Onnc intro
Onnc introOnnc intro
Onnc intro
 
(Open) MPI, Parallel Computing, Life, the Universe, and Everything
(Open) MPI, Parallel Computing, Life, the Universe, and Everything(Open) MPI, Parallel Computing, Life, the Universe, and Everything
(Open) MPI, Parallel Computing, Life, the Universe, and Everything
 
May2010 hex-core-opt
May2010 hex-core-optMay2010 hex-core-opt
May2010 hex-core-opt
 
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
 Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo... Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo...
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
 
SREcon 2016 Performance Checklists for SREs
SREcon 2016 Performance Checklists for SREsSREcon 2016 Performance Checklists for SREs
SREcon 2016 Performance Checklists for SREs
 
Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...
 
1 Vampir Overview
1 Vampir Overview1 Vampir Overview
1 Vampir Overview
 
Burst Buffer: From Alpha to Omega
Burst Buffer: From Alpha to OmegaBurst Buffer: From Alpha to Omega
Burst Buffer: From Alpha to Omega
 
ThoughtWorks Tech Talks NYC: DevOops, 10 Ops Things You Might Have Forgotten ...
ThoughtWorks Tech Talks NYC: DevOops, 10 Ops Things You Might Have Forgotten ...ThoughtWorks Tech Talks NYC: DevOops, 10 Ops Things You Might Have Forgotten ...
ThoughtWorks Tech Talks NYC: DevOops, 10 Ops Things You Might Have Forgotten ...
 
Native Support of Prometheus Monitoring in Apache Spark 3.0
Native Support of Prometheus Monitoring in Apache Spark 3.0Native Support of Prometheus Monitoring in Apache Spark 3.0
Native Support of Prometheus Monitoring in Apache Spark 3.0
 
Application Profiling at the HPCAC High Performance Center
Application Profiling at the HPCAC High Performance CenterApplication Profiling at the HPCAC High Performance Center
Application Profiling at the HPCAC High Performance Center
 

Mehr von Ganesan Narayanasamy

Chip Design Curriculum development Residency program
Chip Design Curriculum development Residency programChip Design Curriculum development Residency program
Chip Design Curriculum development Residency programGanesan Narayanasamy
 
Basics of Digital Design and Verilog
Basics of Digital Design and VerilogBasics of Digital Design and Verilog
Basics of Digital Design and VerilogGanesan Narayanasamy
 
180 nm Tape out experience using Open POWER ISA
180 nm Tape out experience using Open POWER ISA180 nm Tape out experience using Open POWER ISA
180 nm Tape out experience using Open POWER ISAGanesan Narayanasamy
 
Workload Transformation and Innovations in POWER Architecture
Workload Transformation and Innovations in POWER Architecture Workload Transformation and Innovations in POWER Architecture
Workload Transformation and Innovations in POWER Architecture Ganesan Narayanasamy
 
Deep Learning Use Cases using OpenPOWER systems
Deep Learning Use Cases using OpenPOWER systemsDeep Learning Use Cases using OpenPOWER systems
Deep Learning Use Cases using OpenPOWER systemsGanesan Narayanasamy
 
OpenCAPI-based Image Analysis Pipeline for 18 GB/s kilohertz-framerate X-ray ...
OpenCAPI-based Image Analysis Pipeline for 18 GB/s kilohertz-framerate X-ray ...OpenCAPI-based Image Analysis Pipeline for 18 GB/s kilohertz-framerate X-ray ...
OpenCAPI-based Image Analysis Pipeline for 18 GB/s kilohertz-framerate X-ray ...Ganesan Narayanasamy
 
AI in healthcare and Automobile Industry using OpenPOWER/IBM POWER9 systems
AI in healthcare and Automobile Industry using OpenPOWER/IBM POWER9 systemsAI in healthcare and Automobile Industry using OpenPOWER/IBM POWER9 systems
AI in healthcare and Automobile Industry using OpenPOWER/IBM POWER9 systemsGanesan Narayanasamy
 
AI in Health Care using IBM Systems/OpenPOWER systems
AI in Health Care using IBM Systems/OpenPOWER systemsAI in Health Care using IBM Systems/OpenPOWER systems
AI in Health Care using IBM Systems/OpenPOWER systemsGanesan Narayanasamy
 
AI in Healh Care using IBM POWER systems
AI in Healh Care using IBM POWER systems AI in Healh Care using IBM POWER systems
AI in Healh Care using IBM POWER systems Ganesan Narayanasamy
 
Graphical Structure Learning accelerated with POWER9
Graphical Structure Learning accelerated with POWER9Graphical Structure Learning accelerated with POWER9
Graphical Structure Learning accelerated with POWER9Ganesan Narayanasamy
 

Mehr von Ganesan Narayanasamy (20)

Chip Design Curriculum development Residency program
Chip Design Curriculum development Residency programChip Design Curriculum development Residency program
Chip Design Curriculum development Residency program
 
Basics of Digital Design and Verilog
Basics of Digital Design and VerilogBasics of Digital Design and Verilog
Basics of Digital Design and Verilog
 
180 nm Tape out experience using Open POWER ISA
180 nm Tape out experience using Open POWER ISA180 nm Tape out experience using Open POWER ISA
180 nm Tape out experience using Open POWER ISA
 
Workload Transformation and Innovations in POWER Architecture
Workload Transformation and Innovations in POWER Architecture Workload Transformation and Innovations in POWER Architecture
Workload Transformation and Innovations in POWER Architecture
 
OpenPOWER Workshop at IIT Roorkee
OpenPOWER Workshop at IIT RoorkeeOpenPOWER Workshop at IIT Roorkee
OpenPOWER Workshop at IIT Roorkee
 
Deep Learning Use Cases using OpenPOWER systems
Deep Learning Use Cases using OpenPOWER systemsDeep Learning Use Cases using OpenPOWER systems
Deep Learning Use Cases using OpenPOWER systems
 
IBM BOA for POWER
IBM BOA for POWER IBM BOA for POWER
IBM BOA for POWER
 
OpenPOWER System Marconi100
OpenPOWER System Marconi100OpenPOWER System Marconi100
OpenPOWER System Marconi100
 
OpenPOWER Latest Updates
OpenPOWER Latest UpdatesOpenPOWER Latest Updates
OpenPOWER Latest Updates
 
POWER10 innovations for HPC
POWER10 innovations for HPCPOWER10 innovations for HPC
POWER10 innovations for HPC
 
Deeplearningusingcloudpakfordata
DeeplearningusingcloudpakfordataDeeplearningusingcloudpakfordata
Deeplearningusingcloudpakfordata
 
OpenCAPI-based Image Analysis Pipeline for 18 GB/s kilohertz-framerate X-ray ...
OpenCAPI-based Image Analysis Pipeline for 18 GB/s kilohertz-framerate X-ray ...OpenCAPI-based Image Analysis Pipeline for 18 GB/s kilohertz-framerate X-ray ...
OpenCAPI-based Image Analysis Pipeline for 18 GB/s kilohertz-framerate X-ray ...
 
AI in healthcare and Automobile Industry using OpenPOWER/IBM POWER9 systems
AI in healthcare and Automobile Industry using OpenPOWER/IBM POWER9 systemsAI in healthcare and Automobile Industry using OpenPOWER/IBM POWER9 systems
AI in healthcare and Automobile Industry using OpenPOWER/IBM POWER9 systems
 
AI in healthcare - Use Cases
AI in healthcare - Use Cases AI in healthcare - Use Cases
AI in healthcare - Use Cases
 
AI in Health Care using IBM Systems/OpenPOWER systems
AI in Health Care using IBM Systems/OpenPOWER systemsAI in Health Care using IBM Systems/OpenPOWER systems
AI in Health Care using IBM Systems/OpenPOWER systems
 
AI in Healh Care using IBM POWER systems
AI in Healh Care using IBM POWER systems AI in Healh Care using IBM POWER systems
AI in Healh Care using IBM POWER systems
 
Poster from NUS
Poster from NUSPoster from NUS
Poster from NUS
 
SAP HANA on POWER9 systems
SAP HANA on POWER9 systemsSAP HANA on POWER9 systems
SAP HANA on POWER9 systems
 
Graphical Structure Learning accelerated with POWER9
Graphical Structure Learning accelerated with POWER9Graphical Structure Learning accelerated with POWER9
Graphical Structure Learning accelerated with POWER9
 
AI in the enterprise
AI in the enterprise AI in the enterprise
AI in the enterprise
 

Kürzlich hochgeladen

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 

Performance Evaluation using TAU Performance System and E4S

  • 1. TAU and E4S July 9, 2020, 3:15pm CEST/6:15am PT OpenPOWER Foundation Workshop at CINECA CINECA, Italy Prof. Sameer Shende Research Associate Professor and Director, Performance Research Laboratory, OACISS, University of Oregon http://tau.uoregon.edu/TAU_IBM_Cineca20.pdf
  • 2. 2 Challenges • With growing hardware complexity, it is getting harder to accurately measure and optimize the performance of our HPC and AI/ML workloads. • As our software gets more complex, it is getting harder to install tools and libraries correctly in an integrated and interoperable software stack.
  • 3. 3 Motivation: Improving Productivity • TAU Performance System®: – Deliver a scalable, portable, performance evaluation toolkit for HPC and AI/ML workloads – http://tau.uoregon.edu • Extreme-scale Scientific Software Stack (E4S): – Delivering a modular, interoperable, and deployable software stack – Deliver expanded and vertically integrated software stacks to achieve full potential of extreme-scale computing – Lower barrier to using software technology (ST) products from ECP – Enable uniform APIs where possible – https://e4s.io
  • 4. 4 TAU Performance System® Parallel performance framework and toolkit • Supports all HPC platforms, compilers, runtime system • Provides portable instrumentation, measurement, analysis
  • 5. 5 TAU Performance System Instrumentation • Python, C++, C, Fortran, UPC, Java, Chapel, Spark • Automatic instrumentation Measurement and analysis support • MPI, OpenSHMEM, ARMCI, PGAS • pthreads, OpenMP, OMPT interface, hybrid, other thread models • GPU, ROCm, CUDA, OpenCL, OpenACC • Parallel profiling and tracing Analysis • Parallel profile analysis (ParaProf), data mining (PerfExplorer) • Performance database technology (TAUdb) • 3D profile browser
  • 6. 6 • How much time is spent in each application routine and outer loops? Within loops, what is the contribution of each statement? What is the time spent in OpenMP loops? In kernels on GPUs. How long did it take to transfer data between host and device (GPU)? • How many instructions are executed in these code regions? Floating point, Level 1 and 2 data cache misses, hits, branches taken? What is the extent of vectorization for loops? • What is the memory usage of the code? When and where is memory allocated/de-allocated? Are there any memory leaks? What is the memory footprint of the application? What is the memory high water mark? • How much energy does the application use in Joules? What is the peak power usage? • What are the I/O characteristics of the code? What is the peak read and write bandwidth of individual calls, total volume? • How does the application scale? What is the efficiency, runtime breakdown of performance across different core counts? Application Performance Engineering using TAU
  • 7. 7 Instrumentation • Source instrumentation using a preprocessor – Add timer start/stop calls in a copy of the source code. – Use Program Database Toolkit (PDT) for parsing source code. – Requires recompiling the code using TAU shell scripts (tau_cc.sh, tau_f90.sh) – Selective instrumentation (filter file) can reduce runtime overhead and narrow instrumentation focus. • Compiler-based instrumentation – Use system compiler to add a special flag to insert hooks at routine entry/exit. – Requires recompiling using TAU compiler scripts (tau_cc.sh, tau_f90.sh…) • Runtime preloading of TAU’s Dynamic Shared Object (DSO) – No need to recompile code! Use mpirun tau_exec ./app with options. Add hooks in the code to perform measurements
  • 8. 8 Profiling and Tracing • Tracing shows you when the events take place on a timeline Profiling Tracing • Profiling shows you how much (total) time was spent in each routine • Profiling and tracing Profiling shows you how much (total) time was spent in each routine Tracing shows you when the events take place on a timeline
  • 9. 9 Using TAU’s Runtime Preloading Tool: tau_exec • Preload a wrapper that intercepts the runtime system call and substitutes with another o MPI o OpenMP o POSIX I/O o Memory allocation/deallocation routines o Wrapper library for an external package • No modification to the binary executable! • Enable other TAU options (communication matrix, OTF2, event-based sampling)
  • 10. 10 TAU: Quickstart Guide Setup: • % module load tau Profiling with an un-instrumented application: • MPI: % mpirun -np 64 tau_exec -ebs ./a.out • MPI+OpenMP with Clang 9+: % export TAU_OMPT_SUPPORT_LEVEL=full; % mpirun -np 64 tau_exec –T ompt,v5 –ompt ./a.out • Pthread: % mpirun -np 64 tau_exec –T mpi,pthread –ebs ./a.out • Python+MPI+Sampling: % mpirun -np 64 tau_python –ebs ./a.py • Python+MPI+CUDA+Sampling: % mpirun –np 64 tau_python –cupti –ebs ./a.py • Python+CUDA (no MPI): % tau_exec –T cupti,serial –cupti ./a.py Analysis: % pprof –a –m | more; % paraprof (GUI) Tracing: • Vampir: MPI: % export TAU_TRACE=1; export TAU_TRACE_FORMAT=otf2 % mpirun -np 64 tau_exec ./a.out; vampir traces.otf2 & • Chrome: % export TAU_TRACE=1; mpirun –np 64 tau_exec ./a.out; tau_treemerge.pl; % tau_trace2json tau.trc tau.edf –chrome –ignoreatomic –o app.json Chrome browser: chrome://tracing (Load -> app.json) • Jumpshot: % export TAU_TRACE=1; mpirun –np 64 tau_exec ./a.out; tau_treemerge.pl; % tau2slog2 tau.trc tau.edf –o app.slog2; jumpshot app.slog2 &
  • 13. 13 TAU supports Python, MPI, and CUDA Without any modification to the source code or DSOs or interpreter, it instruments and samples the application using Python, MPI, and CUDA instrumentation. % mpirun –np 230 tau_python –T cupti,mpi,pdt –ebs –cupti ./exafel.py Instead of: % mpirun –np 230 python ./exafel.py Kernel on GPU
  • 14. 14 TAU Thread Statistics Table Python, MPI, CUDA, and samples from DSOs are all integrated in a single view
  • 15. 15 ParaProf Click on Columns: to sort by incl time Open binvcrhs Click on Sample
  • 17. 17 TAU Context Event Window TAU tracks the data transfers between the host and the GPU.
  • 18. 18 TAU’s tracking of Python and MPI TAU can observe events in closed-source vendor libraries (e.g., in MPI_Bcast)!
  • 19. 19 Callstack Sampling in TAU % export TAU_SAMPLING=1; export TAU_EBS_UNWIND=1
  • 20. 20 Deep Learning: Tensorflow % tau_python –ebs nt3_baseline_keras2.py (CANDLE)
  • 22. 22 Event Based Sampling (EBS) % mpirun -n 16 tau_exec –ebs a.out Uninstrumented!
  • 23. 23 Callsite Profiling and Tracing % export TAU_CALLSITE=1
  • 24. 24 TAU – Context Events Bytes written to each file Write bandwidth per file
  • 26. 26 TAU – ParaProf 3D Visualization % paraprof app.ppk Windows -> 3D Visualization -> Bar Plot (right pane)
  • 27. 27 TAU – 3D Communication Window % export TAU_COMM_MATRIX=1; mpirun … tau_exec ./a.out % paraprof ; Windows -> 3D Communication Matrix
  • 29. 29 Tracing: Chrome Browser % export TAU_TRACE=1 % mpirun –np 256 tau_exec ./a.out % tau_treemerge.pl; tau_trace2json tau.trc tau.edf –chrome –ignoreatomic –o app.json Chrome browser: chrome://tracing (Load -> app.json)
  • 30. 30 Vampir [TU Dresden] Timeline: Kokkos % export TAU_TRACE=1; export TAU_TRACE_FORMAT=otf2 % tau_exec –ompt ./a.out % vampir traces.otf2 &
  • 31. 31 TAU’s Support for Runtime Systems MPI PMPI profiling interface MPI_T tools interface using performance and control variables Pthread Captures time spent in routines per thread of execution OpenMP OMPT tools interface to track salient OpenMP runtime events Opari source rewriter Preloading wrapper OpenMP runtime library when OMPT is not supported OpenACC OpenACC instrumentation API Track data transfers between host and device (per-variable) Track time spent in kernels
  • 32. 32 TAU’s Support for Runtime Systems (contd.) OpenCL OpenCL profiling interface Track timings of kernels CUDA Cuda Profiling Tools Interface (CUPTI) Track data transfers between host and GPU Track access to uniform shared memory between host and GPU ROCm Rocprofiler and Roctracer instrumentation interfaces Track data transfers and kernel execution between host and GPU Kokkos Kokkos profiling API Push/pop interface for region, kernel execution interface Python Python interpreter instrumentation API Tracks Python routine transitions as well as Python to C transitions
  • 33. 33 Examples of Multi-Level Instrumentation MPI + OpenMP MPI_T + PMPI + OMPT may be used to track MPI and OpenMP MPI + CUDA PMPI + CUPTI interfaces OpenCL + ROCm Rocprofiler + OpenCL instrumentation interfaces Kokkos + OpenMP Kokkos profiling API + OMPT to transparently track events Kokkos + pthread + MPI Kokkos + pthread wrapper interposition library + PMPI layer Python + CUDA + MPI Python + CUPTI + pthread profiling interfaces (e.g., Tensorflow, PyTorch) + MPI MPI + OpenCL PMPI + OpenCL profiling interfaces
  • 34. 34 TAU Execution Command (tau_exec) Uninstrumented execution % mpirun -np 256 ./a.out Track GPU operations % mpirun –np 256 tau_exec –cupti ./a.out % mpirun –np 256 tau_exec –opencl ./a.out % mpirun –np 256 tau_exec –openacc ./a.out Track MPI performance % mpirun -np 256 tau_exec ./a.out Track I/O, and MPI performance (MPI enabled by default) % mpirun -np 256 tau_exec -io ./a.out Track OpenMP and MPI execution (using OMPT for Intel v19+ or Clang 8+) % export TAU_OMPT_SUPPORT_LEVEL=full; % mpirun –np 256 tau_exec –T ompt,v5,mpi -ompt ./a.out Track memory operations % export TAU_TRACK_MEMORY_LEAKS=1 % mpirun –np 256 tau_exec –memory_debug ./a.out (bounds check) Use event based sampling (compile with –g) % mpirun –np 256 tau_exec –ebs ./a.out Also -ebs_source=<PAPI_COUNTER> -ebs_period=<overflow_count> -ebs_resolution=<file | function | line>
  • 36. 36 Extreme-scale Scientific Software Stack (E4S) https://e4s.io § E4S is a community effort to provide open source software packages for developing, deploying, and running scientific applications on HPC platforms. § E4S provides both source builds and containers of a broad collection of HPC software packages. § E4S exists to accelerate the development, deployment and use of HPC software, lowering the barriers for HPC users. § E4S provides containers and turn-key, from-source builds of 80+ popular HPC software packages: § MPI: MPICH and OpenMPI § Development tools: TAU, HPCToolkit, and PAPI § Math libraries: PETSc and Trilinos § Data and Viz tools: Adios, HDF5, and Paraview
  • 37. 37 ECP is working towards a periodic, hierarchical release process • In ECP, teams increasingly need to ensure that their libraries and components work together – Historically, HPC codes used very few dependencies • Now, groups related SW products work together on small releases of “Software Development Kits” - SDKs • SDKs will be rolled into a larger, periodic release – E4S. • Deployment at Facilities builds on SDKs and E4S Develop Package Build Test Deploy Math Libraries Develop Package Build Test Deploy Data and Visualization Develop Package Build Test Deploy Programming Models … Build TestDeploy Integrate E4S: ECP-wide software release https://e4s.io
  • 38. 38 E4S: Extreme-scale Scientific Software Stack • Curated release of ECP ST products based on Spack [http://spack.io] package manager • Spack binary build caches for bare-metal installs – x86_64, ppc64le (IBM Power 9), and aarch64 (ARM64) • Container images on DockerHub and E4S website of pre-built binaries of ECP ST products • Base images and full featured containers (GPU support) • GitHub recipes for creating custom images from base images • GitLab integration for building E4S images • E4S validation test suite on GitHub • E4S VirtualBox image with support for container runtimes • Docker • Singularity • Shifter • Charliecloud • AWS image to deploy E4S on EC2 https://e4s.io
  • 39. 39 Integration and Interoperability: E4S • E4S is released twice a year. ECP Annual Meeting release of E4S v1.1: – Containers and turn-key, from-source builds popular HPC software packages – 45+ full release ECP ST products including: • MPI: MPICH and OpenMPI • Development tools: TAU, HPCToolkit, and PAPI • Math libraries: PETSc and Trilinos • Data and Viztools: Adios, HDF5 – Limited access to 10 additional ECP ST products – GPU support
  • 40. 40 Download E4S v1.1 GPU image https://e4s.io
  • 41. 41 E4S v1.1 Release at DockerHub: GPU Support • 40+ ECP ST Products • Support for GPUs • NVIDIA (CUDA 10.1.243) • ppc64le and x86_64 % docker pull ecpe4s/ubuntu18.04-e4s-gpu
  • 42. 42 E4S v1.1 GPU Release • 46 ECP ST products • Ubuntu v18.04 ppc64le • Support for GPUs • NVIDIA
  • 43. 43 E4S Support for Singularity Container Runtime [Sylabs.io] ● wget http://oaciss.uoregon.edu/e4s/images/e4s_ubuntu1804_gpu_ppc64le_1.1.simg ● singularity exec --nv e4s_ubuntu1804_gpu_ppc64le_1.1.simg /bin/bash --rcfile /etc/bashrc ● spack find
  • 44. 44 E4S v1.1 GPU Support % docker pull ecpe4s/ubuntu18.04-e4s-gpu
  • 45. Spack
  • 46. 46 Spack • E4S uses the Spack package manager for software delivery • Spack provides the ability to specify versions of software packages that are and are not interoperable. • Spack is a build layer for not only E4S software, but also a large collection of software tools and libraries outside of ECP ST. • Spack supports achieving and maintaining interoperability between ST software packages.
  • 47. 47 Scientific software is becoming extremely complex r-rminer r r-adabag r-mass r-lattice r-nnet r-rpart r-cubist r-e1071 r-glmnet r-kernlab r-kknn r-mda r-party r-plotrix r-pls r-randomforest r-xgboost bzip2 cairo freetype zlib glib ncurses pcre readline curl icu4c jdk libjpeg-turbo libtiff pango tcltk fontconfig pkgconf libpng pixman font-util gperf libxml2 util-macros xz gettext libffi perl python tar gdbm openssl sqlite cmake nasm gobject-introspection harfbuzz bison flex sed m4 libsigsegv help2man libx11 inputproto kbproto libxcb xproto xextproto xtrans libpthread-stubs libxau libxdmcp xcb-proto r-caret r-mlbench r-car r-nlme r-foreach r-ggplot2 r-plyr r-reshape2 r-modelmetrics r-mgcv r-pbkrtest r-quantreg r-matrix r-lme4 r-minqa r-rcpp r-nloptr r-rcppeigen r-testthat r-crayon r-digest r-magrittr r-praise r-r6 r-matrixmodels r-sparsem r-codetools r-iterators r-gtable r-lazyeval r-scales r-tibble r-stringr r-stringi r-dichromat r-labeling r-munsell r-rcolorbrewer r-viridislite r-colorspace r-assertthat r-rlang r-class r-igraph gmp r-irlba r-pkgconfig autoconf automake libtool r-coin r-modeltools r-mvtnorm r-sandwich r-zoo r-survival r-strucchange r-multcomp r-th-data r-data-table R Miner: R Data Mining Library dealii adol-c arpack-ng cmake zlib openblas openmpi assimp boost gmsh oce intel-tbb gsl hdf5 metis muparser nanoflann netcdfnetcdf-cxx netlib-scalapack p4est petsc slepc suite-sparse sundials trilinos autoconf m4 automake libtool perl libsigsegv gdbm readline ncurses pkgconf openssl hwloc libxml2 xz bzip2 gmp netgen tetgen hypre parmetis python superlu-dist sqlite glm matio mumps dealii: C++ Finite Element Library nalu cmake openmpi trilinos yaml-cpp ncurses openssl pkgconf zlib hwloc libxml2 xz boost glm hdf5 matio metis mumps netlib-scalapack openblas netcdf parallel-netcdf parmetis suite-sparse superlu bzip2 m4 libsigsegv Nalu: Generalized Unstructured Massively Parallel Low Mach Flow
  • 48. 48 • Half of this DAG is external (blue); more than half of it is open source • Nearly all of it needs to be built specially for HPC to get the best performance Even proprietary codes are based on many open source libraries ARES tcl tkscipy python cmake hpdf opclient boost zlib numpy bzip2 LAPACK gsl HDF5 gperftools papi GA bdivxml sgeos_xmlScallop rng perflib memusage timers SiloSAMRAI HYPRE matprop overlink qd LEOS MSlibLaser CRETIN tdf Cheetah DSD Teton Nuclear ASCLaser MPI ncurses sqlite readline openssl BLAS Physics Utility Math External Types of Packages
  • 49. 49 • How to install Spack (works out of the box): • How to install a package: • TAU and its dependencies are installed within the Spack directory. • Unlike typical package managers, Spack can also install many variants of the same build. – Different compilers – Different MPI implementations – Different build options Spack is a flexible package manager for HPC $ git clone https://github.com/spack/spack $ . spack/share/spack/setup-env.sh $ spack install tau
  • 50. 50 • Each expression is a spec for a particular configuration – Each clause adds a constraint to the spec – Constraints are optional – specify only what you need. – Customize install on the command line! • Spec syntax is recursive – Full control over the combinatorial build space Spack provides the spec syntax to describe custom configurations $ spack install tau unconstrained $ spack install tau@2.29 @ custom version $ spack install tau@2.29 %gcc@7.3.0 % custom compiler $ spack install tau@2.29 %gcc@7.3.0 +mpi+python+pthreads +/- build option $ spack install tau@2.29 %gcc@7.3.0 +mpi ^mvapich2@2.3~wrapperrpath ^ dependency information
  • 51. 51 `spack find` shows what is installed • All the versions coexist! – Multiple versions of same package are ok. • Packages are installed to automatically find correct dependencies. • Binaries work regardless of user’s environment. • Spack also generates module files. – Don’t have to use them.
  • 52. 52 • Spack simplifies HPC software for: – Users – Developers – Cluster installations – The largest HPC facilities • Spack is central to ECP’s software strategy – Enable software reuse for developers and users – Allow the facilities to consume the entire ECP stack • The roadmap is packed with new features: – Building the ECP software distribution – Better workflows for building containers – Stacks for facilities – Chains for rapid dev workflow – Optimized binaries – Better dependency resolution The Spack community is growing rapidly @spackpm github.com/spack/spack Visit spack.io
  • 53. E4S Spack Build Cache and Container Build Pipeline
  • 54. 54 Reproducible, Customizable Container Builds & Spack Mirrors • E4S provides base images and recipes for building Docker containers based on SDKs – Git: https://github.com/UO-OACISS/e4s – E4S provides build caches for Spack for native bare-metal as well as container builds based installation of ST products – Build caches: https://oaciss.uoregon.edu/e4s/inventory.html • The build cache model can be extended to target platforms, and can be managed by facilities staff when appropriate.
  • 55. 55 E4S: Spack Build Cache at U. Oregon • https://oaciss.uoregon.edu/e4s/inventory.html • 10,000+ binaries • S3 mirror • No need to build from source code!
  • 56. 56 E4S: DockerHub Images: ecpe4s • Dockerhub • Tensorflow 2.2 • CUDA 10.2 • ppc64le
  • 57. 57 E4S: ppc64le Base Container Images • Ubuntu 18.04 • RHEL/UBI 7.6 • Centos 7.6 • Hub.docker.com • ecpe4s
  • 58. 58 E4S: Multi-platform Reproducible Docker Recipes https://e4s.io E4S • x86_64 • ppc64le • aarch64
  • 59. 59 E4S: Build Pipeline for Creating Spack Build Cache at U. Oregon • GitLab • Multi-platform builds
  • 60. 60 E4S Validation Test Suite • git clone https://github.com/E4S-Project/testsuite.git To validate packages built in E4S
  • 61. 61 Reproducible Container Builds using E4S Base Images ● PMR SDK base image has Spack build cache mirror and GPG key installed. ● Base image has GCC and MPICH configured for MPICH ABI level replacement (with system MPI). ● Customized container build using binaries from E4S Spack build cache for fast deployment. ● No need to rebuild packages from the source code. ● Same recipe for container and native bare-metal builds with Spack!
  • 62. 62 E4S VirtualBox Image https://e4s.io Container Runtimes • Docker • Shifter • Singularity • Charliecloud
  • 63. 63 Future work, issues… ● Improved support for GPUs and visualization tools ● DOE LLVM ● Addition of CI testing ● Facility deployment ● Scalable startup with full-featured “Supercontainers” ● Improving the launch of MPI applications
  • 64. 64 Conclusions ● TAU provides a versatile tool to measure performance of HPC and AI/ML workloads ● TAU is part of the bigger ECP E4S project ● E4S provides a well integrated software stack for AI/ML and HPC for IBM ppc64le ● From-source builds assisted by a binary build cache or containers ● Docker and Singularity images are available for download ● https://e4s.io
  • 65. 65 Download TAU from U. Oregon http://tau.uoregon.edu for more information Free download, open source, BSD license
  • 66. 66 Performance Research Laboratory, University of Oregon, Eugene www.uoregon.edu
  • 67. 67 • US Department of Energy (DOE) – ANL – Office of Science contracts, ECP – SciDAC, LBL contracts – LLNL-LANL-SNL ASC/NNSA contract – Battelle, PNNL and ORNL contract • Department of Defense (DoD) – PETTT, HPCMP • National Science Foundation (NSF) – SI2-SSI, Glassbox • NASA • CEA, France • Partners: –University of Oregon –The Ohio State University –ParaTools, Inc. –University of Tennessee, Knoxville –T.U. Dresden, GWT –Jülich Supercomputing Center Support Acknowledgements
  • 68. 68 Acknowledgment “This research was supported by the Exascale Computing Project (17-SC-20-SC), a collaborative effort of two U.S. Department of Energy organizations (Office of Science and the National Nuclear Security Administration) responsible for the planning and preparation of a capable exascale ecosystem, including software, applications, hardware, advanced system engineering, and early testbed platforms, in support of the nation’s exascale computing imperative.”
  • 69. 69