sfilippone/psblas3

Compiling error of 'psb_metispart_mod' [LONG INTEGERS]

Closed this issue · 7 comments

Hi all.

I'm testing compilation of psblas3 libraries for 8-byte integer data. Configure is set in this way:

+ ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-serial --without-metis '--with-fcopt=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wno-unused-variable -fPIC -I/usr/lib64/gfortran/modules -I/usr/include/openblas' '--with-ccopt=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/usr/include/openblas' --with-metis=-lmetis64 --with-amd=-lamd --with-blas=-lopenblas64 --with-lapack= --with-amdincdir=/usr/include/suitesparse --with-metisincdir=/usr/include --enable-long-integers

Are used openblas-serial64 and metis64 libraries from Fedora, util library (against Metis64) is failing:

make[1]: Entering directory '/home/sagitter/rpmbuild/BUILD/psblas3-3.5.2/build64/util'
gfortran -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wno-unused-variable -fPIC -I/usr/lib64/gfortran/modules -I/usr/include/openblas  -I. -I../modules  -DHAVE_AMD -DHAVE_METIS -DHAVE_LAPACK -DHAVE_FINAL -DHAVE_ISO_FORTRAN_ENV -DHAVE_FLUSH_STMT -DHAVE_VOLATILE -DLONG_INTEGERS -DSERIAL_MPI -DMPI_MOD  -c psb_metispart_mod.F90 -o psb_metispart_mod.o
psb_metispart_mod.F90:367:19:

             info = METIS_PartGraphKway(nl,irpl,jal,idummy,jdummy,&
                   1
Error: Type mismatch in argument 'n' at (1); passed INTEGER(8) to INTEGER(4)
psb_metispart_mod.F90:372:19:

             info = METIS_PartGraphKway(nl,irpl,jal,idummy,jdummy,&
                   1
Error: Type mismatch in argument 'n' at (1); passed INTEGER(8) to INTEGER(4)
psb_metispart_mod.F90:377:17:

           info = METIS_PartGraphKway(nl,irpl,jal,idummy,jdummy,&
                 1
Error: Type mismatch in argument 'n' at (1); passed INTEGER(8) to INTEGER(4)
psb_metispart_mod.F90:265:15:

         wgh_ = weights
               1
Warning: Possible change of value in conversion from REAL(8) to REAL(4) at (1) [-Wconversion]
psb_metispart_mod.F90:244:15:

         wgh_ = weights
               1
Warning: Possible change of value in conversion from REAL(8) to REAL(4) at (1) [-Wconversion]
psb_metispart_mod.F90:185:17:

           wgh_ = weights
                 1
Warning: Possible change of value in conversion from REAL(8) to REAL(4) at (1) [-Wconversion]
psb_metispart_mod.F90:158:17:

           wgh_ = weights
                 1
Warning: Possible change of value in conversion from REAL(8) to REAL(4) at (1) [-Wconversion]
make[1]: *** [../Make.inc:80: psb_metispart_mod.o] Error 1
make[1]: Leaving directory '/home/sagitter/rpmbuild/BUILD/psblas3-3.5.2/build64/util'
make: *** [Makefile:24: utild] Error 2

Hi @sagitter

I'm testing compilation of psblas3 libraries for 8-byte integer data.

Don't. I am looking at a complete rewrite of 8-bytes support in the branch MixedI8; in that context we'll look at metis64. BTW, I'd like any feedback on the approach I am testing in the branch, and in the related MLD2P4 branch; however I have not put in a proper documentation yet, feel free to contact me offline if you want to try it out.
Thanks
Salvatore

Hi @sagitter
I have now branched versions 3.6 and 2.2, and I merged into development the experimental version with a uch better handling of integer sizes. More specifically, you can choose at configure time whether local indices are 4 or 8 bytes, and whether global indices are 4 or 8 bytes, with the only forbidden combination being local 8 bytes and global 4 bytes. The default version currently is set to be 4 bytes locals and 8 bytes globals.
In this context, we should also change the METIS interface to call the 4- or 8- bytes version depending on what is chosen at configure time; this I have not yet had time to do, but plan to work on it between now and mid-January. Any comments on the interface of the current development branch are welcome.
Thanks
S.

I'm still getting similar error with psblas-3.6.1-3 (build log) but without requesting a compilation for long-integer data.

Please, tell me how to manage them.

Also, note the version of Configure script:

    Welcome to the **PSBLAS 3.5** configure Script.
This creates Make.inc, but if you read carefully the
documentation, you can make your own by hand for your needs.
Be sure to specify the library paths of your interest. Examples:
    ./configure --with-libs=-L/some/directory/LIB    <- will append to LIBS
    FC=mpif90 CC=mpicc ./configure           <- will force FC,CC
See ./configure --help=short fore more info.

Regarding the long_integer libraries build:

make[2]: Entering directory '/home/sagitter/rpmbuild/BUILD/psblas3-3.6.1-4/build64/base/modules'
gfortran -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules -fallow-argument-mismatch -fdefault-integer-8 -Wno-unused-variable -Wno-unused-dummy-argument -fPIC  -I.. -I. -I. -c aux/psb_hash_mod.f90 -o aux/psb_hash_mod.o
f951: Warning: '-Werror=' argument '-Werror=format-security' is not valid for Fortran
aux/psb_hash_mod.f90:350:14:

  350 |     hk = iand(psb_hashval(key),hmask)
      |              1
Error: There is no specific function for the generic 'psb_hashval' at (1)
aux/psb_hash_mod.f90:287:14:

  287 |     hk = iand(psb_hashval(key),hmask)
      |              1
Error: There is no specific function for the generic 'psb_hashval' at (1)

Full build log attached.
psblas-3.6.1-4_build.log

Long integer support (and METIS support) has been completey overhauled in V3.7.0