Skip to content

Commit e2be277

Browse files
committed
Merge branch 'develop' of https://github.com/reframe-hpc/reframe into feat/maint_nodes
2 parents c0d9fb3 + fd7068d commit e2be277

File tree

10 files changed

+47
-16
lines changed

10 files changed

+47
-16
lines changed

docs/config_reference.rst

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1141,8 +1141,24 @@ You may define different logger objects per system but *not* per partition.
11411141
:default: :obj:`False`
11421142

11431143
Emit a separate log record for each performance variable.
1144+
11441145
Set this option to :obj:`True` if you want to keep compatibility with the performance logging prior to ReFrame 4.0.
11451146

1147+
.. deprecated:: 4.9
1148+
1149+
Please use :attr:`~config.logging.perflog_multiline` instead.
1150+
1151+
1152+
.. py:attribute:: logging.perflog_multiline
1153+
1154+
:required: No
1155+
:default: :obj:`False`
1156+
1157+
Emit a separate log record for each performance variable.
1158+
1159+
.. versionadded:: 4.9
1160+
1161+
11461162
.. py:attribute:: logging.target_systems
11471163
11481164
:required: No

docs/tutorial.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2072,6 +2072,10 @@ Let's walk briefly through the most important parts of its configuration:
20722072

20732073
Let's rerun our STREAM example using the new configuration:
20742074

2075+
.. note::
2076+
2077+
ReFrame will now add entries in the perflogs for all tests, not only for performance tests.
2078+
20752079
.. code-block:: bash
20762080
:caption: Run with the Docker compose setup.
20772081

hpctestlib/microbenchmarks/gpu/dgemm/src/makefile.hip

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ RSMI_ROOT?=/opt/rocm/rocm_smi
44
all: dgemm sgemm
55

66
dgemm:
7-
hipcc -O3 xgemm.cu -o $@.x -DTARGET_HIP -DGEMM_TYPE=double -DXBLAS_GEMM=XblasDgemm ${CXXFLAGS} -std=c++14 -I${ROCM_ROOT} -I${RSMI_ROOT}/include -lnuma -lrocm_smi64 -lrocblas
7+
hipcc -O3 xgemm.cu -o $@.x -DTARGET_HIP -DGEMM_TYPE=double -DXBLAS_GEMM=XblasDgemm ${CXXFLAGS} -std=c++14 -I${ROCM_ROOT}/include/rocblas/ -I${RSMI_ROOT}/include -lnuma -lrocm_smi64 -lrocblas -lpthread
88

99
sgemm:
10-
hipcc -O3 xgemm.cu -o $@.x -DTARGET_HIP -DGEMM_TYPE=float -DXBLAS_GEMM=XblasSgemm ${CXXFLAGS} -std=c++14 -I${ROCM_ROOT} -I${RSMI_ROOT}/include -lnuma -lrocm_smi64 -lrocblas
10+
hipcc -O3 xgemm.cu -o $@.x -DTARGET_HIP -DGEMM_TYPE=float -DXBLAS_GEMM=XblasSgemm ${CXXFLAGS} -std=c++14 -I${ROCM_ROOT}/include/rocblas/ -I${RSMI_ROOT}/include -lnuma -lrocm_smi64 -lrocblas -lpthread

hpctestlib/microbenchmarks/gpu/src/common/Xdevice/hip/smi.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ void Smi::setCpuAffinity(int id)
3333
{
3434
checkGpuIdIsSensible(id);
3535

36-
uint32_t numa_node;
36+
int32_t numa_node;
3737
rsmiCheck( rsmi_topo_numa_affinity_get( id, &numa_node) );
3838
numa_run_on_node(numa_node);
3939
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
RSMI_ROOT?=/opt/rocm/rocm_smi
2+
ROCM_ROOT?=/opt/rocm/
23

34
gpu_burn:
4-
hipcc -O3 $@.cu -o $@.x -DTARGET_HIP ${CXXFLAGS} -std=c++14 -I${RSMI_ROOT}/include -lnuma -lrocm_smi64 -lrocblas -pthreads
5+
hipcc -O3 $@.cu -o $@.x -DTARGET_HIP ${CXXFLAGS} -std=c++14 -I${ROCM_ROOT}/include/rocblas/ -I${RSMI_ROOT}/include -lnuma -lrocm_smi64 -lrocblas -pthreads

reframe/core/logging.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -933,8 +933,8 @@ def _update_check_extras(self):
933933
self.extra['check_job_completion_time_unix'], r'%FT%T%:z'
934934
)
935935

936-
def log_performance(self, level, task, msg=None, multiline=False):
937-
if self.check is None or not self.check.is_performance_check():
936+
def log_result(self, level, task, msg=None, multiline=False):
937+
if self.check is None:
938938
return
939939

940940
_, part, env = task.testcase
@@ -951,7 +951,7 @@ def log_performance(self, level, task, msg=None, multiline=False):
951951
if msg is None:
952952
msg = 'sent by ' + self.extra['osuser']
953953

954-
if multiline:
954+
if self.check.is_performance_check() and multiline:
955955
# Log one record for each performance variable
956956
for var, info in self.check.perfvalues.items():
957957
val, ref, lower, upper, unit, result = info

reframe/frontend/cli.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -938,6 +938,13 @@ def restrict_logging():
938938
site_config = config.load_config(*conf_files)
939939
site_config.validate()
940940

941+
# Issue deprecation warnings
942+
if site_config.get('logging/0/perflog_compat'):
943+
printer.warning(
944+
'the `perflog_compat` configuration option is deprecated; '
945+
'please use `perflog_multiline` instead'
946+
)
947+
941948
if options.autodetect_method:
942949
printer.warning('RFM_AUTODETECT_METHOD is deprecated; '
943950
'please use RFM_AUTODETECT_METHODS instead')

reframe/frontend/executors/__init__.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -232,9 +232,9 @@ def __init__(self, case, listeners=None, timeout=None):
232232

233233
# Performance logging
234234
self._perflogger = logging.null_logger
235-
self._perflog_compat = runtime.runtime().get_option(
236-
'logging/0/perflog_compat'
237-
)
235+
self._perflog_multiline = runtime.runtime().get_option(
236+
'logging/0/perflog_multiline'
237+
) or runtime.runtime().get_option('logging/0/perflog_compat')
238238

239239
def duration(self, phase):
240240
# Treat pseudo-phases first
@@ -525,8 +525,8 @@ def finalize(self):
525525
self._current_stage = 'finalize'
526526
self._notify_listeners('on_task_success')
527527
try:
528-
self._perflogger.log_performance(logging.INFO, self,
529-
multiline=self._perflog_compat)
528+
self._perflogger.log_result(logging.INFO, self,
529+
multiline=self._perflog_multiline)
530530
except LoggingError as e:
531531
getlogger().warning(
532532
f'could not log performance data for {self.testcase}: {e}'
@@ -550,8 +550,8 @@ def _wait_job(job):
550550
self._exc_info = exc_info or sys.exc_info()
551551
self._notify_listeners(callback)
552552
try:
553-
self._perflogger.log_performance(logging.INFO, self,
554-
multiline=self._perflog_compat)
553+
self._perflogger.log_result(logging.INFO, self,
554+
multiline=self._perflog_multiline)
555555
except LoggingError as e:
556556
getlogger().warning(
557557
f'could not log performance data for {self.testcase}: {e}'

reframe/schemas/config.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,7 @@
440440
"properties": {
441441
"level": {"$ref": "#/defs/loglevel"},
442442
"perflog_compat": {"type": "boolean"},
443+
"perflog_multiline": {"type": "boolean"},
443444
"handlers": {
444445
"type": "array",
445446
"items": {
@@ -621,6 +622,7 @@
621622
"general/verbose": 0,
622623
"logging/level": "undefined",
623624
"logging/perflog_compat": false,
625+
"logging/perflog_multiline": false,
624626
"logging/target_systems": ["*"],
625627
"logging/handlers": [],
626628
"logging/handlers_perflog": [],

requirements.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
archspec==0.2.5
22
argcomplete==3.1.2; python_version < '3.8'
3-
argcomplete==3.6.2; python_version >= '3.8'
3+
argcomplete==3.6.3; python_version >= '3.8'
44
ClusterShell==1.9.3
55
fasteners==0.19; python_version < '3.10'
66
fasteners==0.20; python_version >= '3.10'
@@ -20,7 +20,8 @@ pytest-parallel==0.1.1
2020
pytest-rerunfailures==10.3; python_version == '3.6'
2121
pytest-rerunfailures==13.0; python_version == '3.7'
2222
pytest-rerunfailures==14.0; python_version == '3.8'
23-
pytest-rerunfailures==16.0.1; python_version >= '3.9'
23+
pytest-rerunfailures==16.0.1; python_version == '3.9'
24+
pytest-rerunfailures==16.1; python_version >= '3.10'
2425
PyYAML==6.0.1; python_version < '3.8'
2526
PyYAML==6.0.3; python_version >= '3.8'
2627
requests==2.27.1; python_version == '3.6'

0 commit comments

Comments
 (0)