clusterDocs/clusterNodes/bashrc.md

152 lines
4.3 KiB
Markdown
Raw Normal View History

2024-06-18 15:42:14 +03:00
# Файл .bashrc
2024-06-18 16:12:26 +03:00
## Применение и изменение
2024-06-24 12:42:00 +03:00
Файл bashrc определён в домашней дирректории вашего пользователя, его содержимое можно просмотреть использовав команды:
2024-06-18 15:42:14 +03:00
```
$ cd
$ nano .bashrc
```
2024-06-24 12:42:00 +03:00
Если вы вносите изменения в файл `.bashrc` то, чтобы изменения вступили в силу, требуется перезагрузить конфигурацию:
2024-06-18 15:42:14 +03:00
```
$ cd
$ source .bashrc
```
2024-06-18 16:12:26 +03:00
## Список команд доступных пользователю благодаря .bashrc
```
$ gcc
$ g++
$ nvcc
$ conda
$ mpicc
$ mpic++
$ mpicxx
$ icc
$ icpc
$ icx
$ icpx
2024-06-18 16:43:26 +03:00
$ mpiicpx
$ mpiicc
2024-06-18 16:12:26 +03:00
```
## О представленной конфигурации
Представленная конфигурация позволяет пользователю использовать компилятор GNU Compiller Collection версии 11.2, используя команды:
`$ gcc` и `$ g++` для языков C и C++ соответственно
Она описана в модуле `#GCC 11.2 INIT`, без неё по умолчанию будет использоваться `gcc/g++` версии 8.
Команда
``$ conda``
ановится доступной благодаря модулю `#CONDA INIT`
По умолчанию OpenMP может не работать без чёткого указания положения библиотеки в модуле `#OPENMP INIT`
Пользователю доступно использование компилятора Nvidia CUDA:
``$ nvcc``
ановится доступным благодаря модулю `#CUDA INIT`
Компиляторы для MPI кода
`mpicc` и `mpic++`
ановится доступным благодаря модулю `#MPI INIT`
Применение высокоскоростной сети infiniBand в MPI становится возможным благодаря строкам
```
export OMPI_MCA_btl_openib_allow_ib=1
export OMPI_MCA_btl_openib_if_include="mlx4_0:1"
```
После ввода в консоли команды `targetIntel` пользователь получает доступ к компиляторам
2024-06-18 16:43:26 +03:00
```
$ icc
$ icx
$ icpc
$ icpx
$ mpiicx
$ mpiicc
```
2024-06-18 16:12:26 +03:00
Это работает благодаря модулю `#INTEL ICX/ICPX INIT`
## Базовая конфигурация
2024-06-18 15:42:14 +03:00
Базовая конфигурация файла `.bashrc` выглядет следующим образом:
```
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific environment
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
then
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
export PATH
#GCC 11.2 INIT
#Devtoolset-11-gcc#g++ enabler
source /opt/rh/gcc-toolset-11/enable
#CONDA INIT
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/opt/miniconda3/etc/profile.d/conda.sh" ]; then
. "/opt/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/opt/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
#OPENMP INIT
#export LIB_OPENMP="/opt/intel2018/lib/intel64/libiomp5.so"
export LIB_OPENMP="/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin/libiomp5.so"
#for SCREEN correct working with OMP5.so library
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin/"
#CUDA INIT
export PATH="/opt/cuda/cuda-12.2/bin/:$PATH"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/cuda/cuda12.2/lib64"
export PATH="/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin/:$PATH"
export PATH="/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/comm_libs/mpi/bin:$PATH"
export MANPATH="$MANPATH:/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/comm_libs/mpi/man"
#MPI INIT
export I_MPI_FABRICS=shm:ofi
#export I_MPI_CC=mpiicc
export UCX_TLS=mm,tcp,self
export OMPI_MCA_btl_openib_allow_ib=1
export OMPI_MCA_btl_openib_if_include="mlx4_0:1"
export PATH="/usr/lib64/openmpi/bin/:$PATH"
export I_MPI_FALLBACK=1
#INTEL ICX/ICPX INIT
alias targetIntel="source /opt/intel/oneapi/setvars.sh intel64 >> /dev/null"
```