4.3 KiB
Файл .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"