Intel® MPI Library
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.
2161 Discussions

Error in script creating wrappers for PGI 16.9 using Intel MPI

Guy
Beginner
795 Views

Hello,

I try to create the wrappers for PGI 16.9 compilers for Intel MPI 16.3.210

I added a comment in a quite similar topic but It seems not to be updated.

 

I'm working on a node running CentOS 7.2

uname -a
Linux jaws.cluster 3.10.0-327.36.2.el7.x86_64 #1 SMP Mon Oct 10 23:08:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

 

I check the version of the softwares I use :

# pgc++ --version
pgc++ 16.9-0 64-bit target on x86-64 Linux -tp haswell 
The Portland Group - PGI Compilers and Tools
Copyright (c) 2016, NVIDIA CORPORATION.  All rights reserved.

# mpirun --version
Intel(R) MPI Library for Linux* OS, Version 5.1.3 Build 20160120 (build id: 14053)
Copyright (C) 2003-2016, Intel Corporation. All rights reserved.

 

I follow the instructions in the file named README-intel-mpi-binding-kit.txt

# cd cxx
# make MPI_INST=/trinity/shared/apps/cv-standard/intel/2016.3.210/compilers_and_libraries_2016.3.210/linux/mpi CC=pgc++  NAME=pgc++ ARCH=intel64
mkdir -p intel64/lib && ar cr intel64/lib/libmpipgc++.a initcxx.o
gcc  -shared -Xlinker -x -Xlinker -soname=libmpipgc++.so.12 -o intel64/lib/libmpipgc++.so.12.0 initcxx.o
(cd intel64/lib && if [ ! -f libmpipgc++.so.12 ]; then ln -s libmpipgc++.so.12.0 libmpipgc++.so.12; fi)
(cd intel64/lib && if [ ! -f libmpipgc++.so ]; then ln -s libmpipgc++.so.12 libmpipgc++.so; fi)
mkdir -p intel64/bin
sed -e 's/g++//trinity/shared/apps/cv-standard/pgi/linux86-64/16.9/bin/pgc++/' -e 's/Docompchk\=yes/Docompchk\=no/' -e 's/mpigc$gver/mpipgc++/g' \
-e 's/rpath_opt\=.*/rpath_opt\=/' /trinity/shared/apps/cv-standard/intel/2016.3.210/compilers_and_libraries_2016.3.210/linux/mpi/intel64/bin/mpigxx > intel64/bin/mpipgc++
sed: -e expression #1, char 8: unknown option to `s'
make: *** [makedriver] Error 1
# cd ../f77
# make MPI_INST=/trinity/shared/apps/cv-standard/intel/2016.3.210/compilers_and_libraries_2016.3.210/linux/mpi CC=pgf77  NAME=pgf77 ARCH=intel64
mkdir -p intel64/bin
sed -e 's/g77//trinity/shared/apps/cv-standard/pgi/linux86-64/16.9/bin/pgf77/' -e 's/Docompchk\=yes/Docompchk\=no/' \
-e 's/rpath_opt\=.*/rpath_opt\=/' /trinity/shared/apps/cv-standard/intel/2016.3.210/compilers_and_libraries_2016.3.210/linux/mpi/intel64/bin/mpif77 > intel64/bin/mpipgf77
sed: -e expression #1, char 8: unknown option to `s'
make: *** [makedriver] Error 1
# cd ../f90
# make MPI_INST=/trinity/shared/apps/cv-standard/intel/2016.3.210/compilers_and_libraries_2016.3.210/linux/mpi CC=pgf90  NAME=pgf90 ARCH=intel64
/trinity/shared/apps/cv-standard/pgi/linux86-64/16.9/bin/pgf90  -c -fPIC -I/trinity/shared/apps/cv-standard/intel/2016.3.210/compilers_and_libraries_2016.3.210/linux/mpi/intel64/include mpi_constants.f90
/trinity/shared/apps/cv-standard/pgi/linux86-64/16.9/bin/pgf90  -c -fPIC -I/trinity/shared/apps/cv-standard/intel/2016.3.210/compilers_and_libraries_2016.3.210/linux/mpi/intel64/include mpi_sizeofs.f90
/trinity/shared/apps/cv-standard/pgi/linux86-64/16.9/bin/pgf90  -c -fPIC -I/trinity/shared/apps/cv-standard/intel/2016.3.210/compilers_and_libraries_2016.3.210/linux/mpi/intel64/include mpi_base.f90
/trinity/shared/apps/cv-standard/pgi/linux86-64/16.9/bin/pgf90  -c -fPIC -I/trinity/shared/apps/cv-standard/intel/2016.3.210/compilers_and_libraries_2016.3.210/linux/mpi/intel64/include mpi.f90
mkdir -p intel64/lib && ar cr intel64/lib/libmpipgf90.a mpi.o mpi_base.o mpi_sizeofs.o mpi_constants.o
mkdir -p intel64/include/pgf90 && mv *.mod intel64/include/pgf90
/trinity/shared/apps/cv-standard/pgi/linux86-64/16.9/bin/pgf90  -shared -Xlinker -x -Xlinker -soname=libmpipgf90.so -o intel64/lib/libmpipgf90.so mpi.o mpi_base.o mpi_sizeofs.o mpi_constants.o -lrt -ldl
pgf90-Error-Unknown switch: -Xlinker
pgf90-Error-Unknown switch: -x
pgf90-Error-Unknown switch: -Xlinker
make: *** [makemod] Error 1

 

 

 

It works fine in the "c" directory.

Could you please tell me what's wrong with the three others ?

Thank you in advance

Regards,

   Guy.

0 Kudos
2 Replies
Gregg_S_Intel
Employee
795 Views

Should be CXX=pgc++, F77=pgf77, F90=pgf90

0 Kudos
Guy
Beginner
795 Views

Hello Gregg,

thant you for your message. Apologies, I should have read more carefully.

It runs now for C++ and F77. But I still get the error about unknown switches at link step for F90 wrapper

make MPI_INST=/trinity/shared/apps/cv-standard/intel/2016.3.210/compilers_and_libraries_2016.3.210/linux/mpi F90=pgf90  NAME=pgf90 ARCH=intel64
pgf90  -c -fPIC -I/trinity/shared/apps/cv-standard/intel/2016.3.210/compilers_and_libraries_2016.3.210/linux/mpi/intel64/include mpi_constants.f90
pgf90  -c -fPIC -I/trinity/shared/apps/cv-standard/intel/2016.3.210/compilers_and_libraries_2016.3.210/linux/mpi/intel64/include mpi_sizeofs.f90
pgf90  -c -fPIC -I/trinity/shared/apps/cv-standard/intel/2016.3.210/compilers_and_libraries_2016.3.210/linux/mpi/intel64/include mpi_base.f90
pgf90  -c -fPIC -I/trinity/shared/apps/cv-standard/intel/2016.3.210/compilers_and_libraries_2016.3.210/linux/mpi/intel64/include mpi.f90
mkdir -p intel64/lib && ar cr intel64/lib/libmpipgf90.a mpi.o mpi_base.o mpi_sizeofs.o mpi_constants.o
mkdir -p intel64/include/pgf90 && mv *.mod intel64/include/pgf90
pgf90  -shared -Xlinker -x -Xlinker -soname=libmpipgf90.so -o intel64/lib/libmpipgf90.so mpi.o mpi_base.o mpi_sizeofs.o mpi_constants.o -lrt -ldl
pgf90-Error-Unknown switch: -Xlinker
pgf90-Error-Unknown switch: -x
pgf90-Error-Unknown switch: -Xlinker
make: *** [makemod] Error 1

 

Regards

   Guy

0 Kudos
Reply