2013-01-22 20 views
6

OpenMPI strongly recommends przy użyciu ich kompilatorów. Za kulisami ich kompilator otoki mpiCC wywołuje gcc (domyślnie?) I dodaje niezbędne flagi do kompilacji kodu MPI. Jednak inne kompilatory podają więcej opisowych komunikatów o błędach niż gcc (np. clang, który jest również zgodny z GCC). Chciałbym móc używać klangów z Open MPI.Czy istnieje prosty sposób użycia klanga z otwartym MPI?

Próbowałem:

1) znalezienie opcję mpiCC dla określenia kompilatora, ale

mpiCC --help 

tylko wypluwa g ++ stronę pomocy.

2) przy użyciu --showme: skompilować opcja

mpiCC --showme:compile ./test-boost.cc -lboost_mpi -lboost_serialization -o test-boost 

które zamiast nazywać gcc, drukuje flagi potrzebne do kompilacji kodu MPI. Mogę wtedy użyć tych z klangiem (ponieważ jest kompatybilny z GCC). To powinno działać, ale szukam łatwiejszego rozwiązania.

Odpowiedz

9

Open MPI FAQ mówi, które zmienne środowiskowe można ustawić, aby zastąpić domyślny wybór kompilatora wywoływanego przez opakowanie.

http://www.open-mpi.org/faq/?category=mpi-apps#override-wrappers-after-v1.0

W zależności od wersji openmpi należy ustawić OMPI_CXX=clang++ lub OMPI_MPICC=clang. W przypadku OpenMPI w wersji 1.1 i nowszej użyj OMPI_CXX, a następnie wywołaj kompilator otoki. Opakowanie wywoła po kolei zwrot ++.

-1

Ustawienie OMPI_CC=clang lub OMPI_CXX=clang++ jako zmienne środowiskowe w .bashrc, jak opisano w oficjalnym FAQ OpenMPI, NIE działa dla mnie. Muszę je dołączać z wyprzedzeniem za każdym razem, gdy używam mpicc, np.

OMPI_CC=clang mpicc --showme:command 

Więc w Makefile, ustawić CC=OMPI_CC=clang mpicc, który działa dobrze dla mnie.

+0

Czy wyeksportowałeś zmienne? – Rufflewind

+0

@Rufflewind Tak, ale to nie działa na moim Macu (OS X 10.10). BTW, używam '.profile' do konfiguracji bash zamiast' .bashrc' (z pewnych powodów zapomniałem). Może to jest powód. – oracleyue

+0

Bash nie czyta '~/.profile', jeśli' ~/.bash_profile' lub '~/.bash_login' są już obecne. – Rufflewind

Powiązane problemy