
Как установить modules?
Как организовать структуру каталогов?
Как управлять доступом к ПО?
MODULE SETTINGS
$ yum install environment-modules
$ mcedit /etc/modulefailes/cuda/v10.1
#%Module1.0
proc ModulesHelp { } {
global version
puts stderr "Modulefile for cuda v10.1"
}
set version v10.1
module-whatis "Modulefile for cuda v10.1"
# Our environment
setenv MAINDIR /nfs/software/cuda/v10.1
prepend-path PATH $env(MAINDIR)/bin
prepend-path C_INCLUDE_PATH $env(MAINDIR)/include
prepend-path CPLUS_INCLUDE_PATH $env(MAINDIR)/include
prepend-path LIBRARY_PATH $env(MAINDIR)/lib64/stubs
prepend-path LIBRARY_PATH $env(MAINDIR)/lib64
prepend-path LD_LIBRARY_PATH $env(MAINDIR)/lib64/stubs
prepend-path LD_LIBRARY_PATH $env(MAINDIR)/lib64
$ mcedit /etc/modulefailes/cuda/v9.2
1. Установим пакет для управления модулями
2-19. Создадим несколько модуль-файлов
CHECK SCRIPT
Вероятность допустить ошибку, при подготовке модуля, довольно велика. Поэтому я провожу проверку всех путей, указанных в модуль-файле. Чтобы не проверять каждый путь вручную я подготовил скрипт. Если 0, то путь корректный.
$ cat check-modulefiles
#!/bin/sh
ModulePath=$1
MainDir=$(cat $ModulePath | grep "setenv MAINDIR" | cut -f7 -d " ")
ListOfPaths=$(cat $ModulePath | grep path | cut -f7 -d " ")
#Replace MainDir setenv in modulefile
ListOfPaths=$(echo $ListOfPaths | sed "s@\$env(MAINDIR)@$MainDir@g")
for u in $ListOfPaths; do
ls -la $u 1> /dev/null 2> /dev/null;
printf "%60s %4d\n" $u $?;
done
$ chmod +x check-modulefiles
$ ./check-modulefiles /etc/modulefiles/cuda/v10.1
/nfs/software/cuda/v10.1/bin 0
/nfs/software/cuda/v10.1/include 0
/nfs/software/cuda/v10.1/include 0
/nfs/software/cuda/v10.1/lib64/stubs 0
/nfs/software/cuda/v10.1/lib64 0
/nfs/software/cuda/v10.1/lib64/stubs 0
/nfs/software/cuda/v10.1/lib64 0
MODULE CONTROL
$ module avail
$ module add cuda/v10.1
$ nvcc –version
Cuda compilation tools, release 10.1, V10.1.168
$ module switch cuda/v10.1 cuda/v9.2
$ nvcc –version
Cuda compilation tools, release 9.2, V9.2.88
$ module list
$ module rm cuda/v9.2
1. Посмотрим список доступных для подключения модулей
2. Подключим модуль
3-4. Проверим версию
5. Поменяем модуль
6-7. Проверим версию
8. Посмотрим список подключенных модулей
9. Удалим модуль из списка подключенных
Вконтакте
Facebook
Twitter
Класснуть
Плюсануть

Читать еще:
- Доступ к общим каталогам в сетевой файловой системе NFS
- FreeIPA для централизованного управления пользователями
- OpenMPI - реализация технологии параллельного программирования MPI
- Технология параллельного программирования графических ускорителей CUDA
- Оптимизированная реализация библиотеки BLAS – OpenBLAS