-
-
Notifications
You must be signed in to change notification settings - Fork 490
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
Use MeatAxe as an optional back end for dense matrices over GF(p^n)
, p odd, n>1, p^n<255
#12103
Comments
This comment has been minimized.
This comment has been minimized.
comment:1
Here is more on I started with Release 2.2.4 of the Aachen The spkg contains the unmodified sources in the folder Here is a summary of my changes:
The aim of this ticket is to make the modified I would prefer to have it all in one, such that Anyway, I think it can be reviewed... |
Attachment: trac12103_meataxe.patch.gz Use |
Use |
comment:2
Attachment: trac12103_meataxe_rel11900.patch.gz I have updated both patches, because I wanted to add one method:
|
Attachment: trac12103_meataxe_docfix.patch.gz Fix one doctest (coping with a changed class name) |
This comment has been minimized.
This comment has been minimized.
comment:3
Apparently there has been a name change Apply trac12103_meataxe_rel11900.patch trac12103_meataxe_docfix.patch |
comment:4
The patch applies neither cleanly to 4.8 nor 5.0.beta6. The issue 4.8 is small and easy to fix, 5.0.beta6 are a bit more failures. |
comment:5
as of now module_list.py will try to build matrix_modpn_dense regardless of whether MeatAxe is installed, but it should only build it if MeatAxe is installed. |
comment:6
Replying to @malb:
I get
So, I can not confirm that the first to-be-applied patch is really problematic (ok, fuzz 1 might be fixed at some point, but I don't get actual errors). How can I test in module_list.py whether or not |
comment:8
Ah, crap, 11900 was it. RE: module_list.py I commented on it here: https://bitbucket.org/malb/sagemath/pull-request/1/12103-meataxe-wrapper#comment-3510 PS: Did you get my e-mail that I sent to simon.king___uni-jena.de? |
comment:9
Replying to @malb:
OK, I changed the instructions in the ticket description accordingly.
Yes, but I didn't look at bitbucket yet, and I suppose I will not find the time to start and learn the new development before Monday. |
This comment has been minimized.
This comment has been minimized.
comment:163
not access to port 22 == no access to the internet. Complain to whoever is blocking you that you can't do your work and their service is useless to you |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:165
The problem was: The default implementation of unpickling relies on Hence, I created a custom There, I used the occasion to return to what I did in the old group cohomology spkg: Pickling is not by conversion of the matrix to a list of entries, but it dumps the densely packed internal representation. Advantage: It is a lot faster! For the group cohomology spkg, it was checked that the internal representation does not depend on details such as big versus little endian machines: A pickle created on a big-endian machine can correctly be unpickled with a little-endian machine. Another advantage of the new approach will be apparent in #18514: Since the new pickling/unpickling scheme for meataxe matrices is a lot closer to the scheme used in the old group cohomology spkg, the new group cohomology package should relatively easily be able to read data from existing cohomology data bases. |
Changed work issues from Pickling to none |
comment:166
I get 2 doctest failures with MeatAxe not installed. Both I think are because they should be marked optional:
|
comment:167
However, all tests pass in |
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
|
comment:169
I made the two failing tests optional and at that occasion merged the latest develop. Is it fine now? |
comment:170
Looks good to me now. Thanks. |
Reviewer: Jeroen Demeyer, Travis Scrimshaw |
Changed branch from u/SimonKing/meataxe to |
Changed commit from |
comment:172
there is no tarball on the mirrors, apparently |
comment:173
Fixed |
Sage has (or will soon have) fairly good implementations of dense matrices over
GF(2)
, overGF(2^e)
(#9562) and overGF(p)
(p prime, #4260). However, it uses generic code for dense matrices overGF(p^n)
, p odd, n>1,p^n<255
.The original suggestion was to use a major modification of
MeatAxe Release 2.2.4
instead of the basic implementation. The timings below are with that old version (it is identical with 2.2.3 except for the GPL licence, and 2.2.3 was before 1998).I now suggest to try and do the same with the latest MeatAxe release 2.4.24, which is from 2011. There also is an experimental 2.5.0 from 2003, but I think we shouldn't rely on that.
Sources
The upstream sources http://www.math.rwth-aachen.de/~MTX/meataxe-2.4.24.tar.gz needed to be repackaged, in order to unpack into a single folder. Use attachment: meataxe-2.4.24.tar.gz
What is done
There is no spkg-check. However, if SAGE_CHECK=yes or of one does
sage -i -c meataxe
, then a test suite is executed as part of building the package.It is my experience that the tests pass most of the time. I can not explain why sometimes they don't.
What is missing
Currently, the spkg installs libmtx.a and installs some binaries. However, I also intend to add a Cython wrapper so that one can use MeatAxe matrices in Sage.
Here is the original ticket description:
This is awfully slow:
With the optional spkg and the patch, one gets a clear improvement.
Depends on #19240
Upstream: Reported upstream. No feedback yet.
CC: @malb @jdemeyer @vbraun
Component: packages: optional
Keywords: MeatAxe
Author: Simon King
Branch:
74edf19
Reviewer: Jeroen Demeyer, Travis Scrimshaw
Issue created by migration from https://trac.sagemath.org/ticket/12103
The text was updated successfully, but these errors were encountered: