61 lines
1.5 KiB
Bash
61 lines
1.5 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
##
|
||
|
## BSD 3-Clause License
|
||
|
##
|
||
|
## This file is part of the Basalt project.
|
||
|
## https://gitlab.com/VladyslavUsenko/basalt.git
|
||
|
##
|
||
|
## Copyright (c) 2019-2021, Vladyslav Usenko and Nikolaus Demmel.
|
||
|
## All rights reserved.
|
||
|
##
|
||
|
|
||
|
|
||
|
# given folder with basalt_config_*.json, run optimization for each config in
|
||
|
# corresponding subfolder
|
||
|
|
||
|
set -e
|
||
|
set -x
|
||
|
|
||
|
# number of logical cores on linux and macos
|
||
|
NUM_CORES=`(which nproc > /dev/null && nproc) || sysctl -n hw.logicalcpu || echo 1`
|
||
|
|
||
|
echo "Running on '`hostname`', nproc: $NUM_CORES"
|
||
|
|
||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||
|
|
||
|
# loop over all arguments, and in each folder find configs and run them
|
||
|
for FOLDER in "$@"
|
||
|
do
|
||
|
|
||
|
pushd "$FOLDER"
|
||
|
|
||
|
FILE_PATTERN='basalt_config_*.json'
|
||
|
FILE_REGEX='basalt_config_(.*)\.json'
|
||
|
|
||
|
DATE=`date +'%Y%m%d-%H%M%S'`
|
||
|
mkdir -p $DATE
|
||
|
|
||
|
declare -a RUN_DIRS=()
|
||
|
|
||
|
for f in `find . -name "$FILE_PATTERN" -type f | sort`; do
|
||
|
if [[ `basename $f` =~ $FILE_REGEX ]]; then
|
||
|
RUN_DIR=${DATE}/`dirname $f`/${BASH_REMATCH[1]}
|
||
|
echo "Creating run with config $f in $RUN_DIR"
|
||
|
mkdir -p "$RUN_DIR"
|
||
|
cp $f "$RUN_DIR"/basalt_config.json
|
||
|
echo "Created" > "$RUN_DIR"/status.log
|
||
|
RUN_DIRS+=($RUN_DIR)
|
||
|
else
|
||
|
echo "Skipping $f"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
for RUN_DIR in "${RUN_DIRS[@]}"; do
|
||
|
echo "Starting run in $RUN_DIR"
|
||
|
"$SCRIPT_DIR"/run-one.sh "$RUN_DIR" || true
|
||
|
done
|
||
|
|
||
|
popd
|
||
|
|
||
|
done
|