Organisation of repository
Core
The source code of benchmark tests can be found in the
apps/
folder. This folder is divided into three sub-folderslevel0/
,level1/
andlevel2/
. These folders are further sub-divided where each benchmark test is placed into a folder named after it. Inside each benchmark folder, we typically find three different files namely,reframe_<testname>.py
,README.md
andTESTNAME.ipynb
, where<testname>
is the name of the benchmark. The logic of the test is included inreframe_<testname>.py
, details about the documentation can be found inREADME.md
and finally,TESTNAME.ipynb
can be used to plot and tabulate benchmark results.All the configuration related files are placed in
config/
folder and they are imported intoreframe_config.py
file. We find two sub-folders inconfig/
folder namely,systems/
andenvirons/
. All the system and partitions are defined insystems/
folder and environments are defined inenvirons/
folder. We keep one file for a given platform and define all the partitions of that platform in that file. Similarly, place a environment file for a given test and define all the environments for that test in the file.All the utility functions and extra classes defined out of ReFrame are placed in
modules/
folder.ReFrame tests use topological information of the platforms like number of sockets, cores, etc. Topological information of different platforms are placed in
topologies/
folder. These files are imported and added during configuration of system partitions.
Documentation
All the documentation is provided in the docs/
folder. The sources can be found at docs/src/content/
folder where each section of documentation has a folder. Within each folder, rst
files can be found that contain core documentation.
Misc
To deploy software stack using Spack, the bootstrap script is provided in
spack/
folder. There is aREADME
file in the folder with the instructions on how to use the bootstrap script.The folder
perflogs/
contain all the performance metrics that are extracted for different benchmarks for different systems and partitions. These logs are used in plotting and tabulating the performance data in the Jupyter notebooks for each test.The folder
helloworld/
contains a simple ReFrame test taken from ReFrame documentation demonstrating the use case of its framework.The folder
.ci/
contains all the CI related files. It includes dockerfile to build image and all the auxiliary files used inside docker image.