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

Ship preCICE through Julia? #46

Open
uekerman opened this issue Nov 4, 2022 · 3 comments
Open

Ship preCICE through Julia? #46

uekerman opened this issue Nov 4, 2022 · 3 comments
Assignees
Labels
help wanted Extra attention is needed question Further information is requested

Comments

@uekerman
Copy link
Member

uekerman commented Nov 4, 2022

This should in theory be possible through BinaryBuilder, especially for CMake projects.
Open problem: Are all dependencies of preCICE already available through Julia?

@uekerman uekerman added the question Further information is requested label Nov 4, 2022
@erikscheurer
Copy link
Contributor

So if I understand correctly, the BinaryBuilder would in our case build preCICE and upload it to Yggdrasil which collects many such packages, enabling an easy installation of preCICE through Julia. Users would then only have to run ]add preCICE_jll in julia to download a prebuilt version of preCICE for their system that is compiled with all dependencies?
This would even make the normal preCICE installation easier right? Even when not using the Julia bindings?

I tried around with the BinaryBuilder wizard and found out, that boost, libxml2, OpenMPI, eigen and PETSc already have these artefacts, so including them in the installation can be done easily through the wizard. I got preCICE to compile for a limited number of compilers and architectures (and without python and PETSc for now). These artefacts are then uploaded to Yggdrasil (or first in a personal repository to test) as a release and can be installed as described above. This procedure also worked for my one single test case. The only thing missing is adding the libraries into the path but maybe there is something I'm missing so far.

In total, I think this is feasible, do we want to pursue this and thereby add another method of installation to preCICE?

@uekerman
Copy link
Member Author

uekerman commented Nov 14, 2022

Thanks for researching!

I think this sounds promising.

This would even make the normal preCICE installation easier right? Even when not using the Julia bindings?

This, I would not advise. It could become the go-to-solution when using the Julia bindings. But not otherwise. We could eventually add it in the community efforts section.

do we want to pursue this and thereby add another method of installation to preCICE?

Yes, let's pursue it. But let's not make it a first-class installation method of preCICE. Not sth that we promise to maintain.

I see it more as sth we want to learn right now.

@davidscn
Copy link
Member

There is not all that much to add in addition to the comment from @erikscheurer. I also tried using the wizard and getting a proper preCICE build without PETSc and python was very easy. When adding PETSc as an additional dependency in the wizard, it installed multiple ones (64 bit ints, complex petsc). I guess one still needs to add the right PETSc version to the system paths or similar. However, the location of the PETSc installation contained a specific strings regarding the target architecture, so I was not completely sure how to proceed. I could imagine that I overlooked some feature of BinaryBuilder in the first place.

@uekerman uekerman added the help wanted Extra attention is needed label Nov 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants