From 118a025521e31b006269fbfd031ef7516af749fc Mon Sep 17 00:00:00 2001 From: august-knox Date: Tue, 6 Aug 2024 16:05:56 -0700 Subject: [PATCH] most recent progress. Quicksilver weak/strong scaling implemented --- experiments/ior/openmp/ramble.yaml | 35 +++++++++++++++----------- experiments/remhos/openmp/ramble.yaml | 36 +++++++++++---------------- repo/ior/application.py | 36 ++++++++++++++++++++++----- repo/remhos/application.py | 18 +++++++------- 4 files changed, 75 insertions(+), 50 deletions(-) diff --git a/experiments/ior/openmp/ramble.yaml b/experiments/ior/openmp/ramble.yaml index e0d83c7db..2348854dc 100644 --- a/experiments/ior/openmp/ramble.yaml +++ b/experiments/ior/openmp/ramble.yaml @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 ramble: include: - - ./configs/spack.yaml + - ./configs/software.yaml - ./configs/variables.yaml - ./configs/modifier.yaml config: @@ -20,25 +20,32 @@ ramble: ior: workloads: ior: + variables: + n_ranks: '{n_nodes}*{sys_cores_per_node}' experiments: - execute_{n_nodes}_{omp_num_threads}_{n}: + ior_openmp_weak_{n_nodes}: + variants: + package_manager: spack variables: - n_ranks_per_node: ['8', '4'] - n_nodes: ['1', '2'] - omp_num_threads: ['2', '4'] - n: ['512', '1024'] - matrices: - - size_threads: - - n - - omp_num_threads - - spack: + + n_nodes: ['1','2','4'] + b: ['1g','2g','4g'] + t: ['4m','8m','16m'] + + ior_openmp_strong_{n_nodes}: + variants: + package_manager: spack + variables: + n_nodes: ['1','2','4'] + b: '1g' + t: '4m' + software: packages: mpi: - spack_spec: openmpi@4.1.6 + pkg_spec: openmpi@4.1.6 compiler: default-compiler ior: - spack_spec: ior@3.3.0 + pkg_spec: ior@3.3.0 compiler: default-compiler environments: ior: diff --git a/experiments/remhos/openmp/ramble.yaml b/experiments/remhos/openmp/ramble.yaml index 1a615cdd4..dd2b32fb6 100644 --- a/experiments/remhos/openmp/ramble.yaml +++ b/experiments/remhos/openmp/ramble.yaml @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 ramble: include: - - ./configs/spack.yaml + - ./configs/software.yaml - ./configs/variables.yaml - ./configs/modifier.yaml config: @@ -21,36 +21,30 @@ ramble: workloads: remhos: experiments: - execute_{n}_{n_nodes}_{omp_num_threads}: - + execute_{n_nodes}: + variants: + package_manager: spack variables: - n_ranks_per_node: ['8', '4'] - n_nodes: ['1', '2'] - omp_num_threads: ['2', '4'] - n: ['512', '1024'] - matrices: - - size_threads: - - n - - omp_num_threads - spack: + n_nodes: ['1','2'] + software: packages: - #hypre: - #spack_spec: hypre@2.10.0b - #compiler: default-compiler + hypre: + pkg_spec: hypre + compiler: compiler-gcc #zlib-ng: #spack_spec: zlib-ng@2.1.5 #compiler: default-compiler remhos: - spack_spec: remhos@1.0 - compiler: default-compiler - mfem: - spack_spec: mfem@4.5.0 + pkg_spec: remhos@1.0 compiler: default-compiler + #mfem: + #pkg_spec: mfem@4.5.0 + #compiler: default-compiler environments: remhos: packages: - #- hypre - - mfem + - hypre + #- mfem #- zlib-ng - default-mpi - remhos diff --git a/repo/ior/application.py b/repo/ior/application.py index 1034a37e5..532737467 100644 --- a/repo/ior/application.py +++ b/repo/ior/application.py @@ -8,7 +8,7 @@ from ramble.appkit import * -class Ior(SpackApplication): +class Ior(ExecutableApplication): """Ior benchmark""" name = "ior" @@ -16,13 +16,37 @@ class Ior(SpackApplication): 'multi-node','single-node','mpi','network-latency-bound', 'network-collectives','unstructured-grid'] - executable('p', 'ior', use_mpi=True) + executable('p', 'ior -Cge -wWr -F'+ + ' -b {b}' + + ' -t {t}' + + ' -a {a}' + , use_mpi=True) workload('ior', executables=['p']) + + workload_variable('a', default='POSIX', + description='api', + workloads=['ior']) + + workload_variable('b', default='16m', + description='blockSize -- contiguous bytes to write per task (e.g.: 8, 4k, 2m, 1g)', + workloads=['ior']) + + workload_variable('t', default='1m', + description='transferSize -- size of transfer in bytes (e.g.: 8, 4k, 2m, 1g)', + workloads=['ior']) + + workload_variable('N', default='1', + description='numTasks -- number of tasks that are participating in the test (overrides MPI)', + workloads=['ior']) #TODO: build FOMs. ior measures "throughput", but not sure how to calculate that from results - figure_of_merit('Major kernels total time', + figure_of_merit('Max write', log_file='{experiment_run_dir}/{experiment_name}.out', - fom_regex=r'Major kernels total time \(seconds\):\s+(?P[0-9]+\.[0-9]*(e^[0-9]*)?)', - group_name='fom', units='seconds') + fom_regex=r'Max Write:\s+(?P[0-9]+\.[0-9]*([0-9]*)?)', + group_name='fom', units='MiB/sec') - success_criteria('pass', mode='string', match=r'Major kernels total time', file='{experiment_run_dir}/{experiment_name}.out') + figure_of_merit('Max read', + log_file='{experiment_run_dir}/{experiment_name}.out', + fom_regex=r'Max Read:\s+(?P[0-9]+\.[0-9]*([0-9]*)?)', + group_name='fom', units='MiB/sec') + success_criteria('pass', mode='string', match=r'.*', file='{experiment_run_dir}/{experiment_name}.out') diff --git a/repo/remhos/application.py b/repo/remhos/application.py index c070d6095..d46d71a40 100644 --- a/repo/remhos/application.py +++ b/repo/remhos/application.py @@ -8,37 +8,37 @@ from ramble.appkit import * -class Remhos(SpackApplication): +class Remhos(ExecutableApplication): """Remhos benchmark""" name = "remhos" - executable('run', 'remhos'+' -m {mesh}'+' -p {p}'+' -rs {rs}'+' -rp {rp}'+' -dt {dt}'+' -tf {tf}'+' -ho {ho}' ' -lo {lo}'+' -fct {fct}', use_mpi=True) + executable('run', 'remhos'+' -m {mesh}'+' -p {p}'+' -rs {rs}'+'{rp}'+' -dt {dt}'+' -tf {tf}'+' -ho {ho}' ' -lo {lo}'+' -fct {fct}', use_mpi=True) workload('remhos', executables=['run']) - workload_variable('mesh', default='{remhos}/data/cube01_hex.mesh', + workload_variable('mesh', default='{remhos}/data/periodic-square.mesh', description='mesh', workloads=['remhos']) - workload_variable('p', default='14', + workload_variable('p', default='5', description='p', workloads=['remhos']) - workload_variable('rs', default='2', + workload_variable('rs', default='3', description='rs', workloads=['remhos']) - workload_variable('rp', default='1', + workload_variable('rp', default='', description='rp', workloads=['remhos']) - workload_variable('dt', default='0.0005', + workload_variable('dt', default='0.005', description='dt', workloads=['remhos']) - workload_variable('tf', default='0.6', + workload_variable('tf', default='0.8', description='tf', workloads=['remhos']) @@ -50,7 +50,7 @@ class Remhos(SpackApplication): description='lo', workloads=['remhos']) - workload_variable('fct', default='3', + workload_variable('fct', default='2', description='fct', workloads=['remhos']) #FOM_regex=r'(?<=Merit)\s+[\+\-]*[0-9]*\.*[0-9]+e*[\+\-]*[0-9]*'