sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.43k stars 479 forks source link

Update Givaro, FFLAS-FFPACK and LinBox #17635

Closed jpflori closed 8 years ago

jpflori commented 9 years ago

Tarballs of released packages (with appropriate names) can be found at:

CC: @kiwifb @ClementPernet

Component: packages: standard

Keywords: linbox, givaro, fflas-ffpack, sd75

Author: Clément Pernet, Jeroen Demeyer

Branch: 7e8eb3a

Reviewer: François Bissey, Jeroen Demeyer, Dima Pasechnik

Issue created by migration from https://trac.sagemath.org/ticket/17635

ClementPernet commented 8 years ago

Description changed:

--- 
+++ 
@@ -1,4 +1,4 @@
 Tarballs at:
 * http://lig-membres.imag.fr/pernet/prereleases/givaro-4.0.1rc1.tar.gz
 * http://lig-membres.imag.fr/pernet/prereleases/linbox-1.4.0rc1.tar.gz
-* http://lig-membres.imag.fr/pernet/prereleases/fflas_ffpack-2.2.0rc1.tar.gz 
+* http://lig-membres.imag.fr/pernet/prereleases/fflas_ffpack-2.2.0rc1.tar.bz2 
jdemeyer commented 8 years ago
comment:39

On powerpc64le, I had to kill the Givaro test test-rmint_inv_ after 11 hours. I don't think the test is supposed to take that long...

ClementPernet commented 8 years ago
comment:40

Thanks for raising this one. Bug reported on givaro's issue tracker: https://github.com/linbox-team/givaro/issues/6

Currently looking for an acces to a ppc64el to debug it.

The part of givaro that fails, recint, does small lenght multi-precision arithmetic, and very likely triggers endianness issues. Note that this part of the library is not currently used in sage neither directly nor through fflas-ffpack and linbox. However we'd like to have it fixed anyway, in order to update givaro's debian package.

jdemeyer commented 8 years ago
comment:41

On the same machine, fflas-ffpack also fails: https://github.com/linbox-team/fflas-ffpack/issues/16

jdemeyer commented 8 years ago
comment:42

Apart from the build failures on some systems, are there any further obstructions to this ticket?

ClementPernet commented 8 years ago
comment:43

Replying to @jdemeyer:

On the same machine, fflas-ffpack also fails: https://github.com/linbox-team/fflas-ffpack/issues/16

Fixed in https://github.com/linbox-team/fflas-ffpack/commit/8634b80bd0c20c538faf9471c8e2289c5a50a925

Replying to @jdemeyer:

Apart from the build failures on some systems, are there any further obstructions to this ticket?

Apart from these, no obstruction on our side.

jdemeyer commented 8 years ago
comment:44

Replying to @ClementPernet:

Apart from these, no obstruction on our side.

So why was this ticket never set to "needs_review" then?

jdemeyer commented 8 years ago
comment:45

Replying to @ClementPernet:

Replying to @jdemeyer:

On the same machine, fflas-ffpack also fails: https://github.com/linbox-team/fflas-ffpack/issues/16

Fixed in https://github.com/linbox-team/fflas-ffpack/commit/8634b80bd0c20c538faf9471c8e2289c5a50a925

Do you plan to release fflas_ffpack-2.2.0rc2 for this? Or should we just use git master?

ClementPernet commented 8 years ago
comment:46
jdemeyer commented 8 years ago

Author: Clement Pernet

jdemeyer commented 8 years ago
comment:48

Replying to @ClementPernet:

  • I did not put the need_review as there was still a hanging question about the blas.pc file and gmp.pc.

I see. However, did anything change compared to earlier versions of these packages regarding compilation? If not and it worked before, it should still work...

ClementPernet commented 8 years ago
comment:49

As far as build and compilation is concerned, nothing changed. I'm checking a last few things on the linbox side (test suite fails badly on power8). Then I'd like to release this evening or tomorow and put this ticket in needs_review status.

ClementPernet commented 8 years ago

Description changed:

--- 
+++ 
@@ -1,4 +1,4 @@
-Tarballs at:
-* http://lig-membres.imag.fr/pernet/prereleases/givaro-4.0.1rc1.tar.gz
-* http://lig-membres.imag.fr/pernet/prereleases/linbox-1.4.0rc1.tar.gz
-* http://lig-membres.imag.fr/pernet/prereleases/fflas_ffpack-2.2.0rc1.tar.bz2 
+Tarballs of released packages (with appropriate names) can be found at:
+* http://lig-membres.imag.fr/pernet/prereleases/givaro-4.0.1.tar.gz
+* http://lig-membres.imag.fr/pernet/prereleases/linbox-1.4.0.tar.gz
+* http://lig-membres.imag.fr/pernet/prereleases/fflas_ffpack-2.2.0.tar.bz2 
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from 4cd2289 to f82a77d

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

f82a77dUpdate checksums to the latests released packages
ClementPernet commented 8 years ago
comment:52

Givaro, fflas-ffpack and linbox have just been released: https://groups.google.com/forum/#!topic/linbox-devel/6dIj_HW3k38

I updated the link in the ticket descriptions to the latest tarball and updated the checksums.

This ticket is now ready for review.

kiwifb commented 8 years ago
comment:53

Before passing to other details for this ticket, is everyone ok with linbox having openmp enabled?

kiwifb commented 8 years ago
comment:54

Actually both fflas-ffpack and linbox, fflas-ffpack has openmp enabled by default and it is stated explicitly in linbox. Our minmal compiler should have openmp support, I am wondering about unintended consequences. In sage-on-gentoo I am now using openblas with threads rather than openmp as I got into trouble with it.

ClementPernet commented 8 years ago
comment:55

Eventhough openmp is enabled in fflas-ffpack̀ and linbox, the current code called by sage does not use any OpenMP parallelism.

If you think it is necessary, I could pass the --disable-open argument to the configure scripts. Thanks for pointing out that linbox still forces the -fopenmp evenif --disable-omp was passed to configure. We'll fix it.

Regarding the use of a threaded BLAS: it is possible to run the sequential code of fflas-ffpack on top of a parallel BLAS, but one will achieve much better performances by running the parallel code of fflas-ffpack (with OpenMP enabled) on top of a sequential BLAS. This will need further discussions when we'll want to have sage run its linear algebra kernels in parallel.

kiwifb commented 8 years ago
comment:56

Replying to @ClementPernet:

Eventhough openmp is enabled in fflas-ffpack̀ and linbox, the current code called by sage does not use any OpenMP parallelism.

Yes

If you think it is necessary, I could pass the --disable-open argument to the configure scripts.

At this stage I think that's an unknown that will only be determined by experience.

Thanks for pointing out that linbox still forces the -fopenmp evenif --disable-omp was passed to configure. We'll fix it.

I haven't looked at linbox' configure.ac yet so I don't know about that. I only noticed that it for fflas-ffpack it is the default if you don't pass anything.

Regarding the use of a threaded BLAS: it is possible to run the sequential code of fflas-ffpack on top of a parallel BLAS, but one will achieve much better performances by running the parallel code of fflas-ffpack (with OpenMP enabled) on top of a sequential BLAS. This will need further discussions when we'll want to have sage run its linear algebra kernels in parallel.

Sure.

kiwifb commented 8 years ago
comment:57

I had a concern that there may be linking issue on cygwin because of libgomp. But -fopenmp should be in the CFLAGS provided by fflas-ffpack.pc. So long as those flags are passed to the linker I guess we should be ok.

@jpflori can you comment on the linking needs on cygwin?

kiwifb commented 8 years ago
comment:58

OK, more thoughts about fflas-ffpack. By default usage of sse4.1, avx, avx2 and fma instructions are enabled if found. This is a problem when building a binary for redistribution as we cannot guarantee that the target machine will support any instructions found on the building machine. We need to be able to disable those for binary build (SAGE_FAT_BINARY=yes?).

Going through linbox now. Like fflas-ffpack, openmp is enabled by default even without --enable-openmp in spkg-install but it looks like it can be disable the standard way to me. linbox looks for

LB_CHECK_IML
LB_CHECK_M4RI
LB_CHECK_M4RIE
LB_CHECK_MPFR
# we nedd mpfr next :
LB_CHECK_FPLLL
LB_CHECK_FLINT

LB_CHECK_NTL

but none of these are in linbox's dependencies. Are any of those actually used? Actually the current version should depend on ntl and iml

(sage-sh) fbissey@QCD-nzi3:sage-7.0$ ldd -r local/lib/liblinboxsage.so.0.0.0 
    linux-vdso.so.1 (0x00007ffcaf131000)
    libgmpxx.so.8 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/libgmpxx.so.8 (0x00007f3f89ea8000)
    libgmp.so.16 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/libgmp.so.16 (0x00007f3f89c31000)
    libntl.so.19 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/libntl.so.19 (0x00007f3f89810000)
    libcblas.so.3 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/libcblas.so.3 (0x00007f3f895ed000)
    libatlas.so.3 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/libatlas.so.3 (0x00007f3f88d01000)
    liblinbox.so.0 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/liblinbox.so.0 (0x00007f3f88afa000)
    libgivaro.so.0 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/libgivaro.so.0 (0x00007f3f8889d000)
    libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/libstdc++.so.6 (0x00007f3f88557000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f3f88253000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f3f87eb8000)
    libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/libgcc_s.so.1 (0x00007f3f87ca0000)
    libgf2x.so.1 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/libgf2x.so.1 (0x00007f3f87a8a000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3f8786d000)
    /lib64/ld-linux-x86-64.so.2 (0x0000561bc940b000)
undefined symbol: maxMagnMP (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: findRNS   (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: RNSbound  (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: certSolveMP   (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: certSolveRedMP    (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: nonsingSolvLlhsMM (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: nonsingSolvRNSMM  (local/lib/liblinboxsage.so.0.0.0)

compared to sage-on-gentoo on the same machine

ldd -r /usr/lib64/liblinboxsage.so.0.0.0
    linux-vdso.so.1 (0x00007ffe013bb000)
    libgmpxx.so.4 => /usr/lib64/libgmpxx.so.4 (0x00007f8a84d7a000)
    libgmp.so.10 => /usr/lib64/libgmp.so.10 (0x00007f8a84b09000)
    libntl-9.6.2.so => /usr/lib64/libntl-9.6.2.so (0x00007f8a846e5000)
    libreflapack.so => /usr/lib64/libreflapack.so (0x00007f8a83f03000)
    libopenblas_threads.so.0 => /usr/lib64/libopenblas_threads.so.0 (0x00007f8a8396b000)
    liblinbox.so.0 => /usr/lib64/liblinbox.so.0 (0x00007f8a83763000)
    libgivaro.so.0 => /usr/lib64/libgivaro.so.0 (0x00007f8a83507000)
    libiml.so.0 => /usr/lib64/libiml.so.0 (0x00007f8a832e6000)
    libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/libstdc++.so.6 (0x00007f8a82fd6000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f8a82cd2000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f8a82937000)
    libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/libgcc_s.so.1 (0x00007f8a8271f000)
    libgf2x.so.1 => /usr/lib64/libgf2x.so.1 (0x00007f8a82509000)
    libgfortran.so.3 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/libgfortran.so.3 (0x00007f8a821e0000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8a81fc4000)
    /lib64/ld-linux-x86-64.so.2 (0x00005557ec4cf000)
    libquadmath.so.0 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/libquadmath.so.0 (0x00007f8a81d85000)

Where I had to add LIBS="-liml" for things to be completely resolved.

jdemeyer commented 8 years ago

Reviewer: François Bissey

ClementPernet commented 8 years ago
comment:60

Replying to @kiwifb:

OK, more thoughts about fflas-ffpack. By default usage of sse4.1, avx, avx2 and fma instructions are enabled if found. This is a problem when building a binary for redistribution as we cannot guarantee that the target machine will support any instructions found on the building machine. We need to be able to disable those for binary build (SAGE_FAT_BINARY=yes?).

Sure, we could do that. The alternative option would be to do as for the openblas deb package: have it include all kernel variants and let the switch happen dynamically depending on the variant of x86 it is run on. I am not very familiar with this technique and need to investigate how this can be built.

Going through linbox now. Like fflas-ffpack, openmp is enabled by default even without --enable-openmp in spkg-install but it looks like it can be disable the standard way to me.

Yes it can, but in linbox it will still pass a -fopenmp argument to g++ even if you passed the --disable-openmp option at configure time. You made me find it yesterday, and this is now https://github.com/linbox-team/linbox/issues/24.

linbox looks for

LB_CHECK_IML
LB_CHECK_M4RI
LB_CHECK_M4RIE
LB_CHECK_MPFR
# we nedd mpfr next :
LB_CHECK_FPLLL
LB_CHECK_FLINT

LB_CHECK_NTL

but none of these are in linbox's dependencies. Are any of those actually used?

These are optional dependencies. The long term goal is to have linbox code that uses these libs when available. For the moment, I think they are mostly used for benchmarking comparisons, except for NTL, IML and fplll used here and there when available.

Passing the --with-all= option to configure, as we do, will automatically enable all these optional dependencies if they are found. We could be more picky if this causes problems.

Actually the current version should depend on ntl and iml

(sage-sh) fbissey@QCD-nzi3:sage-7.0$ ldd -r local/lib/liblinboxsage.so.0.0.0 
  linux-vdso.so.1 (0x00007ffcaf131000)
  libgmpxx.so.8 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/libgmpxx.so.8 (0x00007f3f89ea8000)
  libgmp.so.16 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/libgmp.so.16 (0x00007f3f89c31000)
  libntl.so.19 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/libntl.so.19 (0x00007f3f89810000)
  libcblas.so.3 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/libcblas.so.3 (0x00007f3f895ed000)
  libatlas.so.3 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/libatlas.so.3 (0x00007f3f88d01000)
  liblinbox.so.0 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/liblinbox.so.0 (0x00007f3f88afa000)
  libgivaro.so.0 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/libgivaro.so.0 (0x00007f3f8889d000)
  libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/libstdc++.so.6 (0x00007f3f88557000)
  libm.so.6 => /lib64/libm.so.6 (0x00007f3f88253000)
  libc.so.6 => /lib64/libc.so.6 (0x00007f3f87eb8000)
  libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/libgcc_s.so.1 (0x00007f3f87ca0000)
  libgf2x.so.1 => /home/fbissey/sandbox/git-fork/sage-7.0/local/lib/libgf2x.so.1 (0x00007f3f87a8a000)
  libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3f8786d000)
  /lib64/ld-linux-x86-64.so.2 (0x0000561bc940b000)
undefined symbol: maxMagnMP   (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: findRNS (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: RNSbound    (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: certSolveMP (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: certSolveRedMP  (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: nonsingSolvLlhsMM   (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: nonsingSolvRNSMM    (local/lib/liblinboxsage.so.0.0.0)

compared to sage-on-gentoo on the same machine

ldd -r /usr/lib64/liblinboxsage.so.0.0.0
  linux-vdso.so.1 (0x00007ffe013bb000)
  libgmpxx.so.4 => /usr/lib64/libgmpxx.so.4 (0x00007f8a84d7a000)
  libgmp.so.10 => /usr/lib64/libgmp.so.10 (0x00007f8a84b09000)
  libntl-9.6.2.so => /usr/lib64/libntl-9.6.2.so (0x00007f8a846e5000)
  libreflapack.so => /usr/lib64/libreflapack.so (0x00007f8a83f03000)
  libopenblas_threads.so.0 => /usr/lib64/libopenblas_threads.so.0 (0x00007f8a8396b000)
  liblinbox.so.0 => /usr/lib64/liblinbox.so.0 (0x00007f8a83763000)
  libgivaro.so.0 => /usr/lib64/libgivaro.so.0 (0x00007f8a83507000)
  libiml.so.0 => /usr/lib64/libiml.so.0 (0x00007f8a832e6000)
  libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/libstdc++.so.6 (0x00007f8a82fd6000)
  libm.so.6 => /lib64/libm.so.6 (0x00007f8a82cd2000)
  libc.so.6 => /lib64/libc.so.6 (0x00007f8a82937000)
  libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/libgcc_s.so.1 (0x00007f8a8271f000)
  libgf2x.so.1 => /usr/lib64/libgf2x.so.1 (0x00007f8a82509000)
  libgfortran.so.3 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/libgfortran.so.3 (0x00007f8a821e0000)
  libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8a81fc4000)
  /lib64/ld-linux-x86-64.so.2 (0x00005557ec4cf000)
  libquadmath.so.0 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/libquadmath.so.0 (0x00007f8a81d85000)

Where I had to add LIBS="-liml" for things to be completely resolved.

This seems correct: the sage-linbox interface only uses these 2 libs when found. Are you saying that the -liml option is not passed to gcc even when iml was detected at configure time? This would be another bug then.

kiwifb commented 8 years ago
comment:61

Replying to @ClementPernet:

This seems correct: the sage-linbox interface only uses these 2 libs when found. Are you saying that the -liml option is not passed to gcc even when iml was detected at configure time? This would be another bug then.

Yes, at least it is the case in 1.3.6, I haven't confirmed yet it is the case in 1.4.0, but if you weren't aware of it then it is probably still the case. I would rather have ntl and iml at least be in the dependencies as it makes the build reproducible. Otherwise the libraries linked to linboxsage will be random.

jdemeyer commented 8 years ago
comment:62

On POWER8, I get an internal compiler error while compiling fflas-ffpack using GCC-4.9.3.

Clement, did you manage to compile fflas-ffpack on sardonis? Do you use the system-installed GCC 4.9.2 or did you compile within Sage?

ClementPernet commented 8 years ago
comment:63

Replying to @jdemeyer:

On POWER8, I get an internal compiler error while compiling fflas-ffpack using GCC-4.9.3.

Clement, did you manage to compile fflas-ffpack on sardonis? Do you use the system-installed GCC 4.9.2 or did you compile within Sage?

Outch! I did compile with the system-installed gcc v 4.9.2 and did not hit any internal compiler error.

kiwifb commented 8 years ago
comment:64

linbox again, LB_OPT is commented out in configure.ac therefore --enable-optimization which is still in spkg-install is no longer a recognised option and should be removed unless it is an error upstream.

jdemeyer commented 8 years ago
comment:65

src/sage/rings/finite_rings/element_givaro.pxd refers to givaro/givgfq.h, which no longer exists.

jdemeyer commented 8 years ago
comment:66

On powerpc64le with GCC 5.3.0, all 3 packages build and pass their testsuite.

jdemeyer commented 8 years ago
comment:67

On my laptop (Linux tamiyo 3.17.7-gentoo #1 SMP PREEMPT Wed Dec 31 20:06:39 CET 2014 x86_64 Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz GenuineIntel GNU/Linux), fflas_ffpack fails to build with GCC 4.8.4:

make[6]: Entering directory '/usr/local/src/sage-config/local/var/tmp/sage/build/fflas_ffpack-2.2.0/src/fflas-ffpack/interfaces/libs'
/bin/bash ../../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../..  -I../../..  -I../../../fflas-ffpack/utils/ -I../../../fflas-ffpack/fflas/ -I../../../fflas-ffpack/ffpack -I../../../fflas-ffpack/field -I/usr/local/src/sage-config/local/include -I/usr/local/src/sage-config/local//include -D__FFLASFFPACK_HAVE_CBLAS  -msse4.1 -mavx -fabi-version=6 -fopenmp  -O2  -Wall -DNDEBUG -UFFLASFFPACK_DEBUG -g -O2 -fPIC  -std=gnu++11 -c -o fflas_L1_inst.lo fflas_L1_inst.C
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../../.. -I../../.. -I../../../fflas-ffpack/utils/ -I../../../fflas-ffpack/fflas/ -I../../../fflas-ffpack/ffpack -I../../../fflas-ffpack/field -I/usr/local/src/sage-config/local/include -I/usr/local/src/sage-config/local//include -D__FFLASFFPACK_HAVE_CBLAS -msse4.1 -mavx -fabi-version=6 -fopenmp -O2 -Wall -DNDEBUG -UFFLASFFPACK_DEBUG -g -O2 -fPIC -std=gnu++11 -c fflas_L1_inst.C  -fPIC -DPIC -o .libs/fflas_L1_inst.o
In file included from ../../../fflas-ffpack/fflas/fflas_fger_mp.inl:40:0,
                 from ../../../fflas-ffpack/fflas/fflas.h:126,
                 from fflas_L1_inst.C:34:
../../../fflas-ffpack/fflas/fflas_fgemm/fgemm_classical_mp.inl:204:2: error: stray '#' in program
   WAIT;
  ^
../../../fflas-ffpack/fflas/fflas_fgemm/fgemm_classical_mp.inl: In function 'typename FFPACK::RNSInteger<T>::Element_ptr FFLAS::fgemm(const FFPACK::RNSInteger<T>&, FFLAS::FFLAS_TRANSPOSE, FFLAS::FFLAS_TRANSPOSE, size_t, size_t, size_t, typename FFPACK::RNSInteger<T>::Element, typename FFPACK::RNSInteger<T>::ConstElement_ptr, size_t, typename FFPACK::RNSInteger<T>::ConstElement_ptr, size_t, typename FFPACK::RNSInteger<T>::Element, typename FFPACK::RNSInteger<T>::Element_ptr, size_t, FFLAS::MMHelper<FFPACK::RNSInteger<T>, FFLAS::MMHelperAlgo::Classic, FFLAS::ModeCategories::DefaultTag, FFLAS::ParSeqHelper::Parallel<Cut, Param> >&)':
../../../fflas-ffpack/fflas/fflas_fgemm/fgemm_classical_mp.inl:204:8: error: expected ';' before string constant
   WAIT;
        ^
Makefile:576: recipe for target 'fflas_L1_inst.lo' failed
make[6]: *** [fflas_L1_inst.lo] Error 1

Full log attached.

jdemeyer commented 8 years ago

fflas_ffpack build failure on x86_64 GNU/linux GCC 4.8.4

jdemeyer commented 8 years ago
comment:68

Attachment: fflas_ffpack-2.2.0.log

Some of the preprocessed code looks like

#pragma omp task shared(F)
 {fadd(F, rowsize, N, A+iter.begin()*lda, lda, B+iter.begin()*ldb, ldb, C+iter.begin()*ldc, ldc);;};;} } };};} #pragma omp taskwait
;;        }

so I guess you're missing some newlines in certain macros.

jdemeyer commented 8 years ago

Changed branch from u/cpernet/givaro_fflasffpack_linbox to u/jdemeyer/givaro_fflasffpack_linbox

jdemeyer commented 8 years ago
comment:70

Due to https://github.com/linbox-team/linbox/issues/24 this does not actually work...


New commits:

6c253a0Disable openmp in fflas_ffpack
jdemeyer commented 8 years ago

Changed commit from f82a77d to 6c253a0

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from 6c253a0 to 5dc9f12

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

5dc9f12Disable openmp in linbox
jdemeyer commented 8 years ago
comment:72

Note that this ticket conflicts badly with #20133.

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from 5dc9f12 to 35c5190

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

26fc91bCosmetic changes
35c5190Fix Givaro includes
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from 35c5190 to b153b93

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

b153b93Put FFLASFFPACK_CFLAGS where the linbox headers are included
jdemeyer commented 8 years ago
comment:75

I got this to build properly now, but there are still a lot of doctest failures in finite field arithmetic :-(

Are there any significant API changes in Givaro that we should know about?

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from b153b93 to 402dd10

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

402dd10Reduce modulo characteristic before calling GFqDom::init()
jdemeyer commented 8 years ago

Changed author from Clement Pernet to Clement Pernet, Jeroen Demeyer

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

186c233If SAGE_FAT_BINARY is set, disable all processor-specific optimizations
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from 402dd10 to 186c233

kiwifb commented 8 years ago
comment:79

Replying to @jdemeyer:

Note that this ticket conflicts badly with #20133.

Will have conflicts with #20140 if I add bits to the dependencies of linbox. As mentioned earlier it has automagic dependencies on iml, ntl and now fplll (to check) so you potentially get slightly different linbox depending on the build order. I am uncomfortable with that.