Ошибка сборки OpenMPI из-за _noalias при использовании mpicxx

Я попытался установить лампы на моем компьютере отдела с более новой версией 11 августа. Однако mpicxx выдает ошибку в следующих строках:

mpicxx -g -O3   -DLAMMPS_GZIP -DLAMMPS_MEMALIGN=64  -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1   -I/home/shixx597/codes/kim-api-v1.7.3/lib/kim-api-v1/include  -c ../pair_list.cpp
../pair_list.cpp(88): error: expected a ";"const dbl3_t * _noalias const x = (dbl3_t *) atom->x[0];
^

../pair_list.cpp(89): error: "restrict" has already been declared in the current scope
dbl3_t * _noalias const f = (dbl3_t *) atom->f[0];
^

../pair_list.cpp(89): error: expected a ";"dbl3_t * _noalias const f = (dbl3_t *) atom->f[0];
^

../pair_list.cpp(114): error: identifier "x" is undefined
const double dx = x[i].x - x[j].x;
^

../pair_list.cpp(160): error: identifier "f" is undefined
f[i].x += dx*fpair;
^

../pair_list.cpp(166): error: identifier "f" is undefined
f[j].x -= dx*fpair;
^

compilation aborted for ../pair_list.cpp (code 2)
make[1]: *** [pair_list.o] Error 2
make[1]: Leaving directory `/home/shixx597/codes/lammps-11Aug17/src/Obj_mpi'
make: *** [mpi] Error 2

Мои коллеги сказали мне, что это проблема openmpi. Поэтому я попытался установить новый openmpi для меня. Однако я получаю следующую ошибку, которая говорит мне, что automake не устанавливается так:

 cd . && /bin/sh /home/shixx597/codes/openmpi-3.0.0/config/missing automake-1.15 --foreign
/home/shixx597/codes/openmpi-3.0.0/config/missing: line 81: automake-1.15: command not found
WARNING: 'automake-1.15' is missing on your system.
You should only need it if you modified 'Makefile.am' or
'configure.ac' or m4 files included by 'configure.ac'.
The 'automake' program is part of the GNU Automake package:
<http://www.gnu.org/software/automake>
It also requires GNU Autoconf, GNU m4 and Perl in order to run:
<http://www.gnu.org/software/autoconf>
<http://www.gnu.org/software/m4/>
<http://www.perl.org/>
make: *** [Makefile.in] Error 1

When I tried to install automake-1.15, I get the following error:
CDPATH="${ZSH_VERSION+.}:" && cd . && "/home/shixx597/codes/automake-1.15/t/wrap/aclocal-1.15"Can't locate /home/shixx597/codes/automake-1.15/bin/aclocal in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /home/shixx597/codes/automake-1.15/t/wrap/aclocal-1.15 line 29.
make: *** [aclocal.m4] Error 2

У меня нет никаких привилегий sudo делать что-либо на этой странной машине отдела.

Даже если я попытался закончить установку ламп на ведомственной машине, мне интересно, смогу ли я закончить работу с моделью большого силового поля на связке.

0

Решение

На самом деле, это довольно известный вопрос, и есть три решения.

  1. Используйте GCC, а не компилятор Intel (возможно, не желательно).
  2. Использовать -restrict флаг во время компиляции (я предполагаю, добавив его при запуске make, как make CXX_FLAGS=-restrict
  3. Просто удалите эти два файла из сборки.

Если вы действительно хотите попробовать, вы также можете попробовать удалить _noalias ключевое слово с использованием sed или awk из двух оскорбительных файлов: pair_list.h а также pair_list.cppили просто определите _noalias быть пустым ключевым словом, как предложено в комментариях.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]