Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

ifort: error #10104: unable to open '--start-group' (MPI with FGMRES)

Amar_K_1
Beginner
713 Views

Hello!

Can someone help me get past this error please...

I get the following error while generating my executable:

ifort: error #10104: unable to open '--start-group'

I'm trying to run FGMRES sequentially on multiple nodes of a cluster using MPI. If I compile using ifort I get no problems, but if I use mpif90 I get the above error. The command I'm using is:

mpif90 -xHost -g -traceback -debug all -check all -implicitnone -fp-stack-check -heap-arrays -ftrapuv -check pointers -check bounds -I/INTEL/mkl/include -fpp source1.f90 source2.f -L"/INTEL/mkl/lib/em64t" "/INTEL/mkl/lib/em64t"/libmkl_lapack95_lp64.a "/INTEL/mkl/lib/em64t"/libmkl_solver_lp64_sequential.a "/INTEL/mkl/lib/em64t"/libmkl_intel_lp64.a -Wl,--start-group "/INTEL/mkl/lib/em64t"/libmkl_sequential.a "/INTEL/mkl/lib/em64t"/libmkl_core.a -Wl,--end-group -lpthread -lm -o executable  

Is it not possible to invoke FGMRES or any other MKL routine in an MPI environment? 

Many Thanks!

0 Kudos
5 Replies
Chao_Y_Intel
Moderator
713 Views

Hello,
If the compiling script cannot know "-Wl,--start-group", you can repeat the MKL library for 3 times to resolve the cross references between the MKL libraries:

For example, you can change:
"/INTEL/mkl/lib/em64t"/libmkl_intel_lp64.a -Wl,--start-group "/INTEL/mkl/lib/em64t"/libmkl_sequential.a "/INTEL/mkl/lib/em64t"/libmkl_core.a -Wl,--end-group

to:
/INTEL/mkl/lib/em64t"/libmkl_intel_lp64.a "/INTEL/mkl/lib/em64t"/libmkl_sequential.a "/INTEL/mkl/lib/em64t"/libmkl_core.a /INTEL/mkl/lib/em64t"/libmkl_intel_lp64.a "/INTEL/mkl/lib/em64t"/libmkl_sequential.a "/INTEL/mkl/lib/em64t"/libmkl_core.a /INTEL/mkl/lib/em64t"/libmkl_intel_lp64.a "/INTEL/mkl/lib/em64t"/libmkl_sequential.a "/INTEL/mkl/lib/em64t"/libmkl_core.a

Thanks,
Chao

0 Kudos
Amar_K_1
Beginner
713 Views

Chao Y (Intel) wrote:

Hello,
If the compiling script cannot know "-Wl,--start-group", you can repeat the MKL library for 3 times to resolve the cross references between the MKL libraries:

Thank you Chao for your quick suggestion. It helped. I can now generate the executable but still get a warning:

ifort: warning #10147: no action performed for specified file(s)

No files are specified after this warning and the compilation ends without any errors. I tried running the executable, it runs but the correctness of the results are not verified yet. I'm compiling two files - one .f90 program and the other is a .f subroutine. Am I missing something?

Many Thanks

0 Kudos
TimP
Honored Contributor III
713 Views

"no action performed" typically comes from setting an option such as -c by mistake in a command which was intended to drive a link.  You may need to examine the fully expanded command generated by your mpif90.  Probably adding ifort option -# may give you the full thing, or (depending on where your mpif90 comes from) mpif90 -show or the like may help.

Was your mpif90 built by an ifort version compatible with the ifort on your PATH?

0 Kudos
Amar_K_1
Beginner
713 Views

TimP (Intel) wrote:

 You may need to examine the fully expanded command generated by your mpif90.  Probably adding ifort option -# may give you the full thing

Thanks TimP for your very quick reply. -# gives lots of stuff, so much that I cannot scroll all the way up to see where it starts. In what is visible, I could spot the following, which was related to my error:

ifort: warning #10147: no action performed for specified file(s)
rm /tmp/ifortzDeePGlibgcc

rm /tmp/ifort4U4bmMgnudirs

rm /tmp/ifortLhBCTR.i90

rm /tmp/ifortoGKNrXarg

rm /tmp/ifortkEL0Z2gas

rm /tmp/ifortBFkwy8as_.s

rm /tmp/ifortka226dldashv

rm /tmp/ifortMUV8Gjarg

rm /tmp/ifortmWwghp.i

rm /tmp/ifortOnA4Ruarg

rm /tmp/ifortLuaUsAas_.s

rm /tmp/ifort6Y2S4Farg

I really don't know what to make of it. Any ideas?

TimP (Intel) wrote:

Was your mpif90 built by an ifort version compatible with the ifort on your PATH?

I would have to ask the cluster administartor for this. I'm unaware.

Many Thanks

0 Kudos
Amar_K_1
Beginner
713 Views

Also found the -c flag that you mentioned TimP, in the following lines:

"-mGLOB_options_string=-I/INTEL/mkl/include -I/MPICH_MX/include/f90choice -c -# -xHost -check -g -traceback -fpp -L/INTEL/mkl/lib/em64t -c" \

Should I get rid of the two -c flags above? If so, how? I don't use a makefile. I directly use the command posted at the start of this thread. The way I got the basic structure of the command was from noting what gets printed on screen  when running an Intel example makefile for FGMRES. 

Many Thanks

0 Kudos
Reply