
mpicc(병렬 gcc)를 사용하여 코드를 실행해야 합니다. 서버에는 두 개의 mpicc 패키지, 즉 OPENMPI
and가 설치되어 있습니다. OPENMPI의 mpicc가 기본적으로 사용됩니다.MPICH
/usr/local/OPENMPI
/usr/local/MPICH
which mpicc
프로그램/usr/local/OPENMPI/bin/mpicc
내 코드는 MPICH용으로 제작되었습니다. 매번 전체 경로를 사용하여 MPICH의 mpicc를 호출하는 대신. /usr/local/MPICH/bin/mpicc
작업이 끝날 때까지 기본값으로 설정한 다음 다시 변경할 수 있는 쉬운 방법이 있습니까?/usr/local/OPENMPI/bin/mpicc
답변1
나는 an이 alias
귀하의 경우에 완벽하다고 생각합니다. .profile
또는 에 다음을 추가할 수 있습니다 .bash_profile
.
alias mympicc='/usr/local/MPICH/bin/mpicc'
보다 영구적이지만 여전히 되돌릴 수 있는 솔루션은 MPICH
위치를 경로 앞에 추가하는 것입니다 OPENMPI
. 이는 다음을 추가 .profile
하거나 다음을 추가하여 쉽게 수행할 수 있습니다 .bash_profile
.
export PATH="/usr/local/MPICH/bin:$PATH"
그런 명령을 입력할 때 해당 명령이 mpicc
현재 디렉토리에 없으면 쉘이 PATH
순서대로 검색하므로 우선 순위를 설정하려면 해당 명령을 어디에 두는 것이 중요합니다.
둘 사이를 쉽게 "전환"하는 데 사용할 수 있는 일종의 스위치를 원한다면 일종의 기능을 만들어 .bashrc
(또는 .profile
/.bash_profile
?):
use_mpicc () {
shopt -s nocasematch
case "$1" in
mpich) export PATH="...:/usr/local/MPICH/bin:/usr/local/OPENMPI/bin:..." ;;
openmpi) export PATH="...:/usr/local/OPENMPI/bin:/usr/local/MPICH/bin:..." ;;
*) return 1 ;;
esac
shopt -u nocasematch
}
이 예에서는 실제 경로 대신 줄임표를 사용하고 있습니다. : 메서드를 사용하는 것보다 실제로 이 함수(사용하는 경우)에 전체 경로를 지정하는 것이 좋습니다 PATH="Stuff_I_Need_added:$PATH"
. 이렇게 하면 함수가 호출될 때마다 경로가 계속 추가되어 PATH
잠재적으로 경로가 매우 길어질 수 있습니다.
다음과 같이 호출할 수 있습니다.
$ use_mpicc mpich
$ # OR
$ use_mpicc openmpi
설정에 대해 자세히 알아보세요.길