Open ilectra opened 1 year ago
@t-young31 has done more work on this in the DiRAC project than I had realised. As far as I can understand, he has already written a lot of the code needed for parsing the perflogs and plotting data for different use cases. His feedback was
Need to save spack spec as well. There's a hash for every spec, save it in the perflog as a field, as well as the spec in a separate file (name same as hash for simplicity) which will be updated only when something changes.
Different ways to print results in the perflog:
check_...
in the logging.handlers_perflog.format.
check_info
variable is a message reporting the test name, the current partition and the current programming environment that the test is currently executing on, according to the docscheck_variables
dictionary in the above list (changed to check_env_vars
in ReFrame version 4.0)check_display_name
and other variants of check_...name...
, and see what is printed out.After some tests, to see what's printed to the perflog for parameters and various name
s, the content of perflogs/myriad/compute-node/SombreroBenchmark_One_5.log
is
2023-03-07T16:41:24|reframe 3.12.0|SombreroBenchmark %param_test1=One %param_test2=5 @myriad:compute-node+default|jobid=3420395|flops=1.07|num_tasks=1|num_cpus_per_task=1|num_tasks_per_node=1|ref=1|lower=-0.2|upper=null|units=Gflops/seconds|spack_spec=sombrero@2021-08-16|name=SombreroBenchmark_One_5|display_name=SombreroBenchmark %param_test1=One %param_test2=5|short_name=null|unique_name=SombreroBenchmark_One_5|descr=SombreroBenchmark %param_test1=One %param_test2=5|variables={"OMP_NUM_THREADS": "1"}|tags=
Note: This naming scheme changes with ReFrame version 4.0, see https://reframe-hpc.readthedocs.io/en/stable/manpage.html#test-naming-scheme
For posterity, some of Tom's DiRAC work is in Lokesh's repo - the reading in the perflog part.
Created a bunch of sub-issues to this one: #104 , #105 , #106, #107 , #108, #109 , #110
When a benchmark is run, it generates a number of outputs: perflogs and environment logs. Those files have to be moved to an appropriate location (see #16 ), and then we'd like to provide some generic tools/scripts for the users to process them and produce tables and plots. The intention is for the scripts provided in this repository to be quite basic, and the user would clone/fork it and add their own. Scripts needed:
sysname/partition/environment/testname
- see https://github.com/ukri-excalibur/excalibur-tests/blob/953bc6a3a7084737f0869e272306328020a4eba4/modules/utils.py#L90 The system name and partition are needed variables for reports and plots, and thetestname
includes the name of the app and the parameters used to run the specific benchmark.prefix
, just aboveformat
in thehandlers_perflog
block - see below for details and links.