Eu preciso executar um código usando mpicc (parallel gcc). Um servidor tem dois pacotes de mpicc instalados, a saber , OPENMPI
e MPICH
em /usr/local/OPENMPI
e , /usr/local/MPICH
respectivamente. Por padrão mpicc de OPENMPI está sendo usado
which mpicc
shows/usr/local/OPENMPI/bin/mpicc
Meu código é construído para MPICH. Em vez de chamar mpicc de MPICH usando o caminho completo todas as vezes. Existe uma maneira fácil de fazer /usr/local/MPICH/bin/mpicc
como padrão até que eu conclua meu trabalho e depois mude de volta para/usr/local/OPENMPI/bin/mpicc
Eu acho que um
alias
funcionaria perfeitamente para sua situação. Você pode adicionar o seguinte ao seu.profile
ou.bash_profile
:Uma solução mais permanente (mas ainda reversível) é adicionar o
MPICH
local ao seu caminho ANTES doOPENMPI
local. Facilmente feito adicionando o seguinte seu.profile
ou.bash_profile
:Quando você digita um comando como
mpicc
, se não estiver em seu diretório atual, seu shell irá procurá-PATH
lo, em ordem, por isso é importante qual posição você o coloca para definir a precedência.Se você quiser ter algum tipo de chave que possa usar para "alternar" facilmente entre os dois, você pode criar algum tipo de função e adicioná-la ao seu
.bashrc
(ou.profile
/.bash_profile
? ):Neste exemplo, usei reticências no lugar do caminho real. Na verdade, eu recomendo especificar o caminho completo nesta função (se usado) em vez de usar o
PATH="Stuff_I_Need_added:$PATH"
método: , pois ele continuará sendo adicionado ao seuPATH
toda vez que você chamar a função, podendo fazer com que ela se torne excessivamente longa.Você chamaria isso como:
Mais leitura sobre como definir seu caminho