Модули среды Linux или среда Conda
Я искал разницу между модулями среды Linux или средой Conda, но мне не ясно, чем они отличаются. По сути, я хочу установить OpenMPI и Mpich в свою Ubuntu, но они совместно используют несколько оболочек компилятора. Чтобы быть в безопасности, я хочу изолировать их, так что я должен использовать - модули или среду Conda или любую другую альтернативу?
Кроме того, если я использую Conda Environment, могу ли я ограничить скомпилированный программный двоичный файл средой? Я удивлен, что я установил некоторое программное обеспечение в базовой среде, но у меня есть доступ из другой среды.
1 ответ
Модули среды предназначены для включения пользователей с программным обеспечением, недоступным в среде по умолчанию. В вашей ситуации вы можете установить OpenMPI и Mpich по изолированным путям, а затем с помощью файлов модулей пользователи могут включить вариант MPI по своему выбору.
Это то, что предоставляется по умолчанию при установке openmpi
а также mpich
в системе Fedora, например:
$ module show mpi/mpich-x86_64
-------------------------------------------------------------------
/etc/modulefiles/mpi/mpich-x86_64:
conflict mpi
setenv MPI_BIN /usr/lib64/mpich/bin
setenv MPI_SYSCONFIG /etc/mpich-x86_64
setenv MPI_FORTRAN_MOD_DIR /usr/lib64/gfortran/modules/mpich
setenv MPI_INCLUDE /usr/include/mpich-x86_64
setenv MPI_LIB /usr/lib64/mpich/lib
setenv MPI_MAN /usr/share/man/mpich-x86_64
setenv MPI_PYTHON_SITEARCH /usr/lib64/python2.7/site-packages/mpich
setenv MPI_PYTHON2_SITEARCH /usr/lib64/python2.7/site-packages/mpich
setenv MPI_PYTHON3_SITEARCH /usr/lib64/python3.6/site-packages/mpich
setenv MPI_COMPILER mpich-x86_64
setenv MPI_SUFFIX _mpich
setenv MPI_HOME /usr/lib64/mpich
prepend-path PATH /usr/lib64/mpich/bin
prepend-path LD_LIBRARY_PATH /usr/lib64/mpich/lib
prepend-path MANPATH /usr/share/man/mpich-x86_64
prepend-path PKG_CONFIG_PATH /usr/lib64/mpich/lib/pkgconfig
-------------------------------------------------------------------
$ module show mpi/openmpi-x86_64
-------------------------------------------------------------------
/usr/share/modulefiles/mpi/openmpi-x86_64:
conflict mpi
prepend-path PATH /usr/lib64/openmpi/bin
prepend-path LD_LIBRARY_PATH /usr/lib64/openmpi/lib
prepend-path PKG_CONFIG_PATH /usr/lib64/openmpi/lib/pkgconfig
prepend-path MANPATH /usr/share/man/openmpi-x86_64
setenv MPI_BIN /usr/lib64/openmpi/bin
setenv MPI_SYSCONFIG /etc/openmpi-x86_64
setenv MPI_FORTRAN_MOD_DIR /usr/lib64/gfortran/modules/openmpi
setenv MPI_INCLUDE /usr/include/openmpi-x86_64
setenv MPI_LIB /usr/lib64/openmpi/lib
setenv MPI_MAN /usr/share/man/openmpi-x86_64
setenv MPI_PYTHON_SITEARCH /usr/lib64/python2.7/site-packages/openmpi
setenv MPI_PYTHON2_SITEARCH /usr/lib64/python2.7/site-packages/openmpi
setenv MPI_PYTHON3_SITEARCH /usr/lib64/python3.6/site-packages/openmpi
setenv MPI_COMPILER openmpi-x86_64
setenv MPI_SUFFIX _openmpi
setenv MPI_HOME /usr/lib64/openmpi
-------------------------------------------------------------------