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

install prefix and library naming conventions #351

Open
torehl opened this issue Feb 6, 2023 · 1 comment
Open

install prefix and library naming conventions #351

torehl opened this issue Feb 6, 2023 · 1 comment

Comments

@torehl
Copy link

torehl commented Feb 6, 2023

Hi QuEST developers,

would it be possible to include a CMAKE_INSTALL_PREFIX section in the CMakeLists.txt file?

In addition, I suggest you use a similar convention often used on HPC systems for the various threaded (mt/omp/gmp), distributed (mpi), and accelerated (GPU accelerated) versions of the library:

E.g. in $CMAKE_INSTALL_PREFIX/lib please rename the builds something like

libQuEST.so -> libQuEST.so.3.5.0
libQuEST.so.3.5.0
libQuEST-mt.so.3.5.0 -> libQuEST.so.3.5.0
libQuEST-mt+mpi.so.3.5.0
libQuEST-cu118.so.3.5.0

I ended up creating separate modules files that point to separate directories. Works as well, but probably the cleanest install.

24 /cm/shared/ex3-qc-modules/apps/QuEST/3.5.0/lib/omp
368 /cm/shared/ex3-qc-modules/apps/QuEST/3.5.0/lib/omp+mpi
1668 /cm/shared/ex3-qc-modules/apps/QuEST/3.5.0/lib/omp+cu118
2376 /cm/shared/ex3-qc-modules/apps/QuEST/3.5.0/lib
19968 /cm/shared/ex3-qc-modules/apps/QuEST/3.5.0/docs
64 /cm/shared/ex3-qc-modules/apps/QuEST/3.5.0/examples
628 /cm/shared/ex3-qc-modules/apps/QuEST/3.5.0/tests/catch
1176 /cm/shared/ex3-qc-modules/apps/QuEST/3.5.0/tests
304 /cm/shared/ex3-qc-modules/apps/QuEST/3.5.0/include
23904 /cm/shared/ex3-qc-modules/apps/QuEST/3.5.0/

A penny for your thoughts?

Ref:
https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX.html

@TysonRayJones
Copy link
Member

Hi there,

Apologies for the profane delay! We currently do not intend users to make install QuEST because they are expected to recompile the entirety of QuEST (which takes mere seconds) when changing the deployment backend (e.g. from CPU to GPU).

You raise an interesting idea - that all backends could be separately compiled and installed to distinct directories. Each would still be installed separately so that a user needn't (e.g.) have CUDA installed just to compile QuEST for distributed simulation.

Still, to ensure a user runs the right deployment mode in HPC settings, we encourage re-compiling in that mode during job submission. It adds a few seconds to the job while significantly reducing the chance of wasting HPC resources by (e.g.) unknowingly running slow, serial CPU QuEST on a GPU node.

It may still be that adding CMAKE_INSTALL_PREFIX to the makefile enables more convenient optional installation. Unfortunately I've no experience with it - please feel free to make a pull request with the proposed change!

@otbrown otbrown mentioned this issue Jul 2, 2024
otbrown added a commit to otbrown/QuEST that referenced this issue Aug 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants