-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
update TACC readme instructions to speed up LLVM build (#46)
- Loading branch information
Showing
8 changed files
with
256 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule galois
updated
10 files
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
#!/bin/bash | ||
|
||
# SPDX-License-Identifier: BSD-2-Clause | ||
# Copyright (c) 2023. University of Texas at Austin. All rights reserved. | ||
|
||
GRAPH_PATH="${GRAPH_PATH:-$SCRATCH/graphs/friendster_randomized_25.txt}" | ||
GRAPH_NUM_VERTICES="${GRAPH_NUM_VERTICES:-124836180}" | ||
|
||
# required sbatch parameters | ||
|
||
# note that TIME is in the format H:MM:SS | ||
|
||
# note that the bash paradigm `HOSTS="${HOSTS:-<default>}` | ||
# means: set the env var HOSTS equal to $HOSTS if HOSTS is | ||
# already set, if it is not set then set `HOSTS=default` | ||
HOSTS="${HOSTS:-1}" | ||
PROCS="${PROCS:-1}" | ||
TIME="${TIME:-1:00:00}" | ||
QUEUE="${QUEUE:-normal}" | ||
JOBS="${JOBS:-edit-scalability}" | ||
|
||
ENV=${WORK}/scea/graph-log-sketch/scripts/tacc_env.sh | ||
|
||
# These variables are not necessary but recommended for ease of use | ||
# The data directory is helpful for storing outputs and is recommended | ||
# but not necessary | ||
BUILD="${BUILD:-$WORK/scea/graph-log-sketch/build}" | ||
DATA="${DATA:-$SCRATCH/scea/graph-log-sketch/data/friendster}" | ||
|
||
# Create the data directory, if it does not yet exist: | ||
mkdir -p $DATA | ||
|
||
# print statements to validate input, can and should | ||
# be extended with application parameters | ||
echo $HOSTS | ||
echo $PROCS | ||
echo $THREADS | ||
echo $TIME | ||
echo $DATA | ||
echo $QUEUE | ||
echo $JOBN | ||
|
||
for algo in bfs tc; do | ||
mkdir -p "${DATA}/$algo" | ||
for nthreads in 8 16 32 64; do | ||
for graph in lscsr lccsr adj; do | ||
# JOBN should be parameterized with application parameters as well | ||
# possibly time as well time prevent conflicts and overwriting | ||
JOBN=${DATA}/$algo/${JOBS}_t=${nthreads}_g=${graph} | ||
echo "Submitting job: $JOBN" | ||
|
||
# start of job that runs on the supercomputer | ||
sbatch <<-EOT | ||
#!/bin/bash | ||
# special arguments passed to sbatch here instead of by command line | ||
# the mail arguments are optional and are just there to send you email | ||
# notifications when your jobs are scheduled and complete | ||
#SBATCH -J ${JOBN} | ||
#SBATCH -o ${JOBN}.out | ||
#SBATCH -e ${JOBN}.err | ||
#SBATCH -t ${TIME} | ||
#SBATCH -N ${HOSTS} | ||
#SBATCH -n ${PROCS} | ||
#SBATCH --mail-type=none | ||
#SBATCH [email protected] | ||
#SBATCH -p ${QUEUE} | ||
# ensure the proper runtime environment is set | ||
module purge | ||
. ${ENV} | ||
# actually run the equivalent of $\(mpirun) the $\(--) ensures arguments | ||
# are passed to your executable and not $\(ibrun) | ||
ibrun -- ${BUILD}/microbench/edit-scalability \ | ||
--algo $algo \ | ||
--bfs-src 101 \ | ||
--graph $graph \ | ||
--ingest-threads $nthreads \ | ||
--algo-threads $nthreads \ | ||
--input-file $GRAPH_PATH \ | ||
--num-vertices $GRAPH_NUM_VERTICES | ||
EOT | ||
done | ||
done | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
#!/bin/bash | ||
|
||
# SPDX-License-Identifier: BSD-2-Clause | ||
# Copyright (c) 2023. University of Texas at Austin. All rights reserved. | ||
|
||
GRAPH_PATH="${GRAPH_PATH:-$SCRATCH/graphs/rmat18_nV262144_randomized_20.txt}" | ||
GRAPH_NUM_VERTICES="${GRAPH_NUM_VERTICES:-262145}" | ||
|
||
# required sbatch parameters | ||
|
||
# note that TIME is in the format H:MM:SS | ||
|
||
# note that the bash paradigm `HOSTS="${HOSTS:-<default>}` | ||
# means: set the env var HOSTS equal to $HOSTS if HOSTS is | ||
# already set, if it is not set then set `HOSTS=default` | ||
HOSTS="${HOSTS:-1}" | ||
PROCS="${PROCS:-1}" | ||
TIME="${TIME:-1:00:00}" | ||
QUEUE="${QUEUE:-normal}" | ||
JOBS="${JOBS:-edit-scalability-rmat18}" | ||
|
||
ENV=${WORK}/scea/graph-log-sketch/scripts/tacc_env.sh | ||
|
||
# These variables are not necessary but recommended for ease of use | ||
# The data directory is helpful for storing outputs and is recommended | ||
# but not necessary | ||
BUILD="${BUILD:-$WORK/scea/graph-log-sketch/build}" | ||
DATA="${DATA:-$SCRATCH/scea/graph-log-sketch/data/rmat18}" | ||
|
||
# Create the data directory, if it does not yet exist: | ||
mkdir -p $DATA | ||
|
||
# print statements to validate input, can and should | ||
# be extended with application parameters | ||
echo $HOSTS | ||
echo $PROCS | ||
echo $THREADS | ||
echo $TIME | ||
echo $DATA | ||
echo $QUEUE | ||
echo $JOBN | ||
|
||
for algo in bfs tc; do | ||
mkdir -p "${DATA}/$algo" | ||
for nthreads in 8 16 32 64; do | ||
for graph in lscsr lccsr adj; do | ||
# JOBN should be parameterized with application parameters as well | ||
# possibly time as well time prevent conflicts and overwriting | ||
JOBN=${DATA}/$algo/${JOBS}_t=${nthreads}_g=${graph} | ||
echo "Submitting job: $JOBN" | ||
|
||
# start of job that runs on the supercomputer | ||
sbatch <<-EOT | ||
#!/bin/bash | ||
# special arguments passed to sbatch here instead of by command line | ||
# the mail arguments are optional and are just there to send you email | ||
# notifications when your jobs are scheduled and complete | ||
#SBATCH -J ${JOBN} | ||
#SBATCH -o ${JOBN}.out | ||
#SBATCH -e ${JOBN}.err | ||
#SBATCH -t ${TIME} | ||
#SBATCH -N ${HOSTS} | ||
#SBATCH -n ${PROCS} | ||
#SBATCH --mail-type=none | ||
#SBATCH [email protected] | ||
#SBATCH -p ${QUEUE} | ||
# ensure the proper runtime environment is set | ||
module purge | ||
. ${ENV} | ||
# actually run the equivalent of $\(mpirun) the $\(--) ensures arguments | ||
# are passed to your executable and not $\(ibrun) | ||
ibrun -- ${BUILD}/microbench/edit-scalability \ | ||
--algo $algo \ | ||
--bfs-src 101 \ | ||
--graph $graph \ | ||
--ingest-threads $nthreads \ | ||
--algo-threads $nthreads \ | ||
--input-file $GRAPH_PATH \ | ||
--num-vertices $GRAPH_NUM_VERTICES | ||
EOT | ||
done | ||
done | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# SPDX-License-Identifier: BSD-2-Clause | ||
# Copyright (c) 2023. University of Texas at Austin. All rights reserved. | ||
|
||
module load intel/19.1.1 | ||
module load impi/19.0.9 | ||
module load python3/3.9.7 | ||
module load boost-mpi/1.72 | ||
|
||
export LLVM_DIR="$WORK/llvm-project/build/cmake/modules/CMakeFiles/" | ||
export fmt_DIR="$WORK/fmt/build/" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# SPDX-License-Identifier: BSD-2-Clause | ||
# Copyright (c) 2023. University of Texas at Austin. All rights reserved. | ||
|
||
import os | ||
import re | ||
from pathlib import Path | ||
import pandas as pd | ||
|
||
data_dir = Path(os.environ["SCRATCH"]) / "scea" / "graph-log-sketch" / "data" | ||
datasets = os.listdir(data_dir) | ||
print("datasets:", " ".join(datasets)) | ||
|
||
df = pd.DataFrame(columns=["Dataset", "Algorithm", "Graph", "Threads", "Batch", "Stage", "Duration (ns)", "Max RSS (KB)", "Cache Misses", "Cache References", "Instructions"]) | ||
|
||
|
||
for dataset in datasets: | ||
print("processing", dataset) | ||
dataset_dir = data_dir / dataset | ||
algos = os.listdir(dataset_dir) | ||
print("> algos:", " ".join(algos)) | ||
|
||
for algo in algos: | ||
algo_dir = dataset_dir / algo | ||
for file in os.listdir(algo_dir): | ||
if file.endswith(".out"): | ||
graph = re.search("g=(lscsr|adj|lccsr)", file).group(1) | ||
threads = re.search("t=(\d+)", file).group(1) | ||
print("> > processing", algo_dir / file) | ||
with open(algo_dir / file) as f: | ||
contents = f.read() | ||
for m in re.findall("Benchmark results for (Ingestion|Post-ingest|Algorithm) for Batch (\d+):\nDuration: (\d+) nanoseconds\nMax RSS: (\d+) KB\nCache Misses: (\d+)\nCache References: (\d+)\nInstructions: (\d+)", contents, re.MULTILINE): | ||
stage, batch, duration, max_rss, cache_misses, cache_references, instructions = m | ||
df = df.append( | ||
{ | ||
"Dataset": dataset, | ||
"Algorithm": algo, | ||
"Graph": graph, | ||
"Threads": threads, | ||
"Batch": batch, | ||
"Stage": stage, | ||
"Duration (ns)": duration, | ||
"Max RSS (KB)": max_rss, | ||
"Cache Misses": cache_misses, | ||
"Cache References": cache_references, | ||
"Instructions": instructions, | ||
}, | ||
ignore_index=True | ||
) | ||
|
||
df.to_csv('data.csv', index=False) |