Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feat] Build configuration incrementally by allowing to combine multiple configuration files #2557

Merged
merged 61 commits into from
Nov 21, 2022
Merged
Show file tree
Hide file tree
Changes from 60 commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
5b91cfc
Allow multiple config files
ekouts Jul 4, 2022
444842b
Merge branch 'master' of https://github.com/reframe-hpc/reframe into …
ekouts Jul 4, 2022
8d267da
Update runreport schema
ekouts Jul 12, 2022
ab9b98c
Merge branch 'master' of https://github.com/reframe-hpc/reframe into …
ekouts Jul 12, 2022
7fcfdca
Address PR comments
ekouts Jul 25, 2022
eff3c83
Remove unused imports
ekouts Aug 8, 2022
8cd2703
Allow multiple config files from envvar
ekouts Aug 8, 2022
c718a76
Merge branch 'master' of https://github.com/reframe-hpc/reframe into …
ekouts Aug 8, 2022
9ccc45e
Move setting in config directory
ekouts Aug 8, 2022
dc0bd27
Merge branch 'master' of https://github.com/reframe-hpc/reframe into …
ekouts Aug 9, 2022
2a3a96c
Add unittests for multiple configurations
ekouts Aug 17, 2022
6df6f6c
Add RFM_CONFIG_PATH
ekouts Aug 17, 2022
94493dd
Update configuration docs
ekouts Aug 17, 2022
d836159
Merge branch 'master' of https://github.com/reframe-hpc/reframe into …
ekouts Sep 6, 2022
fa7edca
Address PR comments
ekouts Sep 7, 2022
7514fa1
Merge branch 'master' of https://github.com/reframe-hpc/reframe into …
ekouts Sep 7, 2022
4b57c15
Update assertions in test_load_multiple_configs
ekouts Sep 7, 2022
29fe80d
Address PR comments
ekouts Sep 9, 2022
15087b4
Update config file format in setup info
ekouts Sep 9, 2022
0e50123
Update debug message
ekouts Sep 9, 2022
ca66dec
Merge branch 'master' of https://github.com/reframe-hpc/reframe into …
ekouts Sep 9, 2022
99a862b
Simplify string join
ekouts Sep 16, 2022
ca5c5dd
Update docs
vkarak Sep 16, 2022
e2b5f02
Address PR comments
ekouts Sep 26, 2022
8f575be
Merge branch 'master' of https://github.com/reframe-hpc/reframe into …
ekouts Sep 26, 2022
9639344
Add more details for configuration in the manpages
ekouts Sep 26, 2022
f7f7fdc
Merge branch 'feat/configuration_scopes' of github.com:ekouts/reframe…
ekouts Sep 26, 2022
4656b7c
Fix unittests
ekouts Sep 26, 2022
92c6d55
Revert --config-files to --config-file
ekouts Sep 29, 2022
afabf46
Add versionchanged in --config-file
ekouts Sep 29, 2022
6eabfc6
Use RFM_CONFIG_PATH in tutorial
ekouts Oct 4, 2022
c35c223
Merge branch 'master' of https://github.com/reframe-hpc/reframe into …
ekouts Oct 4, 2022
115b4f9
Merge branch 'feat/improve-messages' into feat/configuration_scopes
ekouts Oct 5, 2022
936bb36
Remove file
ekouts Oct 6, 2022
171b1a5
Merge branch 'feat/improve-messages' of github.com:vkarak/reframe int…
ekouts Oct 7, 2022
9a4b68a
Merge branch 'feat/improve-messages' of github.com:vkarak/reframe int…
ekouts Oct 7, 2022
0c01d09
Add remote listings
ekouts Oct 7, 2022
9722262
Merge branch 'feat/improve-messages' of github.com:vkarak/reframe int…
ekouts Oct 8, 2022
c460974
Merge branch 'master' of https://github.com/reframe-hpc/reframe into …
ekouts Oct 8, 2022
eea1968
Fix typo
ekouts Oct 8, 2022
a2e9e8e
Use RFM_CONFIG_FILES and update docs
vkarak Oct 8, 2022
22420c5
Update tutorial
vkarak Oct 8, 2022
4c6756a
Add unit tests to expose corner cases
vkarak Oct 9, 2022
8963310
Merge branch 'master' of https://github.com/reframe-hpc/reframe into …
ekouts Oct 21, 2022
034b867
Validate system and partition names are unique
ekouts Oct 21, 2022
2ecea03
Fix unittests
ekouts Oct 21, 2022
4271968
Merge branch 'feat/configuration_scopes' of github.com:ekouts/reframe…
ekouts Oct 25, 2022
5ea6b7a
Enhance how multiple configuration files are handled
vkarak Nov 5, 2022
2c403c0
Update documentation + cleanup
vkarak Nov 12, 2022
5b8dcc4
Adapt tutorial CI script + CSCS CI config
vkarak Nov 12, 2022
095c64b
Fix build system tutorial failure
vkarak Nov 14, 2022
375836d
Update daint listings
ekouts Nov 15, 2022
157783f
Update tutorial Dockerfile
vkarak Nov 15, 2022
640649c
Revert change in `hello2.py`
vkarak Nov 15, 2022
6cd6784
Add cont platform and resources in daint config
ekouts Nov 17, 2022
7f9743f
Patch tutorial for daint
ekouts Nov 17, 2022
f60456f
Merge branch 'master' into feat/configuration_scopes
vkarak Nov 18, 2022
82f0314
Fix tutorial CI
vkarak Nov 18, 2022
c2ec2a2
Create an extended tutorial config that runs all examples
vkarak Nov 19, 2022
f070ab3
Add resources in mc partition
ekouts Nov 21, 2022
83b751b
Merge branch 'master' into feat/configuration_scopes
ekouts Nov 21, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion ci-scripts/ci-runner.bash
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ checked_exec()
run_tutorial_checks()
{
export RFM_AUTODETECT_XTHOSTNAME=1
cmd="./bin/reframe -C tutorials/config/settings.py -J account=jenscscs \
cmd="./bin/reframe -C tutorials/config/daint_ext.py -J account=jenscscs \
--save-log-files --flex-alloc-nodes=2 -r -x HelloThreadedExtendedTest|BZip2.*Check $@"
echo "[INFO] Running tutorial checks with \`$cmd'"
checked_exec $cmd
Expand Down Expand Up @@ -148,6 +148,11 @@ elif [ $CI_TUTORIAL -eq 1 ]; then
tutorialchecks_path="${tutorialchecks_path} -c ${check}"
done

if [[ $(hostname) =~ daint ]]; then
echo "[INFO] Applying tutorial patch for daint"
patch -s -p0 < ci-scripts/tutorials.patch
fi

echo "[INFO] Modified tutorial checks"
echo ${tutorialchecks_path}
for i in ${!invocations[@]}; do
Expand Down
2 changes: 1 addition & 1 deletion ci-scripts/dockerfiles/tutorials.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ RUN echo '. /usr/local/lmod/lmod/init/profile && . /home/rfmuser/spack/share/spa

ENV BASH_ENV /home/rfmuser/setup.sh

CMD ["/bin/bash", "-c", "./bin/reframe -r -C tutorials/config/settings.py -R -c tutorials/build_systems --system tutorials-docker"]
CMD ["/bin/bash", "-c", "./bin/reframe -r -C tutorials/config/lmodsys.py -R -c tutorials/build_systems"]
68 changes: 68 additions & 0 deletions ci-scripts/tutorials.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
diff -Nru tutorials.orig/advanced/affinity/affinity.py tutorials/advanced/affinity/affinity.py
--- tutorials.orig/advanced/affinity/affinity.py 2022-11-17 19:13:28.000000000 +0100
+++ tutorials/advanced/affinity/affinity.py 2022-11-17 19:12:26.000000000 +0100
@@ -26,3 +26,11 @@
@sanity_function
def validate_test(self):
return sn.assert_found(r'CPU affinity', self.stdout)
+
+ @run_before('compile')
+ def prgenv_nvidia_workaround(self):
+ ce = self.current_environ.name
+ if ce == 'nvidia':
+ self.build_system.cppflags += [
+ '-D__GCC_ATOMIC_TEST_AND_SET_TRUEVAL'
+ ]
diff -Nru tutorials.orig/basics/hello/hello2.py tutorials/basics/hello/hello2.py
--- tutorials.orig/basics/hello/hello2.py 2022-11-17 19:13:28.000000000 +0100
+++ tutorials/basics/hello/hello2.py 2022-11-17 19:12:26.000000000 +0100
@@ -13,6 +13,7 @@

valid_systems = ['*']
valid_prog_environs = ['*']
+ build_system = 'SingleSource'

@run_before('compile')
def set_sourcepath(self):
@@ -21,3 +22,11 @@
@sanity_function
def assert_hello(self):
return sn.assert_found(r'Hello, World\!', self.stdout)
+
+ @run_before('compile')
+ def prgenv_nvidia_workaround(self):
+ ce = self.current_environ.name
+ if ce == 'nvidia' and self.lang=='cpp':
+ self.build_system.cppflags = [
+ '-D__GCC_ATOMIC_TEST_AND_SET_TRUEVAL'
+ ]
diff -Nru tutorials.orig/basics/hellomp/hellomp1.py tutorials/basics/hellomp/hellomp1.py
--- tutorials.orig/basics/hellomp/hellomp1.py 2022-11-17 19:13:28.000000000 +0100
+++ tutorials/basics/hellomp/hellomp1.py 2022-11-17 19:12:26.000000000 +0100
@@ -25,3 +25,11 @@
@sanity_function
def assert_hello(self):
return sn.assert_found(r'Hello, World\!', self.stdout)
+
+ @run_before('compile')
+ def prgenv_nvidia_workaround(self):
+ ce = self.current_environ.name
+ if ce == 'nvidia':
+ self.build_system.cppflags += [
+ '-D__GCC_ATOMIC_TEST_AND_SET_TRUEVAL'
+ ]
diff -Nru tutorials.orig/basics/hellomp/hellomp3.py tutorials/basics/hellomp/hellomp3.py
--- tutorials.orig/basics/hellomp/hellomp3.py 2022-11-17 19:13:28.000000000 +0100
+++ tutorials/basics/hellomp/hellomp3.py 2022-11-17 19:12:26.000000000 +0100
@@ -28,3 +28,11 @@
num_messages = sn.len(sn.findall(r'\[\s?\d+\] Hello, World\!',
self.stdout))
return sn.assert_eq(num_messages, 16)
+
+ @run_before('compile')
+ def prgenv_nvidia_workaround(self):
+ ce = self.current_environ.name
+ if ce == 'nvidia':
+ self.build_system.cppflags += [
+ '-D__GCC_ATOMIC_TEST_AND_SET_TRUEVAL'
+ ]
59 changes: 0 additions & 59 deletions config/cscs-ci.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,65 +143,6 @@
}
]
},
{
'name': 'generic',
'descr': 'Generic example system',
'partitions': [
{
'name': 'default',
'scheduler': 'local',
'environs': [
'builtin'
],
'descr': 'Login nodes',
'launcher': 'local'
}
],
'hostnames': ['.*']
}
],
'environments': [
{
'name': 'builtin',
'cc': 'cc',
'cxx': '',
'ftn': ''
},
],
'logging': [
{
'handlers': [
{
'type': 'file',
'level': 'debug2',
'format': '[%(asctime)s] %(levelname)s: %(check_info)s: %(message)s', # noqa: E501
'append': False
},
{
'type': 'stream',
'name': 'stdout',
'level': 'info',
'format': '%(message)s'
},
{
'type': 'file',
'name': 'reframe.out',
'level': 'info',
'format': '%(message)s',
'append': False
}
],
'handlers_perflog': [
{
'type': 'filelog',
'prefix': '%(check_system)s/%(check_partition)s',
'level': 'info',
'format': '%(check_job_completion_time)s|reframe %(version)s|%(check_info)s|jobid=%(check_jobid)s|num_tasks=%(check_num_tasks)s|%(check_perf_var)s=%(check_perf_value)s|ref=%(check_perf_ref)s (l=%(check_perf_lower_thres)s, u=%(check_perf_upper_thres)s)|%(check_perf_unit)s', # noqa: E501
'datefmt': '%FT%T%:z',
'append': True
}
]
}
],
'general': [
{
Expand Down
Loading