added the option --cmake-path to allow the user to choose the cmake executable to use.
As a result, the cmake path is no longer hardcoded (the hardcoded one was not suitable for alambix) work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3372]
This commit is contained in:
parent
5d59650e84
commit
cf1235f62c
|
@ -159,7 +159,7 @@ class ClusterNodeDb:
|
|||
return (hosts, num_cores)
|
||||
|
||||
|
||||
def launch_job_for_host_group(hibridon_version: GitCommitTag, host_group_id: HostGroupId, results_dir: Path, compiler_id: CompilerId):
|
||||
def launch_job_for_host_group(hibridon_version: GitCommitTag, host_group_id: HostGroupId, results_dir: Path, compiler_id: CompilerId, cmake_path: str):
|
||||
|
||||
cluster_db = ClusterNodeDb()
|
||||
|
||||
|
@ -218,7 +218,7 @@ def launch_job_for_host_group(hibridon_version: GitCommitTag, host_group_id: Hos
|
|||
substitute_tags(input_file_path=scripts_dir / 'starbench-template.job', tags_dict=tags_dict, output_file_path=starbench_job_path)
|
||||
subprocess.run(['chmod', 'a+x', starbench_job_path], check=True)
|
||||
|
||||
command = f'{starbench_job_path} "{git_repos_url}" "{git_user}" "{git_pass_file}" "{hibridon_version}" "{" ".join(cmake_options)}" "{benchmark_command}" "{env_vars_bash_commands}" "{starbench_root_path}"'
|
||||
command = f'{starbench_job_path} "{git_repos_url}" "{git_user}" "{git_pass_file}" "{hibridon_version}" "{" ".join(cmake_options)}" "{benchmark_command}" "{env_vars_bash_commands}" "{starbench_root_path}" "{cmake_path}"'
|
||||
print(f'command = {command}')
|
||||
|
||||
qsub_command = 'qsub'
|
||||
|
@ -236,7 +236,7 @@ def launch_job_for_host_group(hibridon_version: GitCommitTag, host_group_id: Hos
|
|||
subprocess.run(qsub_command, cwd=this_bench_dir, check=True, shell=True)
|
||||
|
||||
|
||||
def launch_perf_jobs(hibridon_version: GitCommitTag, results_dir: Path, arch_regexp: str):
|
||||
def launch_perf_jobs(hibridon_version: GitCommitTag, results_dir: Path, arch_regexp: str, cmake_path: str):
|
||||
"""
|
||||
hibridon_version: the version of hibridon to test, in the form of a valid commit number eg 'a3bed1c3ccfbca572003020d3e3d3b1ff3934fad'
|
||||
results_dir: where the results of the benchmark are stored (eg $GLOBAL_WORK_DIR/graffy/benchmarks/hibench)
|
||||
|
@ -267,7 +267,7 @@ def launch_perf_jobs(hibridon_version: GitCommitTag, results_dir: Path, arch_reg
|
|||
|
||||
for compiler in compilers:
|
||||
for host_group in host_groups:
|
||||
launch_job_for_host_group(hibridon_version, host_group, results_dir, compiler)
|
||||
launch_job_for_host_group(hibridon_version, host_group, results_dir, compiler, cmake_path)
|
||||
|
||||
|
||||
def path_is_reachable_by_compute_nodes(path: Path):
|
||||
|
@ -287,6 +287,7 @@ def main():
|
|||
arg_parser.add_argument('--commit-id', type=str, required=True, help='the commit id of the version of code to benchmark')
|
||||
arg_parser.add_argument('--results-dir', type=Path, required=True, help='the root directory of the tree where the results of the benchmarks are stored (eg $GLOBAL_WORK_DIR/graffy/benchmarks/hibench)')
|
||||
arg_parser.add_argument('--arch-regexp', type=str, default='.*', help='the regular expression for the architectures the benchmark is allowed to run on (eg "intel_xeon_.*"). By defauls, all available architectures are allowed.')
|
||||
arg_parser.add_argument('--cmake-path', type=str, default='cmake', help='the location of the cmake command to use (eg /opt/cmake/cmake-3.23.0/bin/cmake)')
|
||||
|
||||
args = arg_parser.parse_args()
|
||||
hibridon_version = args.commit_id
|
||||
|
@ -297,11 +298,12 @@ def main():
|
|||
|
||||
results_dir = Path(args.results_dir)
|
||||
arch_regexp = args.arch_regexp
|
||||
cmake_path = args.cmake_path
|
||||
|
||||
if not path_is_reachable_by_compute_nodes(results_dir):
|
||||
raise ValueError('the results path is expected to be on a disk that is accessible to all cluster nodes, and it doesn\'t seem to be the case for {results_dir}')
|
||||
|
||||
launch_perf_jobs(hibridon_version, results_dir, arch_regexp)
|
||||
launch_perf_jobs(hibridon_version, results_dir, arch_regexp, cmake_path)
|
||||
|
||||
|
||||
main()
|
||||
|
|
|
@ -15,7 +15,7 @@ last command status : [0]
|
|||
```
|
||||
|
||||
```sh
|
||||
graffy@physix-frontal:/opt/ipr/cluster/work.global/graffy/starbench.git/usecases/ipr/hibench$ ./hibenchonphysix.py --commit-id 53894da48505892bfa05693a52312bacb12c70c9 --results-dir $GLOBAL_WORK_DIR/graffy/hibridon/benchmarks/starbench/hibench/$(date --iso=seconds) --arch-regexp 'intel_xeon_x5650'
|
||||
graffy@alambix-frontal:/opt/ipr/cluster/work.global/graffy/starbench.git/usecases/ipr/hibench$ ./hibenchonphysix.py --commit-id 53894da48505892bfa05693a52312bacb12c70c9 --results-dir $GLOBAL_WORK_DIR/graffy/hibridon/benchmarks/starbench/hibench/$(date --iso=seconds) --arch-regexp 'intel_xeon_x5650' --cmake-path /usr/bin/cmake
|
||||
```
|
||||
|
||||
`hibenchonphysix.py` script launches two `sge` jobs for each machine type in `physix` cluster:
|
||||
|
|
|
@ -8,7 +8,7 @@ cmake_options="$5" # eg '-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON'
|
|||
benchmark_command="$6" # eg 'ctest -L ^arch4_quick$'
|
||||
env_vars_bash_commands="$7" # defines extra environment variables prior to launch starbench. eg "export MKLROOT=/opt/intel/compilers_and_libraries_2020.1.217/linux/mkl"
|
||||
starbench_src_url="$8" # location of starbench source (eg /opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibench/2024-10-08T16:39:52+02:00/starbench)
|
||||
cmake_path='/opt/cmake/cmake-3.23.0/bin/cmake'
|
||||
cmake_path="$9" # eg '/opt/cmake/cmake-3.23.0/bin/cmake'
|
||||
executed_by_sge=''
|
||||
|
||||
if [ "${JOB_ID}" = '' ]
|
||||
|
|
Loading…
Reference in New Issue