Para ejecutar el benchmark HPL, se necesita del ejecutable //xhpl// y el archivo de configuración //HPL.dat//.
**NOTA: es necesario "tunear" el HPL.dat, se puede usar esta esta [[https://www.advancedclustering.com/act_kb/tune-hpl-dat-file/|página]] para ayudar a obtenerlo. Pero lo mejor es poder conseguir alguna referencia de lo que se haya hecho antes de entregarnos clementina.**
Todo está almacenado en **///data/shared/apps/hpl//**
[phsieh@snmgt01 ~]$ ll /data/shared/apps/hpl/
total 2
drwxr-xr-x 3 phsieh qadmin 4096 Sep 26 13:45 cpu
drwxr-xr-x 3 phsieh qadmin 4096 Sep 26 13:45 cpu_2
drwxr-xr-x 4 phsieh qadmin 4096 Sep 26 13:45 hpl-build
[phsieh@snmgt01 ~]$ ll /data/shared/apps/hpl/hpl-build/
total 24513
drwxr-xr-x 18 phsieh qadmin 16384 Sep 26 13:47 OpenBLAS-0.3.26
-rw-r--r-- 1 phsieh qadmin 24404912 Sep 26 13:45 OpenBLAS-0.3.26.tar.gz
drwxr-xr-x 11 phsieh qadmin 4096 Sep 26 13:45 hpl-2.3
-rw-r--r-- 1 phsieh qadmin 660871 Sep 26 13:45 hpl-2.3.tar.gz
[phsieh@snmgt01 ~]$ ll /data/shared/apps/hpl/cpu
total 467
-rw-r--r-- 1 phsieh qadmin 1454 Sep 26 13:45 HPL.dat
-rw-r--r-- 1 phsieh qadmin 1019 Sep 26 13:45 hpl_benchmark
-rwxr-xr-x 1 phsieh qadmin 297 Sep 26 13:45 hpl_benchmark.sh
-rw-r--r-- 1 phsieh qadmin 2388 Sep 26 13:45 hpl_benchmark_tmp
drwxr-xr-x 2 phsieh qadmin 4096 Sep 26 13:45 resultados
-rwxr-xr-x 1 phsieh qadmin 461528 Sep 26 13:45 xhpl
[phsieh@snmgt01 ~]$ ll /data/shared/apps/hpl/cpu_2/
total 468
-rw-r--r-- 1 phsieh qadmin 1454 Sep 26 13:45 HPL.dat
-rwxr-xr-x 1 phsieh qadmin 297 Sep 26 13:45 hpl_benchmark.sh
-rw-r--r-- 1 phsieh qadmin 0 Sep 26 13:45 hpl_benchmark_JobId539.err
-rw-r--r-- 1 phsieh qadmin 2876 Sep 26 13:45 hpl_benchmark_JobId539.out
-rw-r--r-- 1 phsieh qadmin 0 Sep 26 13:45 hpl_benchmark_JobId540.err
-rw-r--r-- 1 phsieh qadmin 2876 Sep 26 13:45 hpl_benchmark_JobId540.out
-rw-r--r-- 1 phsieh qadmin 1085 Sep 26 13:45 hpl_benchmark_mpirun
-rw-r--r-- 1 phsieh qadmin 1019 Sep 26 13:45 hpl_benchmark_srun
drwxr-xr-x 2 phsieh qadmin 4096 Sep 26 13:45 resultados
-rwxr-xr-x 1 phsieh qadmin 461528 Sep 26 13:45 xhpl
__El detalle de las carpetas y archivos son:__
|Carpeta|Descripción|
|cpu|hpl para ejecutar en cpu en 1 unico nodo|
|cpu_2|pruebas de hpl para ejecutar en cpu de a 2 nodos|
|hpl-build|carpeta con los archivos para compilar hpl|
|Archivo|Descripción|
|HPL.dat|Archivo con los parámetros a utilizar para ejecutar el benchmark|
|hpl_benchmark|Archivo para ejecutar el benchmark por sbatch. La ejecución se realiza desde el home del usuario: se ejecuta el benchmark utilizando //HPL.dat// y //xhpl// desde el home del usuario|
|hpl_benchmark.sh|Script para ejecutar el benchmark por sbatch con modificación, a conveniencia, del nombre del archivo //.out// y //.err//|
|hpl_benchmark_tmp|Archivo para ejecutar el benchmark por sbatch. La ejecución se realiza en el nodo: se ejecuta el benchmark utilizando HPL.dat y xhpl luego de ser copiado en ///tmp// del nodo asignado|
|xhpl|ejecutable del benchmark|
__Forma de ejecución via slurm:__
* En el archivo //hpl_benchmark// y/o //hpl_benchmark_tmp// es necesario modificar la línea donde está definido el --nodelist=cnode_to_replace para definir en cuál nodo se quiere realizar el trabajo
* Se puede lanzar el job ejecutando cualquiera de los siguientes comandos:
sbatch hpl_benchmark
sbatch hpl_benchmark_tmp
hpl_benchmark.sh
Con este último, se generan los siguientes archivos de salida:
** hpl_benchmark_YYYYMMDD_NNNNN.out
** hpl_benchmark_YYYYMMDD_NNNNN.err
donde _YYYYMMDD_ es la fecha que se empezó el job(luego de ser asignado a un nodo) y _NNNNN_ es el JobId asignado por slurm.
__Forma de ejecución sin slurm:__
./xhpl
__Referencias:__
* https://www.mgaillard.fr/2022/08/27/benchmark-with-hpl.html
* https://github.com/matthew-li/lbnl_hpl_doc
* https://www.netlib.org/benchmark/hpl/tuning.html
* https://www.advancedclustering.com/act_kb/tune-hpl-dat-file/