Skip to content
Snippets Groups Projects
Commit f7316c78 authored by Jayesh Badwaik's avatar Jayesh Badwaik
Browse files

+ initial commit

parents
Branches
Tags
No related merge requests found
jube_job_output.txt
[submodule "src"]
path = src
url = https://github.com/ColinIanKing/stress-ng.git
name: stress-ng
outpath: /dev/null
fileset:
- name: source
copy: src
- name: postsource
copy: post
parameterset:
- name: benchParam
parameter:
- name: inputpowercap
_: "100, 200, 300"
- name: systemParam
init_with: "platform.xml:systemParameter"
parameter:
- name: nodes
_: 1
- name: queue
_: "all"
- name: executable
_: "stress-ng"
- name: args_exec
_: "--matrix 0 --timeout 60s --metrics-brief --yaml $powercap.yaml"
- name: powercap
_: $inputpowercap
- name: executeset
init_with: "platform.xml:executeset"
parameter:
- name: args_starter
_: "--cpu-bind=none"
step:
- name: build
use:
- source
do:
- module load GCC OpenMPI
- LTO=1 make -C src
- name: run
depend: build
use:
- benchParam
- systemParam
- from: platform.xml
_: jobfiles
- from: platform.xml
_: executesub
- executeset
do:
- cp build/src/stress-ng .
- done_file: $done_file
error_file: $error_file
_: ${submit} --parsable ${submit_script}
- name: postprocessing
depend: run
use:
- postsource
- benchParam
do:
- module load GCC Python PyYAML
- python post/postprocessing.py run/$powercap.yaml > bogomips.out
patternset:
- name: performance_metric
pattern:
- name: performance
_: ${jube_pat_int}
analyser:
- name: bench_info
analyse:
step: postprocessing
file:
- use: performance_metric
_: bogomips.out
result:
use:
- bench_info
table:
name: result
style: csv
column:
- powercap
- performance
<?xml version="1.0" encoding="UTF-8"?>
<jube>
<!-- Default SLURM sets -->
<parameterset name="executeset">
<!-- Jobscript handling -->
<parameter name="submit">sbatch</parameter>
<parameter name="submit_script">submit.job</parameter>
<parameter name="done_file">ready</parameter>
<parameter name="error_file">error</parameter>
<parameter name="starter">srun</parameter>
<parameter name="args_starter"></parameter>
<!-- Chainjob handling -->
<parameter name="shared_folder">shared</parameter>
<parameter name="shared_job_info">${shared_folder}/jobid</parameter>
<parameter name="chainjob_script">./chainJobs.sh</parameter>
<parameter name="chainjob_needs_submit">false</parameter>
</parameterset>
<parameterset name="systemParameter">
<!-- Default jobscript parameter -->
<parameter name="jobname">${jube_benchmark_name}_${jube_step_name}_${jube_wp_id}</parameter>
<parameter name="nodes" type="int">1</parameter>
<parameter name="taskspernode" type="int">1</parameter>
<parameter name="threadspertask" type="int">1</parameter>
<parameter name="tasks" mode="python" type="int">
$nodes * $taskspernode
</parameter>
<parameter name="OMP_NUM_THREADS" type="int" export="true">
$threadspertask
</parameter>
<parameter name="queue">batch</parameter>
<parameter name="account"></parameter>
<parameter name="account_slurm" mode="python">
"#SBATCH --account=$account" if "$account" else ""
</parameter>
<parameter name="gres">NONE</parameter>
<parameter name="executable"></parameter>
<parameter name="args_exec"></parameter>
<parameter name="mail"></parameter>
<parameter name="env" separator=";">$jube_wp_envstr</parameter>
<parameter name="notification">NONE</parameter>
<parameter name="outlogfile">job.out</parameter>
<parameter name="errlogfile">job.err</parameter>
<parameter name="timelimit">00:30:00</parameter>
<parameter name="preprocess"></parameter>
<parameter name="postprocess"></parameter>
<parameter name="measurement"></parameter>
<parameter name="additional_job_config"></parameter>
<parameter name="powercap"></parameter>
<parameter name="rawpowercap" mode="python">
$powercap * 1000000
</parameter>
</parameterset>
<substituteset name="executesub">
<!-- Default jobscript substitution -->
<iofile in="${submit_script}.in" out="$submit_script" />
<sub source="#ENV#" dest="$env" />
<sub source="#NOTIFY_EMAIL#" dest="$mail" />
<sub source="#NOTIFICATION_TYPE#" dest="$notification" />
<sub source="#BENCHNAME#" dest="&quot;${jobname}&quot;" />
<sub source="#NODES#" dest="$nodes" />
<sub source="#TASKS#" dest="$tasks" />
<sub source="#NCPUS#" dest="$taskspernode" />
<sub source="#NTHREADS#" dest="$threadspertask" />
<sub source="#TIME_LIMIT#" dest="$timelimit" />
<sub source="#PREPROCESS#" dest="$preprocess" />
<sub source="#POSTPROCESS#" dest="$postprocess" />
<sub source="#ACCOUNT_CONFIG#" dest="$account_slurm" />
<sub source="#QUEUE#" dest="$queue" />
<sub source="#GRES#" dest="$gres" />
<sub source="#STARTER#" dest="$starter" />
<sub source="#ARGS_STARTER#" dest="$args_starter" />
<sub source="#MEASUREMENT#" dest="$measurement" />
<sub source="#STDOUTLOGFILE#" dest="$outlogfile" />
<sub source="#STDERRLOGFILE#" dest="$errlogfile" />
<sub source="#ADDITIONAL_JOB_CONFIG#"
dest="$additional_job_config" />
<sub source="#EXECUTABLE#" dest="$executable" />
<sub source="#ARGS_EXECUTABLE#" dest="$args_exec" />
<sub source="#FLAG#" dest="touch $done_file" />
<sub source="#FLAG_ERROR#" dest="touch $error_file" />
<sub source="#RAWPOWERCAP#" dest="$rawpowercap" />
</substituteset>
<substituteset name="chainsub">
<!-- Default chainjob substitution -->
</substituteset>
<fileset name="jobfiles">
<!-- Default jobscript access -->
<copy>${submit_script}.in</copy>
</fileset>
<fileset name="chainfiles">
<!-- Chainjob script access -->
<copy>$chainjob_script</copy>
</fileset>
</jube>
#!/bin/bash -x
#SBATCH --job-name=#BENCHNAME#
#SBATCH --mail-user=#NOTIFY_EMAIL#
#SBATCH --mail-type=#NOTIFICATION_TYPE#
#SBATCH --nodes=#NODES#
#SBATCH --ntasks=#TASKS#
#SBATCH --time=#TIME_LIMIT#
#SBATCH --output=#STDOUTLOGFILE#
#SBATCH --error=#STDERRLOGFILE#
#SBATCH --partition=#QUEUE#
#SBATCH --gres=#GRES#
#ACCOUNT_CONFIG#
#ADDITIONAL_JOB_CONFIG#
#ENV#
#PREPROCESS#
JUBE_ERR_CODE=$?
if [ $JUBE_ERR_CODE -ne 0 ]; then
#FLAG_ERROR#
exit $JUBE_ERR_CODE
fi
sudo /opt/jsc/sbin/cap.sh #RAWPOWERCAP#
#MEASUREMENT# #STARTER# #ARGS_STARTER# #EXECUTABLE# #ARGS_EXECUTABLE#
sudo /opt/jsc/sbin/cap.sh --reset
JUBE_ERR_CODE=$?
if [ $JUBE_ERR_CODE -ne 0 ]; then
#FLAG_ERROR#
exit $JUBE_ERR_CODE
fi
#POSTPROCESS#
JUBE_ERR_CODE=$?
if [ $JUBE_ERR_CODE -ne 0 ]; then
#FLAG_ERROR#
exit $JUBE_ERR_CODE
fi
#FLAG#
#!/usr/bin/env python3
import argparse
import yaml
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("input", help="Input file")
args = parser.parse_args()
with open(args.input, "r") as f:
data = yaml.safe_load(f)
print(data["metrics"][0]["bogo-ops"])
\ No newline at end of file
Subproject commit e00c355b8e9af3f7ce091e88ec6ddb5c439dc972
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment