2017-01-13 1 views
1

Je cherche à exécuter l'analyse comparative CNLC sur mon RHEL7.3 installer mais viennent dans une question similaire à la question posée iciEst-il possible de compiler des fichiers NASA Parallel Benchmarks (NPB) sous Linux en utilisant gfortran et openmpi?

Error while building NAS benchmarks

Essayer de faire la référence BT, qui est en Fortran, je reçois le erreur suivant:

cd BT; make NPROCS=16 CLASS=W SUBTYPE= VERSION= 
make[1]: Entering directory '/mnt/npb_install/NPB3.3-MPI/BT' 
make[2]: Entering directory '/mnt/npb_install/NPB3.3-MPI/sys' 
make[2]: Nothing to be done for 'all' 
make[2]: Leaving directory '/mnt/npb_install/NPB3.3-MPI/sys' 
../sys/setparams bt 16 W 
make[2]: Entering directory '/mnt/npb_install/NPB3.3-MPI/BT' 
make[3]: Entering directory '/mnt/npb_install/NPB3.3-MPI/BT' 
gfortran -O -o ../bin/bt.W.16 bt.o make_set.o initialize.o exact_solution.o exact_rhs.o set_constants.o adi.o define.o copy_faces.o rhs.o solve_subs.o x_solve.o y_solve.o z_solve.o add.o error.o verifiy.o setup_mpi.o ../common/print_results.o ../common/timers.o btio.o -L/usr/lib/openmpi-x84_64/ -lmpi 
/bin/ld: cannot find -lmpi 
collect2: error: ld returned 1 exit status 
make[3]: *** [bt-bt] Error 1 
make[3]: Leaving direc....... 

Cependant, je ne suis pas utilise Intel MPI mais OpenMPI, bien que je ne comprends pleinement l'implication de cela.

Mon fichier make.def a les paramètres liés mpi suivants

#------------------------------------- 
# This is the fortran compiler usedd for MPI programs 
#----------------------------------------- 
MPIF77 = gfortran 
# This links MPI fortran programs; usually the same as ${MPIF77} 
FLINK = ${MPIF77} 

#------------------------------------------ 
# These macros are passed to the linker to help link with MPI correctly 
#------------------------------------------- 
FMPI_LIB = -L/usr/lib/openmpi/lib/ -lmpi 

#----------------------------------------- 
# These macros are passed to the compiler to help find 'mpif.h' 
#------------------------------------------ 
FMPI_INC = -I/usr/include/openmpi-x86_64/ 

similaires à ceux affichés dans la question ci-dessus.

De l'erreur, je suppose que les paramètres d'entrée -lmpi est pas un paramètre d'entrée valable pour gfortran lors de la compilation, mais l'enlever conduit à un écran plein de références non définies comme:

file.f:(.text+0x123): undefined reference to 'mpi_whatever_' 

Est-il possible de compiler NPB avec gfortran? Ou est-ce que je fais clairement quelque chose de mal ici? J'ai vu qu'utiliser ifort est une autre option, mais je pensais poser la question avant d'aller vers cette solution possible

Répondre

1

Après avoir piraté, j'ai résolu le problème avec les correctifs suivants, je ne sais pas ce qu'il a fait.

OpenMPI peut-être pas été installé correctement (n'a pas pu appeler mpicc ou d'autres wrappers/comps), pour le fixer, je courais les commandes suivantes

module avail 
#displayed the openmpi-x86_64 module 
module add open-x86_64 
which mpirun 
#displayed location of mpirun 

Le correctif plus probable est en train de changer simplement gfortran en le fichier make.def à mpif77