Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mismatch error compiling Scalapack 2.2.0 against GNU 11.2.0 #1078

Closed
fsidoli opened this issue Nov 27, 2024 · 2 comments
Closed

Mismatch error compiling Scalapack 2.2.0 against GNU 11.2.0 #1078

fsidoli opened this issue Nov 27, 2024 · 2 comments

Comments

@fsidoli
Copy link

fsidoli commented Nov 27, 2024

Hi All,

I'm trying to compile ScaLAPACK 2.2.0 against GNU 11.2.0 and am seeing the following types of errors

490 | $ CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX, 1, -1,
| 2
......
3264 | CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFO, 1, -1,
| 1
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
make[2]: *** [CMakeFiles/scalapack.dir/build.make:12815: CMakeFiles/scalapack.dir/SRC/pstrord.f.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1237: CMakeFiles/scalapack.dir/all] Error 2
make: *** [Makefile:169: all] Error 2

I believe this can be solved from GNU 10+ by using the following compiler flag '-fallow-argument-mismatch'.

I have made a changed to SLmake.inc to include this flag (see below).....

$ diff SLmake.inc SLmake.inc.example
SLmake.inc:         FCFLAGS       = -O3 -fallow-argument-mismatch
SLmake.inc.example: FCFLAGS       = -O3

..... which seems to get ignored when running make following the cmake command. How do I set this flag correctly?

~> cmake ../CMakeLists.txt -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/my/install/dir -DCMAKE_VERBOSE_MAKEFILE=ON
~> make -j16 > make.out 2> make.err

I can get slightly further in the make process if I change the following line in the file CMakeCache.txt

CMAKE_Fortran_FLAGS:STRING=. ---> CMAKE_Fortran_FLAGS:STRING=-fallow-argument-mismatch

but then hit the following issues when running make again.

../../lib/libscalapack.so: undefined reference to MPI_Error_class' make[2]: *** [TESTING/LIN/CMakeFiles/xsgblu.dir/build.make:192: TESTING/xsgblu] Error 1 make[1]: *** [CMakeFiles/Makefile2:1575: TESTING/LIN/CMakeFiles/xsgblu.dir/all] Error 2 ../../lib/libscalapack.so: undefined reference to MPI_Error_class'
../../lib/libscalapack.so: undefined reference to MPI_Error_class' make[2]: *** [TESTING/LIN/CMakeFiles/xddtlu.dir/build.make:192: TESTING/xddtlu] Error 1 make[1]: *** [CMakeFiles/Makefile2:1497: TESTING/LIN/CMakeFiles/xddtlu.dir/all] Error 2 make[2]: *** [TESTING/LIN/CMakeFiles/xdlu.dir/build.make:192: TESTING/xdlu] Error 1 make[1]: *** [CMakeFiles/Makefile2:1289: TESTING/LIN/CMakeFiles/xdlu.dir/all] Error 2 ../../lib/libscalapack.so: undefined reference to MPI_Error_class'
../../lib/libscalapack.so: undefined reference to MPI_Error_class' ../../lib/libscalapack.so../../lib/libscalapack.so: undefined reference to : undefined reference to MPI_Comm_sizeMPI_Error_class' ../../lib/libscalapack.so: undefined reference to MPI_Error_class'
make[2]: *** [TESTING/LIN/CMakeFiles/xzdblu.dir/build.make:192: TESTING/xzdblu] Error 1
make[1]: *** [CMakeFiles/Makefile2:1445: TESTING/LIN/CMakeFiles/xzdblu.dir/all] Error 2
make[2]: *** [TESTING/LIN/CMakeFiles/xcdtlu.dir/build.make:192: TESTING/xcdtlu] Error 1
make[1]: *** [CMakeFiles/Makefile2:1523: TESTING/LIN/CMakeFiles/xcdtlu.dir/all] Error 2
../../lib/libscalapack.so: undefined reference to make[2]: *** [TESTING/LIN/CMakeFiles/xclu.dir/build.make:192: TESTING/xclu] Error 1 ../../lib/libscalapack.so: undefined reference to MPI_Error_class'
make[1]: *** [CMakeFiles/Makefile2:1315: TESTING/LIN/CMakeFiles/xclu.dir/all] Error 2
make[2]: *** [TESTING/LIN/CMakeFiles/xsdtlu.dir/build.make:192: TESTING/xsdtlu] Error 1
make[1]: *** [CMakeFiles/Makefile2:1471: TESTING/LIN/CMakeFiles/xsdtlu.dir/all] Error 2
../../lib/libscalapack.so: undefined reference to MPI_Error_class' ../../lib/libscalapack.so: undefined reference to MPI_Error_class'
../../lib/libscalapack.so: undefined reference to make[2]: *** [TESTING/LIN/CMakeFiles/xzdtlu.dir/build.make:192: TESTING/xzdtlu] Error 1 make[1]: *** [CMakeFiles/Makefile2:1549: TESTING/LIN/CMakeFiles/xzdtlu.dir/all] Error 2 ../../lib/libscalapack.so: undefined reference to MPI_Error_class'
make[2]: *** [TESTING/LIN/CMakeFiles/xzgblu.dir/build.make:192: TESTING/xzgblu] Error 1
../../lib/libscalapack.so: undefined reference to MPI_Error_class' make[1]: *** [CMakeFiles/Makefile2:1653: TESTING/LIN/CMakeFiles/xzgblu.dir/all] Error 2 make[2]: *** [TESTING/LIN/CMakeFiles/xzlu.dir/build.make:192: TESTING/xzlu] Error 1 make[1]: *** [CMakeFiles/Makefile2:1341: TESTING/LIN/CMakeFiles/xzlu.dir/all] Error 2 ../../lib/libscalapack.so: undefined reference to MPI_Error_class'
make[2]: *** [TESTING/LIN/CMakeFiles/xcdblu.dir/build.make:192: TESTING/xcdblu] Error 1
make[1]: *** [CMakeFiles/Makefile2:1419: TESTING/LIN/CMakeFiles/xcdblu.dir/all] Error 2
make[2]: *** [TESTING/LIN/CMakeFiles/xsdblu.dir/build.make:192: TESTING/xsdblu] Error 1
make[1]: *** [CMakeFiles/Makefile2:1367: TESTING/LIN/CMakeFiles/xsdblu.dir/all] Error 2
../../lib/libscalapack.so: undefined reference to MPI_Error_class' make[2]: *** [TESTING/LIN/CMakeFiles/xdgblu.dir/build.make:192: TESTING/xdgblu] Error 1 make[1]: *** [CMakeFiles/Makefile2:1601: TESTING/LIN/CMakeFiles/xdgblu.dir/all] Error 2 make[2]: *** [TESTING/LIN/CMakeFiles/xddblu.dir/build.make:192: TESTING/xddblu] Error 1 make[1]: *** [CMakeFiles/Makefile2:1393: TESTING/LIN/CMakeFiles/xddblu.dir/all] Error 2 ../../lib/libscalapack.so: undefined reference to MPI_Error_class'
../../lib/libscalapack.so: undefined reference to `MPI_Error_class'
make[2]: *** [TESTING/LIN/CMakeFiles/xslu.dir/build.make:192: TESTING/xslu] Error 1
make[1]: *** [CMakeFiles/Makefile2:1263: TESTING/LIN/CMakeFiles/xslu.dir/all] Error 2
make[2]: *** [TESTING/LIN/CMakeFiles/xcgblu.dir/build.make:192: TESTING/xcgblu] Error 1
make[1]: *** [CMakeFiles/Makefile2:1627: TESTING/LIN/CMakeFiles/xcgblu.dir/all] Error 2
make: *** [Makefile:169: all] Error 2

Finally, I notice that the version string in the file CMakeLists.txt for the 2.2.0 download is set to 2.1.0. Can this be corrected?

set(SCALAPACK_VERSION 2.1.0)
set(CPACK_PACKAGE_VERSION_MAJOR 2)
set(CPACK_PACKAGE_VERSION_MINOR 1)
set(CPACK_PACKAGE_VERSION_PATCH 0)

Many thanks,
Fab

@chandlerriver
Copy link

pstrord.f:525:51:

490 | $ CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX, 1, -1,
| 2
......
525 | CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFO, 1, -1, -1,
| 1
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
pstrord.f:1582:51:

490 | $ CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX, 1, -1,
| 2
......
1582 | CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, IERR, 1, -1,
| 1
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
pstrord.f:1593:54:

490 | $ CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX, 1, -1,
| 2
......
1593 | CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFO, 1, -1,
| 1
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
pstrord.f:3253:51:

490 | $ CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX, 1, -1,
| 2
......
3253 | CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, IERR, 1, -1,
| 1
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
pstrord.f:3264:54:

490 | $ CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, MMAX, 1, -1,
| 2
......
3264 | CALL IGAMX2D( ICTXT, 'All', TOP, 1, 1, INFO, 1, -1,
| 1
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
yes. i meet it too.....

@angsch
Copy link
Collaborator

angsch commented Dec 1, 2024

Duplicate of Reference-ScaLAPACK/scalapack#73.

I'm closing this here because the issue concerns Scalapack and not LAPACK. If there are more questions, please ask in the referenced Scalapack issue.

@angsch angsch closed this as completed Dec 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants