Opened 11 years ago
Last modified 6 years ago
#9562 closed enhancement
Add M4RIE to Sage — at Version 60
Reported by: | malb | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-4.8 |
Component: | packages: standard | Keywords: | m4ri, sd32 |
Cc: | mvngu, SimonKing | Merged in: | |
Authors: | Martin Albrecht | Reviewers: | Paul Zimmermann |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | #11574 | Stopgaps: |
Description (last modified by )
M4RIE is a library for linear algebra over small extension of GF(2). It is still in an early stage but already offers performance comparable to Magma for many inputs and is more than 1000 times faster than what we have in Sage right now.
Upstream: http://bitbucket.org/malb/m4rie/
Sage Days 24 coding sprint: http://wiki.sagemath.org/days24/projects/gf2e
- Install https://bitbucket.org/malb/m4ri/downloads/libm4rie-20110715.spkg
- Apply attachment:m4rie_for_sage.patch
- Apply attachment:m4rie_spkg.patch to Sage root repository
Change History (61)
comment:1 Changed 11 years ago by
- Description modified (diff)
comment:2 Changed 11 years ago by
comment:3 Changed 11 years ago by
The attached patch depends on #9475
comment:4 follow-up: ↓ 8 Changed 11 years ago by
The package compiles on t2. sage-check fails because libstdc++ cannot be found (I believe this is due to a problem in the old Sage I have on t2). I cannot apply my patch against this old version of Sage either.
comment:5 Changed 11 years ago by
This builds a static library only on Cygwin, but segfaults on both of the tests.
comment:6 Changed 11 years ago by
Mike, is there a Sage I can copy on winxp1?
comment:7 Changed 11 years ago by
sage -t devel/sage/sage/modular/modsym/space.py # 1 doctests failed sage -t devel/sage/sage/misc/sagedoc.py # 3 doctests failed sage -t devel/sage/sage/crypto/mq/mpolynomialsystem.py # 19 doctests failed sage -t devel/sage/sage/crypto/mq/sr.py # 7 doctests failed sage -t devel/sage/sage/modular/modsym/modsym.py # 1 doctests failed sage -t devel/sage/sage/rings/polynomial/pbori.pyx # 2 doctests failed sage -t devel/sage/sage/crypto/block_cipher/miniaes.py # 72 doctests failed
comment:8 in reply to: ↑ 4 Changed 11 years ago by
Replying to malb:
The package compiles on t2. sage-check fails because libstdc++ cannot be found (I believe this is due to a problem in the old Sage I have on t2). I cannot apply my patch against this old version of Sage either.
There's a Sage 4.5.1 package in /usr/local.
comment:9 Changed 11 years ago by
After unpacking that I get
21 from numpy.lib import triu ---> 22 from numpy.linalg import lapack_lite 23 from numpy.core.defmatrix import matrix_power 24 ImportError: ld.so.1: python: fatal: libgfortran.so.3: open failed: No such file or directory Error importing ipy_profile_sage - perhaps you should run %upgrade? WARNING: Loading of ipy_profile_sage failed.
Any ideas?
comment:10 Changed 11 years ago by
- Cc mvngu added
- Status changed from new to needs_work
The updated patch fixes all doctest failures.
PS: CCing Minh since I'm touching his code in a potentially non-trivial way/
comment:11 Changed 11 years ago by
It's not passing the tests properly on 64-bit OpenSolaris, and I doubt anywhere where SAGE64 needs to be set to yes. The -m64 flag is not getting passed when running the tests, so whilst it builds a 64-bit library, it looks like it tries to create 32-bit objects and link to that 64-bit library.
I have not investigated this in any detail, but they were my initial observations. I would try building on 't2' with SAGE64 set to yes. Not all of Sage will build 64-bit without some hacks, but it should be fairly easy to get enough of Sage built to build this library.
Successfully installed libm4ri-20100730 Running the test suite. Testing the M4RI library make -j12 test_elimination test_multiplication make[1]: Entering directory `/export/home/drkirkby/sage-4.5/spkg/build/libm4ri-20100730/m4rie' make[1]: warning: -jN forced in submake: disabling jobserver mode. g++ -DHAVE_CONFIG_H -I. -I./src -I/export/home/drkirkby/sage-4.5/local/include -m64 -g -O2 -MT test_elimination.o -MD -MP -MF .deps/test_elimination.Tpo -c -o test_elimination.o `test -f 'tests/test_elimination.cc' || echo './'`tests/test_elimination.cc g++ -DHAVE_CONFIG_H -I. -I./src -I/export/home/drkirkby/sage-4.5/local/include -m64 -g -O2 -MT test_multiplication.o -MD -MP -MF .deps/test_multiplication.Tpo -c -o test_multiplication.o `test -f 'tests/test_multiplication.cc' || echo './'`tests/test_multiplication.cc mv -f .deps/test_elimination.Tpo .deps/test_elimination.Po /bin/sh ./libtool --tag=CXX --mode=link g++ -g -O2 -lm4rie -lm4ri -lgivaro -lntl -lgmpxx -lgmp -lm -lstdc++ -o test_elimination test_elimination.o mv -f .deps/test_multiplication.Tpo .deps/test_multiplication.Po /bin/sh ./libtool --tag=CXX --mode=link g++ -g -O2 -lm4rie -lm4ri -lgivaro -lntl -lgmpxx -lgmp -lm -lstdc++ -o test_multiplication test_multiplication.o libtool: link: g++ -g -O2 -o .libs/test_elimination test_elimination.o /export/home/drkirkby/sage-4.5/spkg/build/libm4ri-20100730/m4rie/.libs/libm4rie.so -L/export/home/drkirkby/sage-4.5/local/lib /export/home/drkirkby/sage-4.5/local/lib/libm4ri.so /export/home/drkirkby/sage-4.5/local/lib/libgivaro.so -L/export/home/drkirkby/sage-4.5/local//lib -lntl /export/home/drkirkby/sage-4.5/local/lib/libgmpxx.so /export/home/drkirkby/sage-4.5/local/lib/libgmp.so /usr/local/gcc-4.4.4-multilib/lib/amd64/libstdc++.so -lm -Wl,-R -Wl,/export/home/drkirkby/sage-4.5/local/lib -Wl,-R -Wl,/usr/local/gcc-4.4.4-multilib/lib/amd64 libtool: link: g++ -g -O2 -o .libs/test_multiplication test_multiplication.o /export/home/drkirkby/sage-4.5/spkg/build/libm4ri-20100730/m4rie/.libs/libm4rie.so -L/export/home/drkirkby/sage-4.5/local/lib /export/home/drkirkby/sage-4.5/local/lib/libm4ri.so /export/home/drkirkby/sage-4.5/local/lib/libgivaro.so -L/export/home/drkirkby/sage-4.5/local//lib -lntl /export/home/drkirkby/sage-4.5/local/lib/libgmpxx.so /export/home/drkirkby/sage-4.5/local/lib/libgmp.so /usr/local/gcc-4.4.4-multilib/lib/amd64/libstdc++.so -lm -Wl,-R -Wl,/export/home/drkirkby/sage-4.5/local/lib -Wl,-R -Wl,/usr/local/gcc-4.4.4-multilib/lib/amd64 ldld:: fatal: filefatal :test_multiplication.o :file wrong test_elimination.o: wrong ELF class:ELF ELFCLASS64 ld: fatal: file processing errors.class No: output ELFCLASS64written to .libs/test_multiplication ld: fatal: file processing errors. No output written to .libs/test_elimination collect2: ld returned 1 exit status collect2: ld returned 1 exit status make[1]: *** [test_multiplication] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: *** [test_elimination] Error 1 make[1]: Leaving directory `/export/home/drkirkby/sage-4.5/spkg/build/libm4ri-20100730/m4rie' make: *** [check-am] Error 2 Error testing M4RI ************************************* Error testing package ** libm4ri-20100730 ** ************************************* sage: An error occurred while testing libm4ri-20100730
comment:12 Changed 11 years ago by
- Status changed from needs_work to needs_review
I updated the SPKG linked above
- Building shared libraries on Cygwin now
- Fixed the crashes in spkg-check in Cygwin (this was actually a real bug)
- Fixed flags for SAGE64
comment:13 Changed 11 years ago by
Everything works on my Cygwin install.
comment:14 follow-up: ↓ 15 Changed 11 years ago by
It passed all self-tests on 64-bit OpenSolaris (x64) and 64-bit Solaris 10 (SPARC). Since neither platform has a stable version of Sage yet, running the doctests is pointless.
A few questions:
- Has there been an agreement to add this library? If so, can you provide a link to it.
- Why is it not in another package, rather than added to the libm4ri package?
- Do the self tests pass on Linux?
- Do the doctests pass on Linux?
- Do the self-tests pass on 32-bit SPARC? (Note my point above about there being a 4.5.1 in /usr/local on t2)
- Do the doc tests pass on 32-bit SPARC?
- Do the self-tests pass on OS X?
- Do the doctests pass on OS X?
comment:15 in reply to: ↑ 14 ; follow-up: ↓ 16 Changed 11 years ago by
Replying to drkirkby:
A few questions:
- Has there been an agreement to add this library? If so, can you provide a link to it.
No decision on [sage-devel] has happened yet. However, the Sage developers here at Sage Days 24 seem to be in favour of adding it.
- Why is it not in another package, rather than added to the libm4ri package?
It makes maintaining the thing easier for all sides: I'm the maintainer of both libraries for both upstream and the SPKGs. It isn't even decided yet whether the two libraries might get merged in the future. Finally, William asked me to not add a new SPKG but to add the M4RIe extension to the M4RI package.
- Do the self tests pass on Linux?
Yes.
- Do the doctests pass on Linux?
Yes.
- Do the self-tests pass on 32-bit SPARC? (Note my point above about there being a 4.5.1 in /usr/local on t2)
Note my point above about not being able to use it.
- Do the doc tests pass on 32-bit SPARC?
No clue.
- Do the self-tests pass on OS X?
Yes.
- Do the doctests pass on OS X?
Yes.
comment:16 in reply to: ↑ 15 Changed 11 years ago by
Replying to malb:
Replying to drkirkby:
A few questions:
- Has there been an agreement to add this library? If so, can you provide a link to it.
No decision on [sage-devel] has happened yet. However, the Sage developers here at Sage Days 24 seem to be in favour of adding it.
If the packages does get positive review, there should be a note to the release manager(s) not to merge it until there has been an agreement. Though in this case, it looks like getting a vote seems a formality.
- Why is it not in another package, rather than added to the libm4ri package?
It makes maintaining the thing easier for all sides: I'm the maintainer of both libraries for both upstream and the SPKGs. It isn't even decided yet whether the two libraries might get merged in the future. Finally, William asked me to not add a new SPKG but to add the M4RIe extension to the M4RI package.
One obvious disadvantage of that approach is that since one library relies on the other, the first could be built in parallel with some other packages. That could potentially slow parallel builds.
- Do the self tests pass on Linux?
Yes.
- Do the doctests pass on Linux?
Yes.
- Do the self-tests pass on 32-bit SPARC? (Note my point above about there being a 4.5.1 in /usr/local on t2)
Note my point above about not being able to use it.
Your point above says that's probably because you have an old version.
But I said above, there is the latest version on there - (/usr/local/sage-4.5.1-Solaris_10_SPARC-sun4u-SunOS.tar.gz
is a pre-built copy of the latest version of Sage on 't2'). If that does not work, let me know - I'd be very surprised if it does not. Otherwise, you could just build Sage from source.
- Do the doc tests pass on 32-bit SPARC?
No clue.
See point above.
Dave
comment:17 Changed 11 years ago by
Dave, the testuite fails:
/bin/bash ./libtool --tag=CXX --mode=link g++ -g -O2 -lm4rie -lm4ri -lgivaro -lntl -lgmpxx -lgmp -lm -lstdc++ -o test_elimination test_elimination.o libtool: link: warning: library `/home/malb/t2/sage-4.5.1-Solaris_10_SPARC-sun4u-SunOS/local/lib/libstdc++.la' was moved. libtool: link: cannot find the library `/usr/local/gcc-4.4.3/lib/libstdc++.la' or unhandled argument `/usr/local/gcc-4.4.3/lib/libstdc++.la' make[1]: *** [test_elimination] Error 1 make[1]: Leaving directory `/home/malb/t2/sage-4.5.1-Solaris_10_SPARC-sun4u-SunOS/spkg/build/libm4ri-20100730/m4rie'
Any idea why it wouldn't find libstdc++ on t2?
comment:18 Changed 11 years ago by
- Status changed from needs_review to needs_work
comment:19 follow-up: ↓ 20 Changed 11 years ago by
These lines:
libtool: link: warning: library `/home/malb/t2/sage-4.5.1-Solaris_10_SPARC-sun4u-SunOS/local/lib/libstdc++.la' was moved. libtool: link: cannot find the library `/usr/local/gcc-4.4.3/lib/libstdc++.la' or unhandled argument `/usr/local/gcc-4.4.3/lib/libstdc++.la'
make me think it's the Sage binary that is broken? Why is there be a libstdc++ in the Sage tarball ?
comment:20 in reply to: ↑ 19 Changed 11 years ago by
Replying to malb:
These lines:
libtool: link: warning: library `/home/malb/t2/sage-4.5.1-Solaris_10_SPARC-sun4u-SunOS/local/lib/libstdc++.la' was moved. libtool: link: cannot find the library `/usr/local/gcc-4.4.3/lib/libstdc++.la' or unhandled argument `/usr/local/gcc-4.4.3/lib/libstdc++.la'make me think it's the Sage binary that is broken? Why is there be a libstdc++ in the Sage tarball ?
The reason it is there is that the version of gcc shipped with Solaris is 3.4.3, so there are no recent gcc libraries. The compiler is not built with Fortran support, so there is no libgfortran at all. One needs recent run-time libraries, with fortran support, so I added them to the Sage binary.
It may be that deleting (making a copy first) of those .la files will solve the problem. Otherwise, editing them to point at the location of the libraries in $SAGE_LOCAL/lib will almost certainly solve it.
If that does not work, just build Sage from source. It does not take too long if you build packages in parallel.
Dave
comment:21 Changed 11 years ago by
- Status changed from needs_work to needs_review
malb@t2:~/t2/sage-4.5.1$ ./sage -t devel/sage/sage/matrix/matrix_mod2_dense.pyx sage -t "devel/sage/sage/matrix/matrix_mod2_dense.pyx" [92.7 s] ---------------------------------------------------------------------- All tests passed! Total time for all tests: 92.8 seconds malb@t2:~/t2/sage-4.5.1$ ./sage -t devel/sage/sage/matrix/matrix_mod2e_dense.pyx sage -t "devel/sage/sage/matrix/matrix_mod2e_dense.pyx" [50.0 s] ---------------------------------------------------------------------- All tests passed! Total time for all tests: 50.0 seconds
After finally building Sage t2 I can confirm that doctests pass there too
comment:22 Changed 11 years ago by
- Status changed from needs_review to needs_info
It appears to be trying to use autoconf, but autoconf is not a perquisite for Sage. Are you sure the timestamps on all the files are right?
checking for x86 cpuid 0x0 output... unknown checking for the processor vendor... Unknown checking the L1 cache size... 0 Bytes checking the L2 cache size... 0 Bytes checking whether make -j30 sets $(MAKE)... (cached) yes configure: creating ./config.status config.status: creating Makefile config.status: creating src/config.h config.status: executing depfiles commands config.status: executing libtool commands (CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /rootpool2/local/kirkby/t2/64/s age-4.5.3.alpha0/spkg/build/libm4ri-20100730/m4ri/missing --run autoheader) aclocal.m4:16: warning: this file was generated for autoconf 2.65. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'. rm -f src/stamp-h1 touch src/config.h.in cd . && /bin/bash ./config.status src/config.h config.status: creating src/config.h config.status: src/config.h is unchanged
comment:23 Changed 11 years ago by
I replaced the SPKG with a version where I touched both configure scripts again (I thought I did that before, but apparently I didn't). I tested it on t2 and it doesn't attempt to call autoconf.
comment:24 Changed 11 years ago by
- Status changed from needs_info to needs_review
comment:25 Changed 11 years ago by
Since there doesn't seem to be any movement on this ticket, I took the liberty to update the patch and to prepare a new SPKG:
http://sage.math.washington.edu/home/malb/spkgs/libm4ri-20100817.spkg
Just as before this ticket depends on #9717 which was merged in 4.5.3.alpha1.
I successfully built and doctested the SPKG + the patch on:
- sage.math: 64-bit Linux, Intel CPU, pass
- redhawk: 64-bit Linux, AMD CPU, pass
- bsd: OS X, pass
- t2: Solaris, pass (I failed to build R thus those doctests failed)
I also took a sage-4.5.3.alpha1.tar, replaced the M4RI SPKG and applied the patch. Then I built Sage from scratch on sage.math and ran make ptestlong. All doctests passed.
PS: This new SPKG runs some tests to detect the L1 and L2 cache sizes, thus it compiles a little bit longer than older SPKGs for M4RI. The gained performance is well worth the wait on e.g. modern Intel CPUs where it is better to detect how much memory is fast for random access than to rely on the actual L2 cache size.
comment:26 follow-up: ↓ 27 Changed 10 years ago by
Do you want to ignore m4ri
and m4rie
? Also the dist/
directory can now be removed as per ticket #5903.
comment:27 in reply to: ↑ 26 Changed 10 years ago by
Replying to mvngu:
Do you want to ignore
m4ri
andm4rie
?
What I mean is this:
[mvngu@sage libm4ri-20100817]$ hg st ? m4ri/.hgtags ? m4ri/AUTHORS ? m4ri/COPYING ? m4ri/ChangeLog ? m4ri/INSTALL ? m4ri/Makefile.am ? m4ri/Makefile.in ? m4ri/NEWS ? m4ri/README ? m4ri/aclocal.m4 ? m4ri/config.guess ? m4ri/config.sub ? m4ri/configure ? m4ri/configure.ac ? m4ri/depcomp ? m4ri/install-sh ? m4ri/ltmain.sh ? m4ri/m4/ax_cache_size.m4 ? m4ri/m4/ax_cache_size_tune.m4 ? m4ri/m4/ax_check_compiler_flags.m4 ? m4ri/m4/ax_cpu_vendor.m4 ? m4ri/m4/ax_ext.m4 ? m4ri/m4/ax_gcc_x86_cpuid.m4 ? m4ri/m4/ax_openmp.m4 ? m4ri/m4/libtool.m4 ? m4ri/m4/ltoptions.m4 ? m4ri/m4/ltsugar.m4 ? m4ri/m4/ltversion.m4 ? m4ri/m4/lt~obsolete.m4 ? m4ri/m4ri ? m4ri/m4ri.sln ? m4ri/m4ri.vcproj ? m4ri/missing ? m4ri/testsuite/.directory ? m4ri/testsuite/Makefile ? m4ri/testsuite/bench_elimination.c ? m4ri/testsuite/bench_multiplication.c ? m4ri/testsuite/bench_pluq.c ? m4ri/testsuite/bench_trsm_lowerleft.c ? m4ri/testsuite/bench_trsm_lowerright.c ? m4ri/testsuite/bench_trsm_upperleft.c ? m4ri/testsuite/bench_trsm_upperright.c ? m4ri/testsuite/cpucycles-20060326/alpha.c ? m4ri/testsuite/cpucycles-20060326/alpha.h ? m4ri/testsuite/cpucycles-20060326/amd64cpuinfo.c ? m4ri/testsuite/cpucycles-20060326/amd64cpuinfo.h ? m4ri/testsuite/cpucycles-20060326/amd64tscfreq.c ? m4ri/testsuite/cpucycles-20060326/amd64tscfreq.h ? m4ri/testsuite/cpucycles-20060326/clockmonotonic.c ? m4ri/testsuite/cpucycles-20060326/clockmonotonic.h ? m4ri/testsuite/cpucycles-20060326/compile ? m4ri/testsuite/cpucycles-20060326/cpucycles.html ? m4ri/testsuite/cpucycles-20060326/do ? m4ri/testsuite/cpucycles-20060326/do.notes ? m4ri/testsuite/cpucycles-20060326/gettimeofday.c ? m4ri/testsuite/cpucycles-20060326/gettimeofday.h ? m4ri/testsuite/cpucycles-20060326/hppapstat.c ? m4ri/testsuite/cpucycles-20060326/hppapstat.h ? m4ri/testsuite/cpucycles-20060326/powerpcaix.c ? m4ri/testsuite/cpucycles-20060326/powerpcaix.h ? m4ri/testsuite/cpucycles-20060326/powerpclinux.c ? m4ri/testsuite/cpucycles-20060326/powerpclinux.h ? m4ri/testsuite/cpucycles-20060326/powerpcmacos.c ? m4ri/testsuite/cpucycles-20060326/powerpcmacos.h ? m4ri/testsuite/cpucycles-20060326/sparc32psrinfo.c ? m4ri/testsuite/cpucycles-20060326/sparc32psrinfo.h ? m4ri/testsuite/cpucycles-20060326/sparcpsrinfo.c ? m4ri/testsuite/cpucycles-20060326/sparcpsrinfo.h ? m4ri/testsuite/cpucycles-20060326/test.c ? m4ri/testsuite/cpucycles-20060326/x86cpuinfo.c ? m4ri/testsuite/cpucycles-20060326/x86cpuinfo.h ? m4ri/testsuite/cpucycles-20060326/x86tscfreq.c ? m4ri/testsuite/cpucycles-20060326/x86tscfreq.h ? m4ri/testsuite/test_elimination.c ? m4ri/testsuite/test_kernel.c ? m4ri/testsuite/test_multiplication.c ? m4ri/testsuite/test_pluq.c ? m4ri/testsuite/test_solve.c ? m4ri/testsuite/test_trsm.c ? m4ri/testsuite/walltime.h ? m4rie/.hgignore ? m4rie/.hgtags ? m4rie/AUTHORS ? m4rie/COPYING ? m4rie/ChangeLog ? m4rie/INSTALL ? m4rie/Makefile.am ? m4rie/Makefile.in ? m4rie/NEWS ? m4rie/README ? m4rie/aclocal.m4 ? m4rie/bench/Makefile.am ? m4rie/bench/Makefile.in ? m4rie/bench/bench_elimination.cc ? m4rie/bench/bench_multiplication.cc ? m4rie/bench/cpucycles-20060326/alpha.c ? m4rie/bench/cpucycles-20060326/alpha.h ? m4rie/bench/cpucycles-20060326/amd64cpuinfo.c ? m4rie/bench/cpucycles-20060326/amd64cpuinfo.h ? m4rie/bench/cpucycles-20060326/amd64tscfreq.c ? m4rie/bench/cpucycles-20060326/amd64tscfreq.h ? m4rie/bench/cpucycles-20060326/clockmonotonic.c ? m4rie/bench/cpucycles-20060326/clockmonotonic.h ? m4rie/bench/cpucycles-20060326/compile ? m4rie/bench/cpucycles-20060326/cpucycles.html ? m4rie/bench/cpucycles-20060326/do ? m4rie/bench/cpucycles-20060326/do.notes ? m4rie/bench/cpucycles-20060326/gettimeofday.c ? m4rie/bench/cpucycles-20060326/gettimeofday.h ? m4rie/bench/cpucycles-20060326/hppapstat.c ? m4rie/bench/cpucycles-20060326/hppapstat.h ? m4rie/bench/cpucycles-20060326/powerpcaix.c ? m4rie/bench/cpucycles-20060326/powerpcaix.h ? m4rie/bench/cpucycles-20060326/powerpclinux.c ? m4rie/bench/cpucycles-20060326/powerpclinux.h ? m4rie/bench/cpucycles-20060326/powerpcmacos.c ? m4rie/bench/cpucycles-20060326/powerpcmacos.h ? m4rie/bench/cpucycles-20060326/sparc32psrinfo.c ? m4rie/bench/cpucycles-20060326/sparc32psrinfo.h ? m4rie/bench/cpucycles-20060326/sparcpsrinfo.c ? m4rie/bench/cpucycles-20060326/sparcpsrinfo.h ? m4rie/bench/cpucycles-20060326/test.c ? m4rie/bench/cpucycles-20060326/x86cpuinfo.c ? m4rie/bench/cpucycles-20060326/x86cpuinfo.h ? m4rie/bench/cpucycles-20060326/x86tscfreq.c ? m4rie/bench/cpucycles-20060326/x86tscfreq.h ? m4rie/bench/walltime.h ? m4rie/config.guess ? m4rie/config.sub ? m4rie/configure ? m4rie/configure.ac ? m4rie/depcomp ? m4rie/gf2e_cxx/finite_field_givaro.h ? m4rie/install-sh ? m4rie/ltmain.sh ? m4rie/m4/ax_cache_size.m4 ? m4rie/m4/ax_cache_size_tune.m4 ? m4rie/m4/ax_check_compiler_flags.m4 ? m4rie/m4/ax_cpu_vendor.m4 ? m4rie/m4/ax_ext.m4 ? m4rie/m4/ax_gcc_x86_cpuid.m4 ? m4rie/m4/ax_openmp.m4 ? m4rie/m4/libtool.m4 ? m4rie/m4/ltoptions.m4 ? m4rie/m4/ltsugar.m4 ? m4rie/m4/ltversion.m4 ? m4rie/m4/lt~obsolete.m4 ? m4rie/missing ? m4rie/tests/Makefile ? m4rie/tests/test_elimination.cc ? m4rie/tests/test_multiplication.cc
comment:28 Changed 10 years ago by
I've updated the SPKG accordingly at
http://sage.math.washington.edu/home/malb/spkgs/libm4ri-20100817.p0.spkg
comment:29 follow-up: ↓ 30 Changed 10 years ago by
Whatever checks are being used to determine the cache size is not working very well. First it reports the L1 cache size is 0, then it spends a couple of minutes on a 3.33 GHz Xeon, to determine the cache size (I thought it had hanged). It's also producing some NaN in the calculation of the cache size - is that not a bug?
The CPU is an Intel Xeon W3580 and the operating system OpenSolaris.
checking for gcc option to accept ISO C99... -std=gnu99 checking for x86 cpuid output... b:756e6547:6c65746e:49656e69 checking for x86 cpuid 0x0 output... b:756e6547:6c65746e:49656e69 checking for the processor vendor... Intel checking for x86 cpuid 0x00000001 output... 106a5:100800:9ce3bd:bfebfbff checking whether mmx is supported... yes checking whether sse is supported... yes checking whether sse2 is supported... yes checking whether sse3 is supported... yes checking whether ssse3 is supported... yes checking whether C compiler accepts -mmmx... yes checking whether C compiler accepts -msse... yes checking whether C compiler accepts -msse2... yes checking whether C compiler accepts -msse3... yes checking mm_malloc.h usability... yes checking mm_malloc.h presence... yes checking for mm_malloc.h... yes checking for x86 cpuid 0x0 output... (cached) b:756e6547:6c65746e:49656e69 checking for the processor vendor... (cached) Intel checking for x86 cpuid 0x80000000 output... 80000008:0:0:0 checking for x86 cpuid 0x80000005 output... 0:0:0:0 checking for x86 cpuid 0x80000006 output... 0:0:1006040:0 checking the L1 cache size... 0 Bytes checking the L2 cache size... 262144 Bytes checking for cache sizes... s: 4, rx: 0.03, x: 0.03, wt: 0.03, dx: NaN s: 8, rx: 0.06, x: 0.06, wt: 0.06, dx: 1.01 s: 16, rx: 0.12, x: 0.12, wt: 0.12, dx: 1.00 s: 32, rx: 0.24, x: 0.24, wt: 0.24, dx: 1.00 s: 64, rx: 0.53, x: 0.53, wt: 0.53, dx: 1.10 s: 128, rx: 0.32, x: 1.30, wt: 0.32, dx: 1.23 s: 256, rx: 0.37, x: 2.95, wt: 0.37, dx: 1.14 s: 512, rx: 0.42, x: 6.77, wt: 0.42, dx: 1.15 s: 4, rx: 0.03, x: 0.03, wt: 0.03, dx: NaN s: 8, rx: 0.06, x: 0.06, wt: 0.06, dx: 0.94 s: 16, rx: 0.12, x: 0.12, wt: 0.12, dx: 0.99 s: 32, rx: 0.24, x: 0.24, wt: 0.24, dx: 1.02 s: 64, rx: 0.53, x: 0.53, wt: 0.53, dx: 1.09 s: 128, rx: 0.32, x: 1.29, wt: 0.32, dx: 1.22 s: 256, rx: 0.37, x: 2.97, wt: 0.37, dx: 1.16 s: 512, rx: 0.43, x: 6.80, wt: 0.43, dx: 1.14 s: 4, rx: 0.03, x: 0.03, wt: 0.03, dx: NaN s: 8, rx: 0.06, x: 0.06, wt: 0.06, dx: 0.91 s: 16, rx: 0.12, x: 0.12, wt: 0.12, dx: 1.01 s: 32, rx: 0.24, x: 0.24, wt: 0.24, dx: 1.01 s: 64, rx: 0.52, x: 0.52, wt: 0.52, dx: 1.09 s: 128, rx: 0.32, x: 1.30, wt: 0.32, dx: 1.24 s: 256, rx: 0.37, x: 2.94, wt: 0.37, dx: 1.13 s: 512, rx: 0.41, x: 6.64, wt: 0.42, dx: 1.13 s: 4, rx: 0.03, x: 0.03, wt: 0.03, dx: NaN s: 8, rx: 0.06, x: 0.06, wt: 0.06, dx: 0.92 s: 16, rx: 0.12, x: 0.12, wt: 0.12, dx: 1.02 s: 32, rx: 0.24, x: 0.24, wt: 0.24, dx: 1.00 s: 64, rx: 0.53, x: 0.53, wt: 0.53, dx: 1.11 s: 128, rx: 0.33, x: 1.30, wt: 0.33, dx: 1.23 s: 256, rx: 0.37, x: 2.98, wt: 0.37, dx: 1.14 s: 512, rx: 0.41, x: 6.61, wt: 0.41, dx: 1.11 s: 4, rx: 0.03, x: 0.03, wt: 0.03, dx: NaN s: 8, rx: 0.06, x: 0.06, wt: 0.06, dx: 0.93 s: 16, rx: 0.12, x: 0.12, wt: 0.12, dx: 1.01 s: 32, rx: 0.24, x: 0.24, wt: 0.24, dx: 1.02 s: 64, rx: 0.53, x: 0.53, wt: 0.53, dx: 1.09 s: 128, rx: 0.32, x: 1.30, wt: 0.32, dx: 1.23 s: 256, rx: 0.37, x: 2.94, wt: 0.37, dx: 1.13 s: 512, rx: 0.42, x: 6.75, wt: 0.42, dx: 1.15 s: 512, rx: 0.42, x: 0.42, wt: 0.42, dx: NaN s: 1024, rx: 1.00, x: 1.00, wt: 1.00, dx: 1.18 s: 1536, rx: 0.39, x: 1.57, wt: 0.39, dx: 1.05 s: 2048, rx: 0.27, x: 2.19, wt: 0.27, dx: 1.04 s: 3072, rx: 0.21, x: 3.32, wt: 0.21, dx: 1.01 s: 4096, rx: 0.29, x: 4.60, wt: 0.29, dx: 1.04 s: 6144, rx: 0.28, x: 8.85, wt: 0.28, dx: 1.28 s: 8192, rx: 0.25, x: 15.96, wt: 0.25, dx: 1.35 s: 16384, rx: 0.43, x: 55.40, wt: 0.44, dx: 1.74 s: 32768, rx: 0.61, x: 156.25, wt: 0.62, dx: 1.41 s: 512, rx: 0.43, x: 0.43, wt: 0.43, dx: NaN s: 1024, rx: 0.99, x: 0.99, wt: 0.99, dx: 1.15 s: 1536, rx: 0.39, x: 1.56, wt: 0.39, dx: 1.05 s: 2048, rx: 0.27, x: 2.13, wt: 0.27, dx: 1.03 s: 3072, rx: 0.21, x: 3.32, wt: 0.21, dx: 1.04 s: 4096, rx: 0.28, x: 4.52, wt: 0.28, dx: 1.02 s: 6144, rx: 0.27, x: 8.76, wt: 0.28, dx: 1.29 s: 8192, rx: 0.25, x: 15.87, wt: 0.25, dx: 1.36 s: 16384, rx: 0.42, x: 54.27, wt: 0.43, dx: 1.71 s: 32768, rx: 0.61, x: 156.22, wt: 0.62, dx: 1.44 s: 512, rx: 0.42, x: 0.42, wt: 0.42, dx: NaN s: 1024, rx: 0.99, x: 0.99, wt: 0.99, dx: 1.17 s: 1536, rx: 0.39, x: 1.56, wt: 0.39, dx: 1.05 s: 2048, rx: 0.27, x: 2.14, wt: 0.27, dx: 1.03 s: 3072, rx: 0.21, x: 3.31, wt: 0.21, dx: 1.03 s: 4096, rx: 0.28, x: 4.53, wt: 0.29, dx: 1.03 s: 6144, rx: 0.27, x: 8.73, wt: 0.28, dx: 1.28 s: 8192, rx: 0.25, x: 16.01, wt: 0.25, dx: 1.38 s: 16384, rx: 0.42, x: 54.24, wt: 0.43, dx: 1.69 s: 32768, rx: 0.63, x: 162.00, wt: 0.65, dx: 1.49 s: 512, rx: 0.43, x: 0.43, wt: 0.43, dx: NaN s: 1024, rx: 1.01, x: 1.01, wt: 1.01, dx: 1.19 s: 1536, rx: 0.20, x: 1.58, wt: 0.20, dx: 1.04 s: 2048, rx: 0.28, x: 2.21, wt: 0.28, dx: 1.04 s: 3072, rx: 0.21, x: 3.39, wt: 0.21, dx: 1.02 s: 4096, rx: 0.29, x: 4.63, wt: 0.29, dx: 1.02 s: 6144, rx: 0.28, x: 8.84, wt: 0.28, dx: 1.27 s: 8192, rx: 0.25, x: 16.17, wt: 0.26, dx: 1.37 s: 16384, rx: 0.43, x: 55.01, wt: 0.44, dx: 1.70 s: 32768, rx: 0.61, x: 157.06, wt: 0.63, dx: 1.43 s: 512, rx: 0.43, x: 0.43, wt: 0.43, dx: NaN s: 1024, rx: 1.01, x: 1.01, wt: 1.01, dx: 1.17 s: 1536, rx: 0.20, x: 1.59, wt: 0.20, dx: 1.05 s: 2048, rx: 0.27, x: 2.19, wt: 0.27, dx: 1.03 s: 3072, rx: 0.21, x: 3.40, wt: 0.21, dx: 1.03 s: 4096, rx: 0.29, x: 4.63, wt: 0.29, dx: 1.02 s: 6144, rx: 0.28, x: 8.90, wt: 0.28, dx: 1.28 s: 8192, rx: 0.25, x: 16.12, wt: 0.26, dx: 1.36 s: 16384, rx: 0.43, x: 54.90, wt: 0.44, dx: 1.70 s: 32768, rx: 0.61, x: 157.41, wt: 0.63, dx: 1.43 65536:8388608 checking the L1 cache size... 65536 Bytes checking the L2 cache size... 8388608 Bytes
comment:30 in reply to: ↑ 29 Changed 10 years ago by
Replying to drkirkby:
Whatever checks are being used to determine the cache size is not working very well.
I disagree, it works fine as far as I know but it is slow. For your machine I'd assume that 65536:8388608 indeed gives pretty good performance. If you want to check whether this hunch is correct let me know and I can tell you how to patch and test M4RI for various cache size configurations.
First it reports the L1 cache size is 0,
That's probably because I don't know how to ask Solaris for the right information, however the tuning performed now is the better strategy anyway.
then it spends a couple of minutes on a 3.33 GHz Xeon, to determine the cache size (I thought it had hanged).
Tuning takes a while as described above. Some shells don't seem to print intermediate outputs, I don't know how to fix that. If you do, let me know. Also, I couldn't get reliable information if I lowered the time spent on tuning, if you have any ideas, let me know.
It's also producing some NaN in the calculation of the cache size - is that not a bug?
No, the delta from the first element with respect to the previous element is not defined.
comment:31 Changed 10 years ago by
Minh, do you think you'll have some time to review this?
comment:32 Changed 10 years ago by
the speedup provided by this patch is quite impressive. With vanilla Sage 4.6 on a 2.83Ghz Core 2:
---------------------------------------------------------------------- | Sage Version 4.6, Release Date: 2010-10-30 | | Type notebook() for the GUI, and license() for information. | ---------------------------------------------------------------------- sage: m=matrix(GF(2^8,'x'),1000,1000) sage: m.randomize() sage: time r=m*m CPU times: user 76.33 s, sys: 0.10 s, total: 76.43 s Wall time: 77.63 s
With this patch applied:
sage: m=matrix(GF(2^8,'x'),1000,1000) sage: m.randomize() sage: time r=m*m CPU times: user 0.27 s, sys: 0.00 s, total: 0.27 s Wall time: 0.29 s
Paul Zimmermann
comment:33 Changed 10 years ago by
- Description modified (diff)
- Reviewers set to Paul Zimmermann
comment:34 Changed 10 years ago by
On PPC OS X 10.4, this spkg installation hangs at
checking the L1 cache size... 32768 Bytes checking the L2 cache size... 262144 Bytes checking for cache sizes...
I'm assuming this "cache size" checking isn't supposed to take 10 or more minutes.
comment:35 Changed 10 years ago by
Can you run spkg-install manually, i.e. unpack the spkg and run ./spkg-install in a SAGE shell? It will print intermediate information which might tell us whether it just takes long or whether it really hangs?
comment:36 Changed 10 years ago by
So far it just seems to be extremely slow. Well, this is a machine with a 700MHz processor...
In lines like
s: 512, rx: 18.03, x: 18.03, wt: 18.03, dx: NaN s: 1024, rx: 73.30, x: 73.30, wt: 73.31, dx: 2.03
which column gives the timing, if any?
comment:37 follow-up: ↓ 38 Changed 10 years ago by
Okay, it did finally finish!
checking for cache sizes... s: 4, rx: 0.20, x: 0.20, wt: 0.20, dx: NaN s: 8, rx: 0.38, x: 0.38, wt: 0.38, dx: 0.96 s: 16, rx: 0.39, x: 0.79, wt: 0.39, dx: 1.03 s: 32, rx: 0.46, x: 1.83, wt: 0.46, dx: 1.16 s: 64, rx: 0.49, x: 3.92, wt: 0.49, dx: 1.07 s: 128, rx: 0.57, x: 9.17, wt: 0.57, dx: 1.17 s: 256, rx: 0.63, x: 40.57, wt: 0.64, dx: 2.21 s: 512, rx: 1.17, x: 300.03, wt: 1.18, dx: 3.70 s: 4, rx: 0.19, x: 0.19, wt: 0.19, dx: NaN s: 8, rx: 0.38, x: 0.38, wt: 0.38, dx: 1.01 s: 16, rx: 0.42, x: 0.83, wt: 0.42, dx: 1.10 s: 32, rx: 0.44, x: 1.78, wt: 0.44, dx: 1.06 s: 64, rx: 0.50, x: 4.00, wt: 0.50, dx: 1.13 s: 128, rx: 0.46, x: 14.83, wt: 0.46, dx: 1.85 s: 256, rx: 0.99, x: 63.40, wt: 0.99, dx: 2.14 s: 512, rx: 1.21, x: 310.35, wt: 1.22, dx: 2.45 s: 4, rx: 0.17, x: 0.17, wt: 0.17, dx: NaN s: 8, rx: 0.39, x: 0.39, wt: 0.39, dx: 1.14 s: 16, rx: 0.43, x: 0.87, wt: 0.43, dx: 1.11 s: 32, rx: 0.43, x: 1.73, wt: 0.43, dx: 1.00 s: 64, rx: 0.47, x: 3.74, wt: 0.47, dx: 1.08 s: 128, rx: 0.60, x: 9.58, wt: 0.60, dx: 1.28 s: 256, rx: 0.56, x: 36.13, wt: 0.57, dx: 1.89 s: 512, rx: 1.25, x: 320.55, wt: 1.26, dx: 4.44 s: 4, rx: 0.21, x: 0.21, wt: 0.21, dx: NaN s: 8, rx: 0.39, x: 0.39, wt: 0.39, dx: 0.94 s: 16, rx: 0.43, x: 0.85, wt: 0.43, dx: 1.10 s: 32, rx: 0.44, x: 1.74, wt: 0.44, dx: 1.02 s: 64, rx: 0.48, x: 3.87, wt: 0.48, dx: 1.11 s: 128, rx: 0.59, x: 9.39, wt: 0.59, dx: 1.21 s: 256, rx: 0.63, x: 40.42, wt: 0.63, dx: 2.15 s: 512, rx: 1.16, x: 297.41, wt: 1.17, dx: 3.68 s: 4, rx: 0.19, x: 0.19, wt: 0.19, dx: NaN s: 8, rx: 0.39, x: 0.39, wt: 0.39, dx: 1.01 s: 16, rx: 0.41, x: 0.82, wt: 0.41, dx: 1.04 s: 32, rx: 0.42, x: 1.69, wt: 0.42, dx: 1.04 s: 64, rx: 0.48, x: 3.81, wt: 0.48, dx: 1.13 s: 128, rx: 0.59, x: 9.40, wt: 0.59, dx: 1.23 s: 256, rx: 0.73, x: 46.75, wt: 0.73, dx: 2.49 s: 512, rx: 1.20, x: 306.20, wt: 1.20, dx: 3.27 s: 512, rx: 20.54, x: 20.54, wt: 20.54, dx: NaN s: 1024, rx: 68.61, x: 68.61, wt: 68.63, dx: 1.67 s: 1536, rx: 0.24, x: 124.21, wt: 0.26, dx: 1.21 s: 2048, rx: 0.18, x: 182.39, wt: 0.20, dx: 1.10 s: 3072, rx: 0.30, x: 303.95, wt: 0.32, dx: 1.11 s: 4096, rx: 0.24, x: 487.92, wt: 0.28, dx: 1.20 s: 6144, rx: 0.19, x: 793.79, wt: 0.25, dx: 1.08 s: 8192, rx: 0.00, x: 0.38, wt: 0.08, dx: 0.00 s: 16384, rx: 0.00, x: 0.31, wt: 0.19, dx: 0.41 s: 32768, rx: 0.00, x: 0.37, wt: 0.32, dx: 0.59 s: 512, rx: 18.06, x: 18.06, wt: 18.07, dx: NaN s: 1024, rx: 68.43, x: 68.43, wt: 68.43, dx: 1.89 s: 1536, rx: 0.24, x: 125.17, wt: 0.26, dx: 1.22 s: 2048, rx: 0.17, x: 169.91, wt: 0.18, dx: 1.02 s: 3072, rx: 0.31, x: 318.15, wt: 0.34, dx: 1.25 s: 4096, rx: 0.22, x: 444.11, wt: 0.26, dx: 1.05 s: 6144, rx: 0.20, x: 803.39, wt: 0.26, dx: 1.21 s: 8192, rx: 0.00, x: 0.30, wt: 0.08, dx: 0.00 s: 16384, rx: 0.00, x: 0.38, wt: 0.15, dx: 0.62 s: 32768, rx: 0.00, x: 0.31, wt: 0.31, dx: 0.41 s: 512, rx: 17.85, x: 17.85, wt: 17.86, dx: NaN s: 1024, rx: 68.59, x: 68.59, wt: 68.60, dx: 1.92 s: 1536, rx: 0.26, x: 131.07, wt: 0.27, dx: 1.27 s: 2048, rx: 0.18, x: 182.17, wt: 0.20, dx: 1.04 s: 3072, rx: 0.32, x: 323.67, wt: 0.34, dx: 1.18 s: 4096, rx: 0.22, x: 444.65, wt: 0.26, dx: 1.03 s: 6144, rx: 0.19, x: 788.59, wt: 0.25, dx: 1.18 s: 8192, rx: 0.29, x: 1203.62, wt: 0.38, dx: 1.14 s: 16384, rx: 0.00, x: 0.35, wt: 0.16, dx: 0.00 s: 32768, rx: 0.00, x: 0.35, wt: 0.33, dx: 0.50 s: 512, rx: 17.39, x: 17.39, wt: 17.40, dx: NaN s: 1024, rx: 68.02, x: 68.02, wt: 68.03, dx: 1.96 s: 1536, rx: 0.24, x: 123.60, wt: 0.26, dx: 1.21 s: 2048, rx: 0.17, x: 178.99, wt: 0.19, dx: 1.09 s: 3072, rx: 0.29, x: 301.11, wt: 0.32, dx: 1.12 s: 4096, rx: 0.24, x: 501.66, wt: 0.28, dx: 1.25 s: 6144, rx: 0.19, x: 796.99, wt: 0.25, dx: 1.06 s: 8192, rx: 0.28, x: 1141.88, wt: 0.36, dx: 1.07 s: 16384, rx: 0.00, x: 0.36, wt: 0.15, dx: 0.00 s: 32768, rx: 0.00, x: 0.37, wt: 0.31, dx: 0.51 s: 512, rx: 19.65, x: 19.65, wt: 19.66, dx: NaN s: 1024, rx: 68.37, x: 68.37, wt: 68.38, dx: 1.74 s: 1536, rx: 0.23, x: 119.48, wt: 0.26, dx: 1.16 s: 2048, rx: 0.20, x: 202.14, wt: 0.22, dx: 1.27 s: 3072, rx: 0.29, x: 299.73, wt: 0.32, dx: 0.99 s: 4096, rx: 0.22, x: 441.61, wt: 0.26, dx: 1.11 s: 6144, rx: 0.19, x: 795.29, wt: 0.25, dx: 1.20 s: 8192, rx: 0.28, x: 1141.73, wt: 0.35, dx: 1.08 s: 16384, rx: 0.00, x: 0.35, wt: 0.16, dx: 0.00 s: 32768, rx: 0.00, x: 0.35, wt: 0.32, dx: 0.50 262144:524288
Doctest failure:
sage: A.pivots() # indirect doctest Expected: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] Got: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
Series of failures, for all such doctests:
AttributeError: 'sage.matrix.matrix_mod2e_dense.Matrix_mod2e_dense' object has no attribute '_multiply_classical'
Is something not inheriting properly? This method seems to be defined in Sage, and similar doctests in the rest of the matrix/ folder pass (in fact, all other tests in crypto and matrix pass other than one unrelated one from something I did on this installation).
comment:38 in reply to: ↑ 37 ; follow-up: ↓ 39 Changed 10 years ago by
Replying to kcrisman:
Okay, it did finally finish!
Okay, good ... well, I'm still not sure what I should do about this. The easiest might be to disable cache tuning on PPC?
Doctest failure:
sage: A.pivots() # indirect doctest Expected: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] Got: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
I can reproduce this one.
Series of failures, for all such doctests:
AttributeError: 'sage.matrix.matrix_mod2e_dense.Matrix_mod2e_dense' object has no attribute '_multiply_classical'Is something not inheriting properly? This method seems to be defined in Sage, and similar doctests in the rest of the matrix/ folder pass (in fact, all other tests in crypto and matrix pass other than one unrelated one from something I did on this installation).
I cannot seem to reproduce these (in the matrix/ folder). Which file does give this?
PS: Thank you so much for taking an interest in this ticket!
comment:39 in reply to: ↑ 38 Changed 10 years ago by
Okay, good ... well, I'm still not sure what I should do about this. The easiest might be to disable cache tuning on PPC?
What I would say is to disable this on any machine that is probably old and slow - this is probably not a PPC thing per se. That would be OS X 10.4, probably older versions of Ubuntu, ... I don't know how one would do this, though.
Series of failures, for all such doctests:
AttributeError: 'sage.matrix.matrix_mod2e_dense.Matrix_mod2e_dense' object has no attribute '_multiply_classical'I cannot seem to reproduce these (in the matrix/ folder). Which file does give this?
This is the new file and class 'sage.matrix.matrix_mod2e_dense.Matrix_mod2e_dense' as indicated above. Since the tests for _multiply_classical
work in other files, something isn't working about the inheritance.
This could be related to my having installed numpy 1.6 before testing. But that would seem strange, since neither this nor the other multiplication rely on this, they are .pyx files... and all the other ones work...
PS: Thank you so much for taking an interest in this ticket!
I just have an interest in making sure older systems can still use Sage. There is too much planned obsolescence in computers already.
comment:40 Changed 10 years ago by
- Status changed from needs_review to needs_work
Hi, can you give
http://sage.math.washington.edu/home/malb/spkgs/libm4ri-20110701.alpha.spkg
a try? It doesn't fix the doctest failures but compilation should be quicker and provide more feedback.
comment:41 Changed 10 years ago by
Sorry, I won't have access to that machine for a while now.
comment:42 Changed 10 years ago by
- Dependencies set to #11574
comment:43 Changed 10 years ago by
I'm a little confused. The spkgs here and at #11574 are both libm4ri, and seem to be numbered backwards (the "earlier" one in the dependency is from 2011).
comment:44 follow-up: ↓ 45 Changed 10 years ago by
- Owner changed from tbd to (none)
Okay, I figured it out - sorry for the noise. I agree that it is very annoying to have two things inside the same spkg. There is, for instance, an open ticket to remove rpy2 from the r spkg.
comment:45 in reply to: ↑ 44 ; follow-up: ↓ 46 Changed 10 years ago by
Replying to kcrisman:
Okay, I figured it out - sorry for the noise.
NP, I should have explained things better.
I agree that it is very annoying to have two things inside the same spkg. There is, for instance, an open ticket to remove rpy2 from the r spkg.
Well, it makes it easier to re-use tuning results. For example, I plan to run the cache tuning only once, i.e. for M4RI and M4RIE would re-use the results.
comment:46 in reply to: ↑ 45 Changed 10 years ago by
Replying to malb:
Replying to kcrisman:
I agree that it is very annoying to have two things inside the same spkg. There is, for instance, an open ticket to remove rpy2 from the r spkg.
Well, it makes it easier to re-use tuning results. For example, I plan to run the cache tuning only once, i.e. for M4RI and M4RIE would re-use the results.
That makes a lot of sense, especially since that takes a while even on speedy machines.
By the way, I tried #11574 but ran into trouble with an undefined symbol about m4ri_swap_bits
, perhaps due to my having installed #9562 first. I did apply the patch at #11574. Anyway, I'm reverting to the vanilla Sage version, and then going back to #11574 (I already had done the PolyBoRi upgrade).
comment:47 follow-up: ↓ 48 Changed 10 years ago by
Hi, I updated the patch for #11574 21h ago, did you try it? It fixes the missing symbol stuff.
comment:48 in reply to: ↑ 47 Changed 10 years ago by
comment:49 Changed 10 years ago by
- Description modified (diff)
comment:50 Changed 10 years ago by
- Status changed from needs_work to needs_review
comment:51 Changed 10 years ago by
- Description modified (diff)
comment:52 Changed 10 years ago by
- Report Upstream changed from None of the above - read trac for reasoning. to N/A
comment:53 Changed 10 years ago by
- Status changed from needs_review to needs_work
Please no
depends = [SAGE_ROOT + "/local/include/m4rie/m4rie.h"],
in module_list.py I have just cleaned up (#11377) do
depends = [SAGE_INC + "m4rie/m4rie.h"],
instead.
comment:55 Changed 10 years ago by
- Description modified (diff)
comment:56 Changed 10 years ago by
If I could just squeeze an extra request (not counting for review): could you tag a corresponding release of m4rie on bitbucket? That way I could make a gentoo ebuild from the bitbucket release rather than pulling the spkg.
I also see that suddenly we have split libm4rie from libm4ri (which I am happy about) but without apparent warnings.
comment:57 Changed 10 years ago by
- Status changed from needs_review to needs_work
Yeah, sorry I was a bit lazy:
1) There will be an official 20110715 release of both M4RI and M4RIE. I put together the SPKGs to test whether they work with Sage. So perhaps I shouldn't have set "needs review"
2) Yes, I gave in to the demand to split them. I should have mentioned it.
comment:58 Changed 10 years ago by
I must say it only occurred to me yesterday while looking at tags on bitbucket that 20110715 is in the future.
comment:59 Changed 10 years ago by
- Status changed from needs_work to needs_review
It's now officially released.
comment:60 Changed 10 years ago by
- Description modified (diff)
The SPKG is here:
http://sage.math.washington.edu/home/malb/spkgs/libm4ri-20100730.spkg