File Format Reference
This page provides a reference to the various input and file structures provided by BenchPRO.
Environment Variables
BenchPRO uses environment variables to configure paths and behaviour. Variables with prefix ‘BP_’ are user facing and editable via the setting overload mechanism detailed here. The variables with ‘BPS_’ prefix are used internally and should not be editted by the user.
Variable |
Description |
---|---|
$BPS_BIN |
BenchPRO binaries, added to $PATH |
$BPS_COLLECT |
BenchPRO’s result collection blackhole; used to cache results to be pushed to database. |
$BPS_HOME |
BenchPRO package installation directory. |
$BPS_INC |
Site directory containing examples and configuration files. |
$BPS_LOG |
Log file from package installation. |
$BPS_MODULES |
Path to BenchPRO’s modulefiles directory. |
$BPS_SYSTEM |
System label. |
$BPS_VERSION |
Version information. |
$BPS_VERSION_STR |
Version information, including build ID hash. |
$BP_HOME |
User file path [Default= $HOME/benchpro]. |
$BP_APPS |
Application install root directory. |
$BP_RESULTS |
Benchmark root directory. |
$BP_REPO |
Local file repository directory. |
User files layout
The file structure of the BenchPRO user directory is configured as follows:
./benchpro
├── bench
│ ├── config
│ └── template
├── build
│ ├── config
│ └── template
├── log
├── resources
│ └── scripts
│ └── results
└── user.ini
Input Arguments
Global settings
Global settings are defined in the file $BP_HOME/user.ini
Application config files
These config files contain parameters used to populate the application build template file, config files are broken in sections corresponding to general settings, system modules and configuration parameters.
Label |
Required? |
Description |
[general] |
||
code |
Y |
Application identifier. |
version |
Y |
Application version label, accepts x.x, x-x, or strings like ‘stable’. |
system |
N |
TACC system identifier, if left blank will use $TACC_SYSTEM. |
build_prefix |
N |
Custom build (outside of default tree). |
template |
N |
Overwrite default build template file. |
module_use |
N |
Path to be added to MODULEPATH, for using nonstandard modules. |
sched_cfg |
N |
Name of nonstandard scheduler config file to use. |
[modules] |
NOTE: user may add as many custom fields to this section as needed. |
|
compiler |
Y |
Module name of compiler, eg: ‘intel/18.0.2’ or just ‘intel’ for default. |
mpi |
Y |
Module name of MPI, eg: ‘impi/18.0.2’ or just ‘impi’ for default. |
[config] |
NOTE: user may add as many fields to this section as needed. |
|
arch |
N |
Generates architecture specific optimization flags. If left blank will use system default, set to ‘system’ to combine with ‘opt_flags’ below |
opt_flags |
N |
|
build_label |
N |
Custom build label, replaces arch default eg: skylake-xeon. Required if ‘opt_flags’ is set and ‘arch’ is not |
bin_dir |
N |
Path to executable within application directory, eg: bin, run etc. |
exe |
Y |
Name of application executable, used to check compilation was successful. |
collect_hw_stats |
N |
Runs the hardware stats collection tool after build. |
script_additions |
N |
Filename in $BP_HOME/templates, to be added to build script. |
Benchmark config file
These config files contain parameters used to populate the benchmark template script. The file structure is:
Directory structure
Directory |
Purpose |
---|---|
$BP_HOME/build |
config and template files for compiling applications. |
$BP_HOME/bench |
config and template files for running benchmarks. |
$BP_HOME/log |
Build, bench and catpure log files. |
$BP_HOME/resources |
Contains useful content including modulefiles, hardware collection and result validation scripts. |
Database Structures
Application database
Column |
Type |
Modifiers |
Storage |
---|---|---|---|
code |
character varying(50) |
not null |
extended |
version |
character varying(50) |
not null |
extended |
system |
character varying(50) |
not null |
extended |
compiler |
character varying(50) |
not null |
extended |
mpi |
character varying(50) |
not null |
extended |
modules |
character varying(200) |
not null |
extended |
opt_flags |
character varying(200) |
extended |
|
exe_file |
character varying(50) |
not null |
extended |
build_prefix |
character varying(200) |
not null |
extended |
task_id |
character varying(50) |
not null |
extended |
app_id |
character varying(50) |
not null |
extended |
build_label |
character varying(50) |
extended |
|
module_use |
character varying(100) |
extended |
|
username |
character varying(50) |
not null |
extended |
exec_mode |
character varying(100) |
not null |
extended |
bin_dir |
character varying(50) |
extended |
|
script |
character varying(50) |
extended |
|
stderr |
character varying(50) |
not null |
extended |
stdout |
character varying(50) |
not null |
extended |
elapsed_time |
integer |
plain |
|
end_time |
timestamp with time zone |
plain |
|
submit_time |
timestamp with time zone |
not null |
plain |
Results database
Column |
Type |
Modifiers |
Storage |
---|---|---|---|
username |
character varying(50) |
not null |
extended |
system |
character varying(50) |
not null |
extended |
submit_time |
timestamp with time zone |
not null |
plain |
task_id |
character varying(50) |
not null |
extended |
nodes |
integer |
not null |
plain |
ranks |
integer |
not null |
plain |
threads |
integer |
not null |
plain |
dataset |
character varying(50) |
not null |
extended |
result |
numeric(20,3) |
not null |
main |
result_unit |
character varying(50) |
not null |
extended |
resource_path |
character varying(100) |
not null |
extended |
nodelist |
character varying(1000) |
not null |
extended |
description |
character varying(100) |
not null |
extended |
elapsed_time |
integer |
plain |
|
end_time |
timestamp with time zone |
plain |
|
capture_time |
timestamp with time zone |
not null |
plain |
job_status |
character varying(100) |
not null |
extended |
app_id |
character varying(50) |
not null |
extended |
gpus |
integer |
not null |
plain |
exec_mode |
character varying(100) |
not null |
extended |