diff --git a/docs/config_reference.rst b/docs/config_reference.rst index cd7d8e510..5b7be4138 100644 --- a/docs/config_reference.rst +++ b/docs/config_reference.rst @@ -639,12 +639,19 @@ System Partition Configuration In case of errors during auto-detection, ReFrame will simply issue a warning and continue. + .. note:: + + The directory prefix for storing topology information is configurable through the :attr:`~config.general.topology_prefix` configuration option. + .. versionadded:: 3.5.0 .. versionchanged:: 3.7.0 ReFrame is now able to detect the processor information automatically. + .. versionchanged:: 4.7 + Directory prefix for topology files is now configurable. + .. py:attribute:: systems.partitions.devices @@ -1857,6 +1864,16 @@ General Configuration +.. py:attribute:: general.topology_prefix + + :required: No + :default: ``"${HOME}/.reframe/topology"`` + + Directory prefix for storing the auto-detected processor topology. + + .. versionadded:: 4.7 + + .. py:attribute:: general.trap_job_errors :required: No @@ -1866,7 +1883,6 @@ General Configuration .. versionadded:: 3.2 - .. py:attribute:: general.keep_stage_files :required: No diff --git a/reframe/frontend/autodetect.py b/reframe/frontend/autodetect.py index e78ba24cb..6378155fb 100644 --- a/reframe/frontend/autodetect.py +++ b/reframe/frontend/autodetect.py @@ -204,7 +204,7 @@ def _emit_custom_script(job, env, commands): def detect_topology(): rt = runtime.runtime() detect_remote_systems = rt.get_option('general/0/remote_detect') - topo_prefix = os.path.join(os.getenv('HOME'), '.reframe/topology') + topo_prefix = osext.expandvars(rt.get_option('general/0/topology_prefix')) for part in rt.system.partitions: getlogger().debug(f'detecting topology info for {part.fullname}') found_procinfo = False diff --git a/reframe/schemas/config.json b/reframe/schemas/config.json index 2350ec4fb..c1684adc8 100644 --- a/reframe/schemas/config.json +++ b/reframe/schemas/config.json @@ -601,6 +601,7 @@ "general/save_log_files": false, "general/table_format": "pretty", "general/target_systems": ["*"], + "general/topology_prefix": "${HOME}/.reframe/topology", "general/timestamp_dirs": "%Y%m%dT%H%M%S%z", "general/trap_job_errors": false, "general/unload_modules": [],