next up previous contents
Next: Рабочие станции в общем. Up: Конфигурирование mpich Previous: Конфигурирование mpich   Contents

Конфигурирование mpich для работы с различными компиляторами.

Все больше систем, особенно кластеры, поставляются с собственными компиляторами. Во многих случаях, Вы можете построить mpich, использовав один из этих компиляторов, и позволить пользователям использовать их любимый компилятор для создания собственного кода. Во многих случаях это не требует дополнительных шагов. Пользователи могут просто использовать аргумент командной строки -cc или переменную окружения MPICH_CC для определения другого компилятора.

К сожалению, это не всегда работает. Например, в некоторых случаях, различным компиляторам могут потребоваться различные библиотеки при компоновке программ. Некоторые компиляторы требуют дополнительных опций для поддержки ANSI/ISO C. В частности, поддержка длинных типов данных, таких как long long или long double может зависеть от библиотек времени выполнения, которые специфичны для каждого компилятора. Чтобы обработать все такие случаи для C и C++, Вы можете создать файл с именем `mpicc-<compilename>.conf', т.е. `mpicc-gcc.conf' или `mpicc-pgcc.conf', который содержит все определения, необходимые команде mpicc. mpiCC использует `mpiCC-<compilename>.conf'. Сейчас эти файлы нужно создавать вручную, начав с файла `mpichlib.conf', который создается скриптом configure для mpich в каталоге `mpich/util'. Простейшим способом создания файлов является использование configure:

setenv CC cc
configure $-$$-$prefix=/usr/local/mpich-1.2.2
make
make install
cp util/mpichlib.conf /usr/local/mpich-1.2.2/etc/mpicc-cc.conf

setenv CC gcc
configure $-$$-$prefix=/usr/local/mpich-1.2.2
make
cp util/mpichlib.conf /usr/local/mpich-1.2.2/etc/mpicc-gcc.conf

В этом примере использованы значения по умолчанию для sysconfdir, $prefix/etc.

Например, если mpich использует в качестве компилятора cc, а пользователь ожидает вместо
этого gcc, команда MPICH_CC=gcc

mpicc ...
или
mpicc -config=gcc ...
вызовет загрузку `mpich-gcc.conf' для mpicc и использование подходящих определений.

Alex Otwagin 2002-12-16