Use precompiled binaries - #145
Conversation
|
Picking up on the path discussion in #132, what's your suggestion @pardallio? |
|
For cy50, compilation is done for a specific architecture that can be uniquely identified by a set of arch directories present in the bundle folder of IAL. these have a format like so a given installation could be uniquely identified on atos by For each arch there is also an associated |
|
OK, and how do we decide to pick up e.g. |
when creating the bundle it is possible to specify the directory where the architectures can be fetched from something like Ideally, this |
|
Thanks, but the end result is not known at configuration time and this is a bit challenging to handle. I'll try to do something that makes it easy to swap between pre and inline compiled binaries and we'll see how far we get. Another thing to consider if we should allow the test-runner to run on precompiled binaries as well, as an option or default. Any opinions @dhaumont? Should be possible to achieve with some tweaking in |
How (where) do we configure the compilation to pick gnu instead of intel for e.g. the hpc2020 case? |
|
From tactus you can specify the arch directory in the config file in the Setting the when compiling manually you doing by passing |
|
With the changes in The run is under |
|
This is an old issue with fckit that we've never been able to solve. When doing two installations at the same time, one of the fckit venvs fails to install sometimes. We see this issue a lot in the github actions. |
|
I believe it's because it tries to build on the source folder of the bunlde (which is the same for SP and DP). if you inspect @dhaumont, i'll create an issue on fckit github ecmwf/fckit#101 |
|
I have created a PR to fix it (ecmwf/fckit#102) but it will likely take a long time to go in to fckit. |
| if self.precision == "R32": | ||
| self.prec_arg = "--without-double-precision" | ||
|
|
||
| def get_install_subpath(self): |
There was a problem hiding this comment.
Could you add a unit test for get_install_subpath ?
Thank you for fixing this, it's bugging us since the beginning of CMake use. |
dhaumont
left a comment
There was a problem hiding this comment.
Added a few comments and questions. Please also don't forget to update the changelog
| arch = default_link.resolve() | ||
| else: | ||
| arch = arch_dir | ||
| top = arch_dir.parts[-1] |
There was a problem hiding this comment.
This code is complicated to understand.
Can you comment it ?
| builddir = f"{compile_dir}/build/{self.precision}" | ||
| local_bindir = f"@CASEDIR@/install/{self.precision}" | ||
| install_subpath = self.get_install_subpath() | ||
| bindir = f"{compile_dir}/install/{self.precision}/{install_subpath}" |
There was a problem hiding this comment.
How are the binary compiled and deployed ?
Describe your changes
Implements the usage of precompiled binaires for CY50t2.
< Please also include relevant motivation and context. >
< List any dependencies that are required for this change. >
Type of change
Please delete options that are not relevant.
Checklist before requesting a review
Testing
atos_bologna.tomlconfiguration in the latest version of Tactus-test-runnerlumi.tomlconfiguration in the latest version of Tactus-test-runnerFor further information see the development guide
Code quality
pullwith--rebaseoption if possible).poetryafter the changes and runsChecklist for reviewers
Each PR comes with its own improvements and flaws. The reviewer should check the following:
Author checklist after completed review
reflecting type of change, for example "bug fixes", add section where
missing)
Checklist for assignees
Tag possible reviewers
You can @-tag people to review this PR in addition to formal review requests.