152 lines
4.3 KiB
Markdown
152 lines
4.3 KiB
Markdown
# Файл .bashrc
|
||
|
||
## Применение и изменение
|
||
|
||
Файл bashrc определён в домашней дирректории вашего пользователя, его содержимое можно просмотреть использовав команды:
|
||
|
||
```
|
||
$ cd
|
||
$ nano .bashrc
|
||
```
|
||
|
||
Если вы вносите изменения в файл `.bashrc` то, чтобы изменения вступили в силу, требуется перезагрузить конфигурацию:
|
||
|
||
```
|
||
$ cd
|
||
$ source .bashrc
|
||
```
|
||
|
||
## Список команд доступных пользователю благодаря .bashrc
|
||
|
||
```
|
||
$ gcc
|
||
$ g++
|
||
$ nvcc
|
||
$ conda
|
||
$ mpicc
|
||
$ mpic++
|
||
$ mpicxx
|
||
$ icc
|
||
$ icpc
|
||
$ icx
|
||
$ icpx
|
||
$ mpiicpx
|
||
$ mpiicc
|
||
```
|
||
|
||
## О представленной конфигурации
|
||
|
||
Представленная конфигурация позволяет пользователю использовать компилятор GNU Compiller Collection версии 11.2, используя команды:
|
||
|
||
`$ gcc` и `$ g++` для языков C и C++ соответственно
|
||
|
||
Она описана в модуле `#GCC 11.2 INIT`, без неё по умолчанию будет использоваться `gcc/g++` версии 8.
|
||
|
||
Команда
|
||
|
||
``$ conda``
|
||
|
||
cтановится доступной благодаря модулю `#CONDA INIT`
|
||
|
||
По умолчанию OpenMP может не работать без чёткого указания положения библиотеки в модуле `#OPENMP INIT`
|
||
|
||
Пользователю доступно использование компилятора Nvidia CUDA:
|
||
|
||
``$ nvcc``
|
||
|
||
cтановится доступным благодаря модулю `#CUDA INIT`
|
||
|
||
Компиляторы для MPI кода
|
||
|
||
`mpicc` и `mpic++`
|
||
|
||
cтановится доступным благодаря модулю `#MPI INIT`
|
||
|
||
Применение высокоскоростной сети infiniBand в MPI становится возможным благодаря строкам
|
||
|
||
```
|
||
export OMPI_MCA_btl_openib_allow_ib=1
|
||
export OMPI_MCA_btl_openib_if_include="mlx4_0:1"
|
||
```
|
||
|
||
После ввода в консоли команды `targetIntel` пользователь получает доступ к компиляторам
|
||
|
||
```
|
||
$ icc
|
||
$ icx
|
||
$ icpc
|
||
$ icpx
|
||
$ mpiicx
|
||
$ mpiicc
|
||
```
|
||
|
||
Это работает благодаря модулю `#INTEL ICX/ICPX INIT`
|
||
|
||
## Базовая конфигурация
|
||
|
||
Базовая конфигурация файла `.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"
|
||
``` |