Ошибка установки и/или использования DVM системы с использованием MPICH и GCC
При одновременном использовании MPICH реализации MPI совместном с компилятором GCC возможно возникновение ошибок компоновки при сборке DVM системы и/или при компиляции DVMH программ. Ошибка связана с тем, что скрипт mpicc
и mpicxx
запускают компилятор GCC с включенной межмодульной оптимизацией (-lto=auto
), при этом компилятор не справляется с оптимизацией системы поддержки DVM системы совместно с компилируемой программой.
Возможным решением может быть отключение межмодульной оптимизации, в этом случае в конфигурации сборки системы для всех компиляторов нужно задать -fno-lto
.
Имя конфигурации указано в файле .../dvm_sys/platform
. Файл, совпадающий с именем конфигурации, необходимо найти в директории .../dvm_sys/platforms
. Необходимо внести изменения в данный файл и привести его к виду аналогичному следующему:
CC='gcc -g -O2 -fno-lto'
CXX='g++ -g -O2 -fno-lto'
LINKER='g++ -g -fno-lto'
...
PCC='mpicc -g -O2 -fopenmp -fno-lto'
PCXX='mpic++ -g -O2 -fopenmp -fno-lto'
PFORT='mpifort -g -O2 -fopenmp -fallow-argument-mismatch -fno-lto'
PLINKER='mpic++ -g -fopenmp -fno-lto'
PFLINKER='mpifort -g -fopenmp -fno-lto'
...
NVCC='/usr/bin/nvcc -std=c++11 -Xcompiler -fno-lto'
...