Skip to content

Commit 7b65c22

Browse files
author
Alexey Zharkov
committed
fixes pipeline
1 parent f455c3a commit 7b65c22

1 file changed

Lines changed: 49 additions & 31 deletions

File tree

.github/workflows/load_testing.yml

Lines changed: 49 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,8 @@ on:
88

99
env:
1010
BUILD_DIR: build
11-
EXECUTABLE_PATH: ${{env.BUILD_DIR}}/nons
1211
GENERATORS_DIR: scripts/generators
13-
14-
FAT_TREE_GENERATOR: ${{env.GENERATORS_DIR}}/topology/fat_tree/fat_tree.py
15-
ALL_TO_ALL_GENERATOR: ${{env.GENERATORS_DIR}}/ti_simulation/all-to-all/all-to-all.py
16-
17-
FAT_TREE_CONFIGS_DIR: ${{env.GENERATORS_DIR}}/topology/fat_tree
18-
FAT_TREE_SMALL_CONFIG: ${{env.FAT_TREE_CONFIGS_DIR}}/small_fat_tree_config.yml
19-
FAT_TREE_LARGE_CONFIG: ${{env.FAT_TREE_CONFIGS_DIR}}/large_fat_tree_config.yml
20-
2112
FLAMEGRAPH_ARTIFACT_DIR: flamegraph
22-
FLAMEGRAPH_OUTPUT_DIR: ${{env.FLAMEGRAPH_ARTIFACT_DIR}}/flamegraph
23-
2413
FLAMEGRAPH_TOPOLOGY_NAME: fat_tree_topology.yml
2514
FLAMEGRAPH_SIMULATION_NAME: fat_tree_simulation.yml
2615

@@ -34,19 +23,29 @@ jobs:
3423
- name: Update submodules
3524
run: git submodule update --init --recursive
3625

26+
- name: Derive env vars
27+
run: |
28+
echo "EXECUTABLE_PATH=$BUILD_DIR/nons" >> $GITHUB_ENV
29+
echo "FAT_TREE_GENERATOR=$GENERATORS_DIR/topology/fat_tree/fat_tree.py" >> $GITHUB_ENV
30+
echo "ALL_TO_ALL_GENERATOR=$GENERATORS_DIR/ti_simulation/all-to-all/all-to-all.py" >> $GITHUB_ENV
31+
echo "FAT_TREE_CONFIGS_DIR=$GENERATORS_DIR/topology/fat_tree" >> $GITHUB_ENV
32+
echo "FAT_TREE_SMALL_CONFIG=$GENERATORS_DIR/topology/fat_tree/small_fat_tree_config.yml" >> $GITHUB_ENV
33+
echo "FAT_TREE_LARGE_CONFIG=$GENERATORS_DIR/topology/fat_tree/large_fat_tree_config.yml" >> $GITHUB_ENV
34+
echo "FLAMEGRAPH_OUTPUT_DIR=$FLAMEGRAPH_ARTIFACT_DIR/flamegraph" >> $GITHUB_ENV
35+
3736
- name: Configure CMake for building project
38-
run: cmake -B ${{env.BUILD_DIR}} -DCMAKE_BUILD_TYPE=Release -DBUILD_PROJECT=ON -DBUILD_TESTS=OFF -DLOG_LEVEL=LOG_LEVEL_ERROR
37+
run: cmake -B $BUILD_DIR -DCMAKE_BUILD_TYPE=Release -DBUILD_PROJECT=ON -DBUILD_TESTS=OFF -DLOG_LEVEL=LOG_LEVEL_ERROR
3938

4039
- name: Build project
41-
run: cmake --build ${{env.BUILD_DIR}} -j $(nproc)
40+
run: cmake --build $BUILD_DIR -j $(nproc)
4241

4342
- name: Update PYTHONPATH
4443
run: echo "PYTHONPATH=${{ github.workspace }}/scripts" >> $GITHUB_ENV
4544

4645
- name: Run simulations
4746
run: |
48-
python3 scripts/generate_configs_and_run.py -e ${{env.EXECUTABLE_PATH}} -t ${{env.FAT_TREE_GENERATOR}} -tc ${{env.FAT_TREE_SMALL_CONFIG}}
49-
python3 scripts/generate_configs_and_run.py -e ${{env.EXECUTABLE_PATH}} -t ${{env.FAT_TREE_GENERATOR}} -tc ${{env.FAT_TREE_LARGE_CONFIG}}
47+
python3 scripts/generate_configs_and_run.py -e $EXECUTABLE_PATH -t $FAT_TREE_GENERATOR -tc $FAT_TREE_SMALL_CONFIG
48+
python3 scripts/generate_configs_and_run.py -e $EXECUTABLE_PATH -t $FAT_TREE_GENERATOR -tc $FAT_TREE_LARGE_CONFIG
5049
5150
5251
profiling_load_testing:
@@ -57,24 +56,34 @@ jobs:
5756
- name: Update submodules
5857
run: git submodule update --init --recursive
5958

59+
- name: Derive env vars
60+
run: |
61+
echo "EXECUTABLE_PATH=$BUILD_DIR/nons" >> $GITHUB_ENV
62+
echo "FAT_TREE_GENERATOR=$GENERATORS_DIR/topology/fat_tree/fat_tree.py" >> $GITHUB_ENV
63+
echo "ALL_TO_ALL_GENERATOR=$GENERATORS_DIR/ti_simulation/all-to-all/all-to-all.py" >> $GITHUB_ENV
64+
echo "FAT_TREE_CONFIGS_DIR=$GENERATORS_DIR/topology/fat_tree" >> $GITHUB_ENV
65+
echo "FAT_TREE_SMALL_CONFIG=$GENERATORS_DIR/topology/fat_tree/small_fat_tree_config.yml" >> $GITHUB_ENV
66+
echo "FAT_TREE_LARGE_CONFIG=$GENERATORS_DIR/topology/fat_tree/large_fat_tree_config.yml" >> $GITHUB_ENV
67+
echo "FLAMEGRAPH_OUTPUT_DIR=$FLAMEGRAPH_ARTIFACT_DIR/flamegraph" >> $GITHUB_ENV
68+
6069
- name: Configure CMake for profiling
61-
run: cmake -B ${{env.BUILD_DIR}} -DCMAKE_BUILD_TYPE=Release -DBUILD_PROJECT=ON -DBUILD_TESTS=OFF -DPROFILING=ON -DLOG_LEVEL=LOG_LEVEL_ERROR
70+
run: cmake -B $BUILD_DIR -DCMAKE_BUILD_TYPE=Release -DBUILD_PROJECT=ON -DBUILD_TESTS=OFF -DPROFILING=ON -DLOG_LEVEL=LOG_LEVEL_ERROR
6271

6372
- name: Build project with profiling
64-
run: cmake --build ${{env.BUILD_DIR}} -j $(nproc)
73+
run: cmake --build $BUILD_DIR -j $(nproc)
6574

6675
- name: Update PYTHONPATH
6776
run: echo "PYTHONPATH=${{ github.workspace }}/scripts" >> $GITHUB_ENV
6877

6978
- name: Run simulations with profiling
7079
run: |
71-
python3 scripts/generate_configs_and_run.py -e ${{env.EXECUTABLE_PATH}} -t ${{env.FAT_TREE_GENERATOR}} -tc ${{env.FAT_TREE_SMALL_CONFIG}}
72-
gprof ${{env.EXECUTABLE_PATH}} > profile.txt
73-
head profile.txt
80+
python3 scripts/generate_configs_and_run.py -e $EXECUTABLE_PATH -t $FAT_TREE_GENERATOR -tc $FAT_TREE_SMALL_CONFIG
81+
gprof $EXECUTABLE_PATH > profile.txt || true
82+
head profile.txt || true
7483
75-
python3 scripts/generate_configs_and_run.py -e ${{env.EXECUTABLE_PATH}} -t ${{env.FAT_TREE_GENERATOR}} -tc ${{env.FAT_TREE_LARGE_CONFIG}}
76-
gprof ${{env.EXECUTABLE_PATH}} > profile.txt
77-
head profile.txt
84+
python3 scripts/generate_configs_and_run.py -e $EXECUTABLE_PATH -t $FAT_TREE_GENERATOR -tc $FAT_TREE_LARGE_CONFIG
85+
gprof $EXECUTABLE_PATH > profile.txt || true
86+
head profile.txt || true
7887
7988
flamegraph:
8089
runs-on: ubuntu-latest
@@ -87,41 +96,50 @@ jobs:
8796
- name: Update submodules
8897
run: git submodule update --init --recursive
8998

99+
- name: Derive env vars
100+
run: |
101+
echo "EXECUTABLE_PATH=$BUILD_DIR/nons" >> $GITHUB_ENV
102+
echo "FAT_TREE_GENERATOR=$GENERATORS_DIR/topology/fat_tree/fat_tree.py" >> $GITHUB_ENV
103+
echo "ALL_TO_ALL_GENERATOR=$GENERATORS_DIR/ti_simulation/all-to-all/all-to-all.py" >> $GITHUB_ENV
104+
echo "FAT_TREE_CONFIGS_DIR=$GENERATORS_DIR/topology/fat_tree" >> $GITHUB_ENV
105+
echo "FAT_TREE_LARGE_CONFIG=$GENERATORS_DIR/topology/fat_tree/large_fat_tree_config.yml" >> $GITHUB_ENV
106+
echo "FLAMEGRAPH_OUTPUT_DIR=$FLAMEGRAPH_ARTIFACT_DIR/flamegraph" >> $GITHUB_ENV
107+
90108
- name: Get dependencies
91109
run: git clone https://github.com/brendangregg/FlameGraph.git
92110

93111
- name: Configure CMake for perf
94-
run: cmake -B ${{env.BUILD_DIR}} -DCMAKE_BUILD_TYPE=Release -DBUILD_PROJECT=ON -DBUILD_TESTS=OFF -DLOG_LEVEL=LOG_LEVEL_ERROR -DCMAKE_CXX_FLAGS="-g -fno-omit-frame-pointer"
112+
run: cmake -B $BUILD_DIR -DCMAKE_BUILD_TYPE=Release -DBUILD_PROJECT=ON -DBUILD_TESTS=OFF -DLOG_LEVEL=LOG_LEVEL_ERROR -DCMAKE_CXX_FLAGS="-g -fno-omit-frame-pointer"
95113

96114
- name: Build project with profiling
97-
run: cmake --build ${{env.BUILD_DIR}} -j $(nproc)
115+
run: cmake --build $BUILD_DIR -j $(nproc)
98116

99117
- name: Update PYTHONPATH
100118
run: echo "PYTHONPATH=${{ github.workspace }}/scripts" >> $GITHUB_ENV
101119

102120
- name: Generate topology config
103-
run: python3 ${{env.FAT_TREE_GENERATOR}} -c ${{env.FAT_TREE_LARGE_CONFIG}} -o ${{env.FLAMEGRAPH_TOPOLOGY_NAME}}
121+
run: python3 $FAT_TREE_GENERATOR -c $FAT_TREE_LARGE_CONFIG -o $FLAMEGRAPH_TOPOLOGY_NAME
104122

105123
- name: Generate simulation config
106-
run: python3 ${{env.ALL_TO_ALL_GENERATOR}} -t ${{env.FLAMEGRAPH_TOPOLOGY_NAME}} -o ${{env.FLAMEGRAPH_SIMULATION_NAME}}
124+
run: python3 $ALL_TO_ALL_GENERATOR -t $FLAMEGRAPH_TOPOLOGY_NAME -o $FLAMEGRAPH_SIMULATION_NAME
107125

108126
- name: Run perf
109127
run: |
110-
sudo perf record -F 99 -g -- ./${{env.EXECUTABLE_PATH}} -c ${{env.FLAMEGRAPH_SIMULATION_NAME}} --no-logs --no-plots > perf.data
128+
sudo perf record -F 99 -g -- ./$EXECUTABLE_PATH -c $FLAMEGRAPH_SIMULATION_NAME --no-logs --no-plots > perf.data
111129
perf report -i perf.data --header-only
112130
perf script -i perf.data -v > out.perf 2>&1 || true
113131
114132
- name: Prepare FlameGraph
115133
run: |
116-
mkdir -p ${{ env.FLAMEGRAPH_OUTPUT_DIR }}
134+
mkdir -p $FLAMEGRAPH_OUTPUT_DIR
117135
118136
- name: Generate flamegraph
119137
run: |
120138
./FlameGraph/stackcollapse-perf.pl out.perf > out.folded
121-
./FlameGraph/flamegraph.pl out.folded > ${{ env.FLAMEGRAPH_OUTPUT_DIR }}/flamegraph.svg
139+
./FlameGraph/flamegraph.pl out.folded > $FLAMEGRAPH_OUTPUT_DIR/flamegraph.svg
122140
123141
- name: Create HTML
124-
run: python3 scripts/generate-html.py ./${{ env.FLAMEGRAPH_ARTIFACT_DIR }}
142+
run: python3 scripts/generate-html.py ./$FLAMEGRAPH_ARTIFACT_DIR
125143

126144
- name: Put github context to json file
127145
run: echo '${{ toJson(github) }}' > github_context.json

0 commit comments

Comments
 (0)