v0.0.13
- minor change (renamed example becnchmark name 'hibench' as 'hibridon') work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3958]
This commit is contained in:
		
							parent
							
								
									e9bbc95632
								
							
						
					
					
						commit
						8d674055bc
					
				
							
								
								
									
										26
									
								
								README.md
								
								
								
								
							
							
						
						
									
										26
									
								
								README.md
								
								
								
								
							|  | @ -6,7 +6,7 @@ This example illustrates how `starbench` is used at IPR (Institut de Physique de | |||
| usage: | ||||
| 
 | ||||
| ```sh | ||||
| 20241007-15:08:10 graffy@graffy-ws2:~/work/starbench/starbench.git$ rsync --exclude .git --exclude starbench.venv --exclude tmp --exclude usecases/ipr/hibench/results  -va ./ graffy@alambix.ipr.univ-rennes.fr:/opt/ipr/cluster/work.global/graffy/starbench.git/ | ||||
| 20241007-15:08:10 graffy@graffy-ws2:~/work/starbench/starbench.git$ rsync --exclude .git --exclude starbench.venv --exclude tmp --exclude usecases/ipr/hibridon/results  -va ./ graffy@alambix.ipr.univ-rennes.fr:/opt/ipr/cluster/work.global/graffy/starbench.git/ | ||||
| sending incremental file list | ||||
| 
 | ||||
| sent 1,416 bytes  received 25 bytes  960.67 bytes/sec | ||||
|  | @ -131,35 +131,35 @@ iprbench-run --benchmark-id 'mamul1' --config '{"compiler_id": "gfortran", "matr | |||
| ## launch benchmark jobs on alambix cluster | ||||
| 
 | ||||
| ```sh | ||||
| (iprbench.venv) graffy@alambix-frontal:/opt/ipr/cluster/work.local/graffy/bug3372$ hibenchonphysix --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 | ||||
| (iprbench.venv) graffy@alambix-frontal:/opt/ipr/cluster/work.local/graffy/bug3372$ hibridononphysix --commit-id 53894da48505892bfa05693a52312bacb12c70c9 --results-dir $GLOBAL_WORK_DIR/graffy/hibridon/benchmarks/starbench/hibridon/$(date --iso=seconds) --arch-regexp 'intel_xeon_x5650' --cmake-path /usr/bin/cmake | ||||
| INFO:root:available host groups: dict_keys(['intel_xeon_x5550', 'intel_xeon_x5650', 'intel_xeon_e5-2660', 'intel_xeon_e5-2660v2', 'intel_xeon_e5-2660v4', 'intel_xeon_gold_6140', 'intel_xeon_gold_6154', 'intel_xeon_gold_5220', 'intel_xeon_gold_6226r', 'intel_xeon_gold_6248r', 'intel_xeon_gold_6348', 'amd_epyc_7282', 'amd_epyc_7452']) | ||||
| INFO:root:requested host groups: ['intel_xeon_x5650'] | ||||
| INFO:root:using test arch4_quick for benchmarking | ||||
| INFO:root:creating /opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibench/2024-10-10T12:11:44+02:00/iprbench.venv.tgz (the virtual environment that will be used in this bench by all its jobs at some point) | ||||
| INFO:root:creating /opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibridon/2024-10-10T12:11:44+02:00/iprbench.venv.tgz (the virtual environment that will be used in this bench by all its jobs at some point) | ||||
| Collecting virtualenv-clone | ||||
|   Using cached virtualenv_clone-0.5.7-py3-none-any.whl (6.6 kB) | ||||
| Installing collected packages: virtualenv-clone | ||||
| Successfully installed virtualenv-clone-0.5.7 | ||||
| DEBUG:root:command = /opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibench/2024-10-10T12:11:44+02:00/53894da48505892bfa05693a52312bacb12c70c9/arch4_quick/intel_xeon_x5650/gfortran/starbench.job "https://github.com/hibridon/hibridon" "g-raffy" "/mnt/home.ipr/graffy/.github/personal_access_tokens/bench.hibridon.cluster.ipr.univ-rennes1.fr.pat" "53894da48505892bfa05693a52312bacb12c70c9" "-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DCMAKE_Fortran_COMPILER=gfortran" "ctest --output-on-failure -L ^arch4_quick$" "" "/usr/bin/cmake" | ||||
| DEBUG:root:qsub_command = qsub -pe smp 12 -l "hostname=alambix50.ipr.univ-rennes.fr" -S /bin/bash -cwd -m ae -l mem_available=1G -j y -N hibench_intel_xeon_x5650_gfortran_53894da48505892bfa05693a52312bacb12c70c9 /opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibench/2024-10-10T12:11:44+02:00/53894da48505892bfa05693a52312bacb12c70c9/arch4_quick/intel_xeon_x5650/gfortran/starbench.job "https://github.com/hibridon/hibridon" "g-raffy" "/mnt/home.ipr/graffy/.github/personal_access_tokens/bench.hibridon.cluster.ipr.univ-rennes1.fr.pat" "53894da48505892bfa05693a52312bacb12c70c9" "-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DCMAKE_Fortran_COMPILER=gfortran" "ctest --output-on-failure -L ^arch4_quick$" "" "/usr/bin/cmake" | ||||
| Your job 17357 ("hibench_intel_xeon_x5650_gfortran_53894da48505892bfa05693a52312bacb12c70c9") has been submitted | ||||
| DEBUG:root:command = /opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibridon/2024-10-10T12:11:44+02:00/53894da48505892bfa05693a52312bacb12c70c9/arch4_quick/intel_xeon_x5650/gfortran/starbench.job "https://github.com/hibridon/hibridon" "g-raffy" "/mnt/home.ipr/graffy/.github/personal_access_tokens/bench.hibridon.cluster.ipr.univ-rennes1.fr.pat" "53894da48505892bfa05693a52312bacb12c70c9" "-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DCMAKE_Fortran_COMPILER=gfortran" "ctest --output-on-failure -L ^arch4_quick$" "" "/usr/bin/cmake" | ||||
| DEBUG:root:qsub_command = qsub -pe smp 12 -l "hostname=alambix50.ipr.univ-rennes.fr" -S /bin/bash -cwd -m ae -l mem_available=1G -j y -N hibridon_intel_xeon_x5650_gfortran_53894da48505892bfa05693a52312bacb12c70c9 /opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibridon/2024-10-10T12:11:44+02:00/53894da48505892bfa05693a52312bacb12c70c9/arch4_quick/intel_xeon_x5650/gfortran/starbench.job "https://github.com/hibridon/hibridon" "g-raffy" "/mnt/home.ipr/graffy/.github/personal_access_tokens/bench.hibridon.cluster.ipr.univ-rennes1.fr.pat" "53894da48505892bfa05693a52312bacb12c70c9" "-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DCMAKE_Fortran_COMPILER=gfortran" "ctest --output-on-failure -L ^arch4_quick$" "" "/usr/bin/cmake" | ||||
| Your job 17357 ("hibridon_intel_xeon_x5650_gfortran_53894da48505892bfa05693a52312bacb12c70c9") has been submitted | ||||
| INFO:root:using test arch4_quick for benchmarking | ||||
| INFO:root:skipping the creation of /opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibench/2024-10-10T12:11:44+02:00/iprbench.venv.tgz because it already exists (probably created for other jobs of the same bench) | ||||
| DEBUG:root:command = /opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibench/2024-10-10T12:11:44+02:00/53894da48505892bfa05693a52312bacb12c70c9/arch4_quick/intel_xeon_x5650/ifort/starbench.job "https://github.com/hibridon/hibridon" "g-raffy" "/mnt/home.ipr/graffy/.github/personal_access_tokens/bench.hibridon.cluster.ipr.univ-rennes1.fr.pat" "53894da48505892bfa05693a52312bacb12c70c9" "-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DCMAKE_Fortran_COMPILER=ifort -DBLA_VENDOR=Intel10_64lp" "ctest --output-on-failure -L ^arch4_quick$" "module load compilers/ifort/latest" "/usr/bin/cmake" | ||||
| DEBUG:root:qsub_command = qsub -pe smp 12 -l "hostname=alambix50.ipr.univ-rennes.fr" -S /bin/bash -cwd -m ae -l mem_available=1G -j y -N hibench_intel_xeon_x5650_ifort_53894da48505892bfa05693a52312bacb12c70c9 /opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibench/2024-10-10T12:11:44+02:00/53894da48505892bfa05693a52312bacb12c70c9/arch4_quick/intel_xeon_x5650/ifort/starbench.job "https://github.com/hibridon/hibridon" "g-raffy" "/mnt/home.ipr/graffy/.github/personal_access_tokens/bench.hibridon.cluster.ipr.univ-rennes1.fr.pat" "53894da48505892bfa05693a52312bacb12c70c9" "-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DCMAKE_Fortran_COMPILER=ifort -DBLA_VENDOR=Intel10_64lp" "ctest --output-on-failure -L ^arch4_quick$" "module load compilers/ifort/latest" "/usr/bin/cmake" | ||||
| Your job 17358 ("hibench_intel_xeon_x5650_ifort_53894da48505892bfa05693a52312bacb12c70c9") has been submitted | ||||
| INFO:root:skipping the creation of /opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibridon/2024-10-10T12:11:44+02:00/iprbench.venv.tgz because it already exists (probably created for other jobs of the same bench) | ||||
| DEBUG:root:command = /opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibridon/2024-10-10T12:11:44+02:00/53894da48505892bfa05693a52312bacb12c70c9/arch4_quick/intel_xeon_x5650/ifort/starbench.job "https://github.com/hibridon/hibridon" "g-raffy" "/mnt/home.ipr/graffy/.github/personal_access_tokens/bench.hibridon.cluster.ipr.univ-rennes1.fr.pat" "53894da48505892bfa05693a52312bacb12c70c9" "-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DCMAKE_Fortran_COMPILER=ifort -DBLA_VENDOR=Intel10_64lp" "ctest --output-on-failure -L ^arch4_quick$" "module load compilers/ifort/latest" "/usr/bin/cmake" | ||||
| DEBUG:root:qsub_command = qsub -pe smp 12 -l "hostname=alambix50.ipr.univ-rennes.fr" -S /bin/bash -cwd -m ae -l mem_available=1G -j y -N hibridon_intel_xeon_x5650_ifort_53894da48505892bfa05693a52312bacb12c70c9 /opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibridon/2024-10-10T12:11:44+02:00/53894da48505892bfa05693a52312bacb12c70c9/arch4_quick/intel_xeon_x5650/ifort/starbench.job "https://github.com/hibridon/hibridon" "g-raffy" "/mnt/home.ipr/graffy/.github/personal_access_tokens/bench.hibridon.cluster.ipr.univ-rennes1.fr.pat" "53894da48505892bfa05693a52312bacb12c70c9" "-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DCMAKE_Fortran_COMPILER=ifort -DBLA_VENDOR=Intel10_64lp" "ctest --output-on-failure -L ^arch4_quick$" "module load compilers/ifort/latest" "/usr/bin/cmake" | ||||
| Your job 17358 ("hibridon_intel_xeon_x5650_ifort_53894da48505892bfa05693a52312bacb12c70c9") has been submitted | ||||
| ``` | ||||
| 
 | ||||
| `hibenchonphysix` script launches two `sge` jobs for each machine type in `alambix` cluster: | ||||
| `hibridononphysix` script launches two `sge` jobs for each machine type in `alambix` cluster: | ||||
| - one job that performs a benchmark of hibridon with `gfortran` compiler | ||||
| - one job that performs a benchmark of hibridon with `ifort` compiler | ||||
| 
 | ||||
| When the job successfully completes, it puts the results of the benchmark on `alambix`'s global work directory (eg `/opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibench/2024-10-10T12:11:44+02:00/53894da48505892bfa05693a52312bacb12c70c9/arch4_quick/intel_xeon_x5650/gfortran`) | ||||
| When the job successfully completes, it puts the results of the benchmark on `alambix`'s global work directory (eg `/opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibridon/2024-10-10T12:11:44+02:00/53894da48505892bfa05693a52312bacb12c70c9/arch4_quick/intel_xeon_x5650/gfortran`) | ||||
| 
 | ||||
| 
 | ||||
| ## graph the results of benchmarks | ||||
| 
 | ||||
| `showresults` is a command line tool that graphs the results after they've been downloaded from the results directory (for example `/opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibench/2024-10-10T12:11:44+02:00`) to the hardcoded (at the moment) path `/home/graffy/work/starbench/starbench.git/usecases/ipr/hibench/results` | ||||
| `showresults` is a command line tool that graphs the results after they've been downloaded from the results directory (for example `/opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/hibridon/2024-10-10T12:11:44+02:00`) to the hardcoded (at the moment) path `/home/graffy/work/starbench/starbench.git/usecases/ipr/hibridon/results` | ||||
| 
 | ||||
| ```sh | ||||
| 20241010-16:30:54 graffy@graffy-ws2:~/work/starbench/iprbench.git$ showresults | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ from ..util import get_proxy_env_vars | |||
| from starbench.core import StarbenchResults | ||||
| 
 | ||||
| 
 | ||||
| class HiBench(IBenchmark): | ||||
| class HibrindoBenchmark(IBenchmark): | ||||
|     """Hibridon benchmark using starbench | ||||
|     """ | ||||
| 
 | ||||
|  | @ -29,7 +29,7 @@ class HiBench(IBenchmark): | |||
|         out_params.append(BenchParam('duration_max', BenchParam.Type.PARAM_TYPE_FLOAT, 'the max duration of one matrix multiplication, in seconds')) | ||||
|         out_params.append(BenchParam('num_threads_per_run', BenchParam.Type.PARAM_TYPE_INT, 'the number of cores to use by each concurrent run of the app (must be a divider of num_cores)')) | ||||
| 
 | ||||
|         super().__init__(bench_id='hibench', bench_params=bench_params, out_params=out_params, common_params=common_params) | ||||
|         super().__init__(bench_id='hibridon', bench_params=bench_params, out_params=out_params, common_params=common_params) | ||||
| 
 | ||||
|     def get_ram_requirements(self, config: BenchmarkConfig) -> int: | ||||
|         GIBIBYTE_TO_BYTE = 1024 * 1024 * 1024 | ||||
|  | @ -146,7 +146,7 @@ class HibenchResultsParser(): | |||
|     @staticmethod | ||||
|     def parse_bench_stdout(bench_stdout_file_path: Path) -> Duration: | ||||
|         """ | ||||
|         bench_stdout_file_path: eg '/home/graffy/work/starbench/starbench.git/usecases/ipr/hibench/results/53894da48505892bfa05693a52312bacb12c70c9/nh3h2_qma_long/intel_xeon_x5550/ifort/worker000/bench_stdout.txt' | ||||
|         bench_stdout_file_path: eg '/home/graffy/work/starbench/starbench.git/usecases/ipr/hibridon/results/53894da48505892bfa05693a52312bacb12c70c9/nh3h2_qma_long/intel_xeon_x5550/ifort/worker000/bench_stdout.txt' | ||||
|         """ | ||||
|         duration = None | ||||
|         with open(bench_stdout_file_path, 'rt', encoding='utf8') as f: | ||||
|  | @ -159,7 +159,7 @@ class HibenchResultsParser(): | |||
| 
 | ||||
|     @staticmethod | ||||
|     def parse_job_stdout(job_stdout_file_path: Path) -> Dict[str, Any]: | ||||
|         """ parses files such as /home/graffy/work/starbench/starbench.git/usecases/ipr/hibench/results/53894da48505892bfa05693a52312bacb12c70c9/nh3h2_qma_long/intel_xeon_e5-2660/gfortran/hibench_intel_xeon_e5-2660_gfortran_53894da48505892bfa05693a52312bacb12c70c9.o146192 | ||||
|         """ parses files such as /home/graffy/work/starbench/starbench.git/usecases/ipr/hibridon/results/53894da48505892bfa05693a52312bacb12c70c9/nh3h2_qma_long/intel_xeon_e5-2660/gfortran/hibridon_intel_xeon_e5-2660_gfortran_53894da48505892bfa05693a52312bacb12c70c9.o146192 | ||||
|         """ | ||||
|         host_fqdn = None | ||||
|         job_id = None | ||||
|  | @ -230,7 +230,7 @@ class HibenchResultsParser(): | |||
| 
 | ||||
|                         for child_path in compiler_path.iterdir(): | ||||
|                             if not child_path.is_dir(): | ||||
|                                 if re.match(r'^hibench_[^.]+\.o[0-9]+$', child_path.name): | ||||
|                                 if re.match(r'^hibridon_[^.]+\.o[0-9]+$', child_path.name): | ||||
|                                     job_stdout_file_path = child_path | ||||
|                                     job_data = HibenchResultsParser.parse_job_stdout(job_stdout_file_path) | ||||
|                                     host_fqdn = job_data['host_fqdn'] | ||||
|  | @ -274,7 +274,7 @@ def create_graph(sql_engine, per_clock: bool): | |||
| 
 | ||||
|         computation_id = 'nh3h2_qma_long' | ||||
|         commit_ids = set() | ||||
|         result = conn.execute(text('SELECT "cpu-id", "avg-duration", "commit-id" FROM hibench WHERE blas="mkl"')) | ||||
|         result = conn.execute(text('SELECT "cpu-id", "avg-duration", "commit-id" FROM hibridon WHERE blas="mkl"')) | ||||
|         for row in result: | ||||
|             print(row) | ||||
|             (cpu_id, avg_duration, commit_id) = row | ||||
|  | @ -381,16 +381,16 @@ def create_graphs(sql_engine): | |||
| 
 | ||||
| def main(): | ||||
| 
 | ||||
|     # 20240927-20:03:18 graffy@graffy-ws2:~/work/starbench/starbench.git$ rsync -va graffy@physix.ipr.univ-rennes1.fr:/opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/ ./usecases/ipr/hibench/results/ | ||||
|     hiperf = HibenchResultsParser.parse_results(Path('/home/graffy/work/starbench/starbench.git/usecases/ipr/hibench/results')) | ||||
|     hiperf.to_csv('/home/graffy/work/starbench/starbench.git/usecases/ipr/hibench/results.csv') | ||||
|     # 20240927-20:03:18 graffy@graffy-ws2:~/work/starbench/starbench.git$ rsync -va graffy@physix.ipr.univ-rennes1.fr:/opt/ipr/cluster/work.global/graffy/hibridon/benchmarks/starbench/ ./usecases/ipr/hibridon/results/ | ||||
|     hiperf = HibenchResultsParser.parse_results(Path('/home/graffy/work/starbench/starbench.git/usecases/ipr/hibridon/results')) | ||||
|     hiperf.to_csv('/home/graffy/work/starbench/starbench.git/usecases/ipr/hibridon/results.csv') | ||||
|     print(hiperf) | ||||
|     engine = create_engine('sqlite://', echo=False)  # Turning echo to True just logs SQL statements, I'd avoid parsing this logs | ||||
|     # hiperf.to_sql(name='Auto', con=engine) | ||||
|     # hiperf.reset_index().to_sql(name='hibench', con=engine)  # reset_index() is needed to preserve index column in dumped data | ||||
|     hiperf.to_sql(name='hibench', con=engine)  # reset_index() is needed to preserve index column in dumped data | ||||
|     # hiperf.reset_index().to_sql(name='hibridon', con=engine)  # reset_index() is needed to preserve index column in dumped data | ||||
|     hiperf.to_sql(name='hibridon', con=engine)  # reset_index() is needed to preserve index column in dumped data | ||||
| 
 | ||||
|     with engine.connect() as conn, open('/home/graffy/work/starbench/starbench.git/usecases/ipr/hibench/results.sql', 'wt', encoding='utf8') as sql_file: | ||||
|     with engine.connect() as conn, open('/home/graffy/work/starbench/starbench.git/usecases/ipr/hibridon/results.sql', 'wt', encoding='utf8') as sql_file: | ||||
|         for line in conn.connection.iterdump(): | ||||
|             sql_file.write(line) | ||||
|             sql_file.write('\n') | ||||
|  |  | |||
|  | @ -71,7 +71,7 @@ class ClusterNodeDb: | |||
| 
 | ||||
|     def __init__(self, cluster_id: ClusterId = 'alambix'): | ||||
|         self.cluster_nodes_defs = [] | ||||
|         include_multiqueue_nodes = False  # at the moment hibench only works on nodes that have all their cores in the same queue | ||||
|         include_multiqueue_nodes = False  # at the moment hibridon only works on nodes that have all their cores in the same queue | ||||
|         if cluster_id == 'alambix': | ||||
|             self.add_cluster_node_def(ClusterNodeDef('alambix50.ipr.univ-rennes.fr', 'intel_xeon_x5650', 2)) | ||||
|             if include_multiqueue_nodes: | ||||
|  | @ -319,7 +319,7 @@ def launch_job_for_host_group(benchmark: IBenchmark, benchmark_config: Benchmark | |||
|     } | ||||
|     logging.debug('tags_dict = %s', str(tags_dict)) | ||||
|     with importlib.resources.path('iprbench.resources', 'clusterbench-template.job') as job_template_path: | ||||
|         # job_template_path = importlib.resources..files('iprbench.resources') / 'hibench' / 'starbench-template.job' | ||||
|         # job_template_path = importlib.resources..files('iprbench.resources') / 'hibridon' / 'starbench-template.job' | ||||
|         substitute_tags(input_file_path=job_template_path, tags_dict=tags_dict, output_file_path=starbench_job_path) | ||||
|     subprocess.run(['chmod', 'a+x', starbench_job_path], check=True) | ||||
| 
 | ||||
|  | @ -334,7 +334,7 @@ def launch_job_for_host_group(benchmark: IBenchmark, benchmark_config: Benchmark | |||
|     qsub_args += ['-m', 'ae'] | ||||
|     qsub_args += ['-l', f'mem_available={ram_per_core}'] | ||||
|     qsub_args += ['-j', 'y']  # merge stderr file into stdout file for easier reading of history of events | ||||
|     qsub_args += ['-N', f'hibench_{host_group_id}'] | ||||
|     qsub_args += ['-N', f'hibridon_{host_group_id}'] | ||||
| 
 | ||||
|     logging.debug('qsub_args = %s', str(qsub_args)) | ||||
| 
 | ||||
|  | @ -346,7 +346,7 @@ def launch_job_for_host_group(benchmark: IBenchmark, benchmark_config: Benchmark | |||
| 
 | ||||
| def launch_perf_jobs(benchmark: IBenchmark, benchmark_config: BenchmarkConfig, results_dir: Path, cluster: ICluster, arch_regexp: str, resultsdb_params: ResultsDbParams, target_system_type_id: HostTypeId): | ||||
|     """ | ||||
|     results_dir: where the results of the benchmark are stored (eg $GLOBAL_WORK_DIR/graffy/benchmarks/hibench) | ||||
|     results_dir: where the results of the benchmark are stored (eg $GLOBAL_WORK_DIR/graffy/benchmarks/hibridon) | ||||
|     """ | ||||
| 
 | ||||
|     cluster_db = ClusterNodeDb() | ||||
|  | @ -371,7 +371,7 @@ def main(): | |||
|     arg_parser = argparse.ArgumentParser(description='submits a benchmark on the compute cluster (assuming this is running from a sge cluster machine where qsub command is available)', epilog=example_text, formatter_class=argparse.RawDescriptionHelpFormatter) | ||||
|     arg_parser.add_argument('--cluster-id', type=ClusterId, required=True, help='the identifier of cluster on which to submit the benchmark eg (\'dummy\', \'alambix\', etc.)') | ||||
|     arg_parser.add_argument('--benchmark-id', type=BenchmarkId, required=True, help='the benchmark id of the benchmark to perform (eg mamul1)') | ||||
|     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('--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/hibridon)') | ||||
|     arg_parser.add_argument('--config', type=str, default='cmake', help='the benchmark configuration in json format, eg {"compiler_id": "gfortran", "matrix_size": 1024}') | ||||
|     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('--resultsdb-params', type=str, required=True, help='the resultsdb configuration in json format, eg {"type": "tsv-files", "tsv_results_dir": "/tmp/toto"}') | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ from pathlib import Path | |||
| import json | ||||
| from .core import BenchmarkId, IBenchmark, ResultsDbFactory, BenchParam | ||||
| from .targethosts import DebianHost, IprClusterNode | ||||
| from .benchmarks.hibench import HiBench | ||||
| from .benchmarks.hibridon import HibridonBenchmark | ||||
| from .benchmarks.mamul1 import MaMul1 | ||||
| from .resultsdb.tsvresultsdb import TsvResultsDbCreator | ||||
| from .resultsdb.sqlresultsdb import SqliteResultsDbCreator, SqlServerResultsDbCreator | ||||
|  | @ -20,7 +20,7 @@ class BenchmarkFactory(metaclass=Singleton): | |||
| 
 | ||||
|     def create_benchmark(self, bench_id: BenchmarkId, common_params: List[BenchParam]) -> IBenchmark: | ||||
|         benchmark = { | ||||
|             'hibench': HiBench(common_params), | ||||
|             'hibridon': HibridonBenchmark(common_params), | ||||
|             'mamul1': MaMul1(common_params) | ||||
|         }[bench_id] | ||||
|         return benchmark | ||||
|  | @ -40,7 +40,7 @@ def main(): | |||
| 
 | ||||
|     arg_parser = argparse.ArgumentParser(description='executes a benchmark in a cluster job environment', epilog=example_text, formatter_class=argparse.RawDescriptionHelpFormatter) | ||||
|     arg_parser.add_argument('--benchmark-id', type=BenchmarkId, required=True, help='the benchmark id of the benchmark to perform (eg mamul1)') | ||||
|     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('--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/hibridon)') | ||||
|     arg_parser.add_argument('--config', type=str, required=True, help='the benchmark configuration in json format, eg {"compiler_id": "gfortran", "matrix_size": 1024}') | ||||
|     arg_parser.add_argument('--resultsdb-params', type=str, required=True, help='the resultsdb configuration in json format, eg {"type": "tsv-files", "tsv_results_dir": "/tmp/toto"}') | ||||
|     arg_parser.add_argument('--target-system-type-id', type=str, required=True, help='id of the operating system type to use. This is used to get the list installed packages, how to activate them, etc, eg "debian", "fr.univ-rennes.ipr.cluster-node".') | ||||
|  |  | |||
|  | @ -1 +1 @@ | |||
| __version__ = '0.0.12' | ||||
| __version__ = '0.0.13' | ||||
|  |  | |||
|  | @ -49,8 +49,8 @@ class BenchmarksTestCase(unittest.TestCase): | |||
|         } | ||||
|         test_benchmark(benchmark_id, benchmark_config, self.results_root_dir) | ||||
| 
 | ||||
|     def test_hibench(self): | ||||
|         benchmark_id = 'hibench' | ||||
|     def test_hibridon(self): | ||||
|         benchmark_id = 'hibridon' | ||||
|         benchmark_config = { | ||||
|             'fortran_compiler': 'gfortran:<default>', | ||||
|             'blas_library': '<default-libblas>:<default>', | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue