codes/tracer tutorial: session ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017....

49
CODES/TRACER TUTORIAL: SESSION I erhtjhtyhy MISBAH MUBARAK Postdoctoral Researcher Mathematics and Computer Science Division (MCS) Argonne National Laboratory 3 rd Summer of CODES workshop, TCS Conference Center, Jul 12 th 2017 ENABLING HPC DESIGN SPACE EXPLORATION VIA DISCRETE-EVENT SIMULATION

Upload: others

Post on 14-Sep-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

Suggested line of text (optional): WE START WITH YES.

CODES/TRACER TUTORIAL: SESSION I

erhtjhtyhy

MISBAH MUBARAK Postdoctoral Researcher Mathematics and Computer Science Division (MCS) Argonne National Laboratory

3rd Summer of CODES workshop, TCS Conference Center, Jul 12th 2017

ENABLING HPC DESIGN SPACE EXPLORATION VIA DISCRETE-EVENT SIMULATION

Page 2: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CODES TEAM

2

§  CODES Core: Rob Ross, Phil Carns, Misbah Mubarak, Matthieu Dorier, Shane Snyder Argonne National Laboratory, Mathematics and Computer Science

§  CODES Core: Chris Carothers, Caitlin Ross & Noah Wolfe §  Rensselaer Polytechnic Institute, Computer Science §  CODES Vis: Kwan-Liu Ma, Kelvin Li §  UC Davis, Computer Science §  ECP Project: Abhinav Bhatele, Nikhil Jain §  Lawrence Livermore National Laboratory

Page 3: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

TUTORIAL OUTLINE

§ Session I (9:00-10:00AM): Introduction to CODES and using it for HPC Network Simulations

§ Session II (10:15-11:15AM): TraceR, CODES storage model and synthetic traffic generation

§ Session III (11:30-12:30PM): Trace replay, PDES and Network Internals

3

Page 4: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

GOALS OF THE SESSION

§ How to replay network traces? –  DUMPI trace format –  OTF2 trace format (more in session II)

§ Which HPC Interconnect Models are supported? § How to configure interconnect simulations? § How MPI collectives can be simulated? § How to simulate multiple jobs on a network? § How to interpret simulation output? § Hands on exercises

4

Page 5: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

INTRODUCTION & BACKGROUND

Page 6: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

STRUCTURE OF INTERCONNECT TOPOLOGIES

A 3-ary 3-d Torus network

g19

g0

g1g2g3g4

g5

g6

g7

g8

g9

g10

g11g12 g13 g14

g15

g16

g17

g18

Dragonfly Network •  Chassis à routers arranged

in a row via Green electrical links

•  Groupà routers arranged in matrix. Rows connected via 3x Black electrical links

•  Groups connected via all to all links à Blue 12x Active Optical Cables

A 3-level pruned Fat Tree with 64 compute nodes

R0 R1 R2 R3 R4

R5 R6 R7 R8 R9

R10

R11

R12

R13

R14

Torus Network •  Homogeneous structure •  Dedicated routers per compute node

A dragonfly network topology with 18 groups

Fat tree Network •  Static Routing •  Job placement impacts

inter-job interference

Page 7: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

WHY HPC INTERCONNECT SIMULATION?

 

 

§ HPC interconnects are getting complex! § Need to look at several factors that influence network performance:

–  Interconnect Topology –  Routing –  Job placement policies –  Inter-job and intra-job interference –  Storage placement on network

§  Improved performance is contingent onà an optimal combination of these factors 7

I/O gateway nodes

External network

Disk controllers

Disk arrays

I/O servers

Compute nodes and system network(s)

Parallel file systemApplication and I/O forwarding

Page 8: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CODES MODELING & SIMULATION FRAMEWORK

§  Accelerate HPC system co-design by providing a detailed simulation of HPC interconnects, storage, workloads and surrounding environment

§  Couple best-of-breed parallel discrete event simulation with experts in interconnects and storage architecture design

§  Incrementally develop HPC simulation capability, validating approach and components along the way

§  Track exascale system development and investigate critical aspects §  Complement experimentation on real systems

2

Page 9: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CODES SIMULATION STACK

9

OTF2 BigSim OthersDUMPI Comm Patterns

TraceRSynthetic workloads

MPI Simulation layer

CODES

ROSS

Any machine with MPI support

Page 10: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

WORKLOADS TO REPLAY ON HPC NETWORK SIMULATIONS § Synthetic Workloads:

–  Follow specific communication pattern and a constant injection rate –  Often used to stress the network topology to identify best and worst case

performance –  Have an expected outcome -- useful for determining model accuracy –  Examples include uniform random, all to all, bisection pairing, bit permutation –  Don’t require simulation of MPI operations

§ HPC Application Traces: –  Useful for network performance prediction of production HPC applications –  Trace size can grow large for long running or communication intensive

applications –  Require accurate simulation of MPI operations –  Simulation results can be complex to analyze

10

Page 11: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

COLLECTING AND REPLAYING HPC APPLICATION TRACES

Page 12: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

DUMPI MPI TRACE LIBRARY

§ Provides trace collection and replay tools for MPI based applications § Trace collection is simple – link the MPI application with libdumpi § Trace can be replayed using libundumpi utility § Libundumpi provides callbacks you can use when MPI operations are replayed § Preserves the causality order of MPI operations § Captures detailed statistics for each MPI operation call

12

Page 13: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CAPTURING APPLICATION TRACES WITH DUMPI § Repository can be cloned at:

–  git clone https://github.com/sstsimulator/sst-dumpi.git § Configure and build using any MPI compiler § Make sure to use ‘—enable-libdumpi’ when configuring § Once installed, simply add ‘-L$(DUMPI_INSTALL) -ldumpi’ in your application § DUMPI traces will be generated automatically with each application run § Naming convention: dumpi-yyyy.dd.mm.hh.mm.ss-MPI-RANK-ID.bin § More information can be found at: https://github.com/sstsimulator/sst-dumpi § HPC application traces in DUMPI format: https://portal.nersc.gov/project/CAL/

designforward.htm

13

Page 14: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

PROFILING THROUGH SCORE-P

§ Scalable Performance Measurement Infrastructure for Parallel Codes § Tool suite with several libraries and helper tools § Can be used for profiling, event tracing and analysis of HPC applications § Supports the new Open Trace Format version 2 § Traces generated in OTF2 format – Events arranged in temporal order § SCORE-P: http://www.vi-hps.org/projects/score-p/ § More to come in Session II

14

Page 15: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

15

HPC Application Traces

MPI replay Network Simulation

Simulation Suite

Network Model statistics

CODES&&Network&Models&

CODES&&Network&workload&

component&MPI&Simula;on&layer&

Feeds%MPI%opera-ons% Send%/Receive%Network%messages%

Postmortem&network&traces&

Synthe;c&traffic&pa?erns&

CoRTex&collec;ve&transla;on&library&

General framework for replaying traces on HPC interconnect simulation

CODES specific framework for replaying traces on HPC interconnect simulations

Page 16: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CODES INSTALLATION & SETUP § Download ROSS repo: git clone http://github.com/carothersc/ROSS.git § Configure by making a build directory: ARCH=x86_64 CC=mpicc CXX=mpicxx cmake -DCMAKE_INSTALL_PREFIX=../install ../

§ make –j 3

§ Download CODES repo: git clone https://xgitlab.cels.anl.gov/codes/codes.git § Configure in build directory: ./prepare.sh ../configure --prefix=/path/to/install CC=mpicc CXX=mpicxx PKG_CONFIG_PATH=/path/to/ross/install/lib/pkgconfig

§ Do both make && make tests § Use –with-dumpi=/path/to/dumpi/install option to enable DUMPI § For details on installation, see: https://xgitlab.cels.anl.gov/codes/codes/wikis/

installation 16

Page 17: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

HPC INTERCONNECT MODELS

Page 18: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

RUNNING A SIMPLE NETWORK MODEL

§ ./tests/modelnet-test --sync=1 -- tests/conf/modelnet-test.conf

§ A simple test in which a simulated MPI rank sends message to the next rank, which replies back

§ Continues until a certain number of messages is reached

18

Page 19: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

SIMPLE NET NETWORK MODEL

§ A latency/bandwidth model where message is directly sent from source to destination

§ Uses infinite queuing § Easy setup– uses a startup delay and link bandwidth for configuration § Mostly for debugging/testing purposes-- Can be used as a starting point when

replaying MPI traces §  It can be used as a baseline network model with no contention and no routing

19

Page 20: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CONFIGURING SIMPLE NET NETWORK MODEL

20

For mapping entities on ROSS MPI processes

Messages are broken into packets by the model-net layer

ROSS specific parameter (event size)

Startup delay in ns

Link bandwidth in MB/s (one link between each pair of nodes)

Configuration file can be found in codes/tests/conf/modelnet-test.conf

Page 21: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

RUNNING A DRAGONFLY NETWORK SIMULATION

§ Download the traces: –  wget https://portal.nersc.gov/project/CAL/doe-miniapps-mpi-traces/AMG/df_AMG_n1728_dumpi.tar.gz

§ Run the simulation: –  ./src/network-workloads/model-net-mpi-replay --sync=1 --disable_compute=1 --workload_type="dumpi" --workload_file=df_AMG_n1728_dumpi/dumpi-2014.03.03.14.55.50- --num_net_traces=1728 -- ../src/network-workloads/conf/dragonfly-custom/modelnet-test-dragonfly-edison.conf

21

Page 22: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

DRAGONFLY NETWORK MODEL § Network configuration files are used for setting up network connections § Can simulate network configurations based on both Cray XC architecture and

the topology originally proposed by Kim and others in 2008 § Multiple forms of routing are supported: minimal, adaptive, non-minimal and

progressive adaptive § Packet based simulation with credit based flow control § Uses multiple virtual channels for deadlock prevention

22

g19

g0

g1g2g3g4

g5

g6

g7

g8

g9

g10

g11g12 g13 g14

g15

g16

g17

g18

R0 R1 R2 R3 R4

R5 R6 R7 R8 R9

R10 R11 R12 R13 R14

A Cray XC style dragonfly group

r07

r00

r01

r02

r03r04

r05

r06c000

c001

c002

c003

c010

c011

c012

c013

c020

c021

c022

c023

c030

c031

c032

c033

c040c041c042

c043

c050

c051

c052

c053

c060c061 c062

c063c070

c071

c072

c073

Dragonfly group as proposed by Kim, Dally et al.

Page 23: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CONFIGURING DRAGONFLY NETWORK MODEL

23

Nw-lp zis a simulated MPI process

A simulated dragonfly network node

A simulated dragonfly network router

•  For simulating multiple MPI processes per node à nw-lp=num-procs * number of network nodes

•  Self messagesà messages sent to the same network node •  Overhead for sending self message can be configured (default 10ns)

Configuration file can be found in codes/src/network-workloads/dragonfly-custom

Page 24: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CONFIGURING DRAGONFLY NETWORK MODEL

24

Router arrangement within a group. Should match the input network configuration

Buffer size of virtual channels can be configured

Number of compute nodes per router is configurable Network configuration files – can be custom generated (see scripts/gen-cray-topo/README.txt)

Page 25: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

FAT TREE NETWORK MODEL

25

Full  3-­‐level  k=8  Fat-­‐Tree  with  128  compute  nodes  

§ Can simulate two and three level fat tree networks

§ Width of the tree (number of pods) can also be configured

§ Two forms of routing are supported: –  static: uses destination-based look-up

tables –  adaptive: selects least congested output

port § Packet based simulation with credit based

flow control

Page 26: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CONFIGURING FAT TREE NETWORK MODEL

26

Nw-lp is a simulated MPI process

Width of the network (number of leaf switches)

A simulated fat tree network node

Three simulated fat tree network switches (one in each level of the network)

Page 27: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CONFIGURING FAT TREE NETWORK MODEL

27

Switch arrangement should match the input network configuration

Switch radix can be configured

Static routing requires additional information pointing to the precomputed destination routing tables See: https://xgitlab.cels.anl.gov/codes/codes/wikis/codes-fattree#enabling-static-routing

Page 28: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

TORUS NETWORK MODEL

§ Based on a n-dimensional k-ary network topology § Number of torus dimensions and length of each

dimension can be configured § Model supports dimension order routing § Credit based flow control, packet level simulation § Uses bubble escape virtual channel for deadlock

prevention

28

Page 29: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CONFIGURING TORUS NETWORK MODEL

29

Number of torus dimensions

Length of each dimension

Link bandwidth

VC buffer size

Simulated MPI process Torus Network Node

Page 30: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

INTERPRETING SIMULATION OUTPUT

Page 31: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

INTERPRETING SIMULATION OUTPUT

31

Enabling lp-io-dir generates detailed network statistics files

§  Average and maximum times are reported for all the application runs §  Network statistics (hops traversed, latency, routing etc.) are reported for the entire network §  Detailed statistics for each MPI rank, network node, router, port are generated using lp-io-dir option

Page 32: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

STATISTICS REPORTED BY LP-IO §  Dragonfly-msg-stats:

–  number of hops, packet latency, packets sent/received, link saturation time reported for each network node

§  Dragonfly-router-stats –  link saturation time each router port

§  Dragonfly-router-traffic –  Traffic sent for each router port

§  Fat tree and slim fly networks have similar statistics files. §  Mpi-replay-stats (generated for any network model):

–  bytes sent/received per MPI process –  time spent in communication per MPI process –  Number of sends and receives per MPI process

32

Page 33: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

SIMULATING MPI COLLECTIVES

Page 34: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

TRANSLATING MPI CALLS USING CORTEX

§  Intended to translate MPI calls (for e.g. collectives) into a set of another MPI calls (e.g. point to point)

§ Cortex comes with a set of translation functions to convert collectives into point to point using MPICH algorithms

§ When linked with DUMPI and CODES, Cortex translates MPI collectives into point to point sends/receives (simulated by CODES)

§ Cortex can also be used to implement your own translation functions (e.g. collective algorithms) --- Will discuss it more in Session III

§ Cortex tutorial is available at : https://xgitlab.cels.anl.gov/mdorier/dumpi-cortex/wikis/home

34

Page 35: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CODES, CORTEX AND DUMPI INTERACTION

35

DUMPI Application Trace

Cortex

MPI Collective calls

MPI send/recv/waits CODES

MPI Simulation Layer

Model-net layer

Network Models

Translated sends/recvs

Page 36: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

MPI TRANSLATION WITH CORTEX

36

§ To enable collective translation, install Cortex and reconfigure CODES with Cortex

§ Cortex available for download: git clone https://xgitlab.cels.anl.gov/mdorier/dumpi-cortex.git

§ cmake .. -G "Unix Makefiles" -DMPICH_FORWARD:BOOL=TRUE -DCMAKE_INSTALL_PREFIX=$HOME/CODES/install/cortex -DDUMPI_ROOT=$HOME/CODES/install/dumpi

§ See instructions at: https://xgitlab.cels.anl.gov/codes/codes/wikis/codes-cortex-install

§ Use –with-cortex=/path/to/cortex/install option

Page 37: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

SIMULATING SINGLE AND MULTIPLE JOBS ON THE NETWORK

Page 38: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

IN A NUTSHELL: REPLAYING A SINGLE APPLICATION TRACE ./bin/model-net-mpi-replay --sync=1 --disable_compute=1 --workload_type="dumpi" --workload_file=dumpi-2014.03.03.14.55.50- --num_net_traces=1728 -- modelnet-test-dragonfly-edison.conf § Runtime options

–  --num_net_traces : Number of input network traces –  --workload_file: DUMPI trace file –  Network configuration file: Any of the network files (number of simulated

ranks > number of ranks in trace) –  --lp-io-dir (optional): Generates detailed network counters and statistics –  --lp-io-use-suffix (optional): Generates a unique directory per run –  --disable_compute (optional): disable any compute time between MPI events

§ For running parallel simulations, use –sync=2 or –sync=3 § By default, linear job mapping is used

38

Page 39: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

REPLAYING MULTIPLE JOBS ./src/network-workloads/model-net-mpi-replay --sync=1 --disable_compute=1 --workload_type="dumpi" --workload_conf_file=multiple-workloads.conf –alloc_fil -- modelnet-mpi-test-dragonfly.conf

§ For multiple jobs, two of the arguments are different: –  Workload_file: Has information on the dumpi traces for each application –  Alloc_file: List of MPI ranks to be assigned to each job

39

Page 40: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

EXAMPLE WORKLOAD FILE

40

§ Left column: Number of application ranks per job § Right column: Path and prefix of DUMPI traces for each job § Keep adding lines for each job entry

Page 41: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

EXAMPLE JOB ALLOCATION FILE

41

§ List of MPI ranks for each job § There is a job entry per line § Example at the top shows job placement being done in a linear scheme § Example below shows job placement in a random fashion (assumes one rank

per node).

Page 42: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

GENERATING JOB ALLOCATIONS USING DIFFERENT SCHEMES § Multiple schemes to map jobs onto the network

–  Randomly selected nodes –  Contiguous or linear –  Randomly selected switches (ranks ordered on nodes attached to a switch) –  Clustered placement –  …

§ Scripts can be used to generate job allocation files with any of the above schemes

§ CODES is independent of the job allocation schemeà maps the ranks in allocation files onto the network nodes

§ CODES keeps track of the job ID and provides it in simulation output § Some python scripts can be found in scripts/allocation_gen

42

Page 43: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

EXERCISES

Page 44: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

RUNNING INTERCONNECT SIMULATIONS

§ Checkout the exercises at the wiki link: https://xgitlab.cels.anl.gov/codes/codes/wikis/quick-start-interconnects

44

Page 45: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

www.anl.gov

Suggested closing statement (optional): WE START WITH YES. AND END WITH THANK YOU.

DO YOU HAVE ANY BIG QUESTIONS?

THANK-YOU

Page 46: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

SLIM FLY NETWORK MODEL

46

Fig.  Slim  Fly  with  q=5  

§ Topology of interconnected router groups built with MMS graphs

§ The max network diameter is always 2 § Packet based simulation with credit based

flow control § Multiple forms of routing are supported:

–  minimal: 2 virtual channels –  non-minimal: 4 virtual channels –  adaptive: 4 virtual channels

Page 47: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CONFIGURING SLIM FLY NETWORK MODEL

47

Nw-lp zis a simulated MPI process

A simulated slim fly network node

A simulated slim fly network router

Page 48: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CONFIGURING SLIM FLY NETWORK MODEL

48

Generator sets must be precomputed and are used to configure inter-group connections

Router arrangement within a group.

Page 49: CODES/TRACER TUTORIAL: SESSION Ipress3.mcs.anl.gov/.../08/codes-tutorial-session1-v3.pdf · 2017. 8. 8. · Suggested line of text (optional): WE START WITH YES. CODES/TRACER TUTORIAL:

CONFIGURING SLIM FLY NETWORK MODEL

49

Generator sets must be precomputed and are used to configure inter-group connections

Router arrangement within a group.