#4260: use LinBox as native matrix representation for dense matrices over GF(p)
----------------------------------------------------------+-----------------
Reporter: malb | Owner:
cpernet
Type: enhancement | Status:
needs_review
Priority: major | Milestone:
sage-4.7.3
Component: linear algebra | Keywords:
linbox, linear algebra, sd32, sd34
Work_issues: cleanup spkg | Upstream:
N/A
Reviewer: Burcin Erocal, Simon King, Martin Albrecht | Author:
Burcin Erocal, Martin Albrecht, Rob Beezer
Merged: | Dependencies:
----------------------------------------------------------+-----------------
Changes (by malb):
* status: needs_work => needs_review
Old description:
> Copying to and from LinBox uses up precious RAM and the point of fast
> linear algebra is to deal with large matrices. We should consider
> switching to LinBox as the native representation of matrices over GF(p)
>
> '''Without Patch'''
>
> {{{
> #!python
> sage: A = random_matrix(GF(97),2000,2000)
> sage: %time A*A
> CPU times: user 9.66 s, sys: 0.12 s, total: 9.77 s
> Wall time: 9.82 s
> }}}
>
> '''With Patch'''
> {{{
> #!python
> sage: A = random_matrix(GF(97),2000,2000)
> sage: %time A*A
> CPU times: user 1.32 s, sys: 0.00 s, total: 1.32 s
> Wall time: 1.35 s
> }}}
>
> '''Magma'''
>
> {{{
> > A:=RandomMatrix(GF(97),2000,2000);
> > time C:=A*A;
> Time: 1.560
> }}}
>
> * '''Install'''
> http://sage.math.washington.edu/home/malb/spkgs/linbox-1.1.6.p4.spkg
> * '''Apply''' [attachment:trac_4260-linbox_default.patch]
> * '''Apply''' [attachment:trac_4260-dense_ctypes_template.patch]
> * '''Apply''' [attachment:trac_4260-matrix-modn-docs.patch]
> * '''Apply''' [attachment:trac_4260_more_doctests.patch]
> * '''Apply''' [attachment:trac_4260_echelonformdomain.patch]
> * '''Apply''' [attachment:trac_4260-minor_fixes.patch]
New description:
Copying to and from LinBox uses up precious RAM and the point of fast
linear algebra is to deal with large matrices. We should consider
switching to LinBox as the native representation of matrices over GF(p)
'''Without Patch'''
{{{
#!python
sage: A = random_matrix(GF(97),2000,2000)
sage: %time A*A
CPU times: user 9.66 s, sys: 0.12 s, total: 9.77 s
Wall time: 9.82 s
}}}
'''With Patch'''
{{{
#!python
sage: A = random_matrix(GF(97),2000,2000)
sage: %time A*A
CPU times: user 1.32 s, sys: 0.00 s, total: 1.32 s
Wall time: 1.35 s
}}}
'''Magma'''
{{{
> A:=RandomMatrix(GF(97),2000,2000);
> time C:=A*A;
Time: 1.560
}}}
* '''Install'''
http://sage.math.washington.edu/home/malb/spkgs/linbox-1.1.6.p5.spkg
* '''Apply''' [attachment:trac_4260-linbox_default.patch]
* '''Apply''' [attachment:trac_4260-dense_ctypes_template.patch]
* '''Apply''' [attachment:trac_4260-matrix-modn-docs.patch]
* '''Apply''' [attachment:trac_4260_more_doctests.patch]
* '''Apply''' [attachment:trac_4260_echelonformdomain.patch]
* '''Apply''' [attachment:trac_4260-minor_fixes.patch]
--
Comment:
> What is the purpose of spkg-rebuild? If it is not used, remove it. If it
is used, document it.
removed
> spkg-debian and the dist directory should be removed. They are leftovers
for Debian, but these are now being removed from every spkg.
removed
> Why is "linbox" in .hgignore?
removed
> The file patches/commentator.C lacks a corresponding .patch file.
added
> Make spkg-install use patch for patching.
left for another time
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/4260#comment:30>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.