# Файл .bashrc ## Применение и изменение Файл bashrc определён в вашей домашней дирректории, его можно найти использовав команды ``` $ cd $ nano .bashrc ``` Если вы вносите изменения в файле `.bashrc` то чтобы изменения вступили в силу требунтся снова перезагрузить конфигурацию при помощи команд: ``` $ cd $ source .bashrc ``` ## Список команд доступных пользователю благодаря .bashrc ``` $ gcc $ g++ $ nvcc $ conda $ mpicc $ mpic++ $ mpicxx $ icc $ icpc $ icx $ icpx ``` ## О представленной конфигурации Представленная конфигурация позволяет пользователю использовать компилятор 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` Это работает благодаря модулю `#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" ```