#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.2                 
               
  Component:  linear algebra      |       Keywords:  linbox, linear algebra, 
sd32              
Work_issues:  improve echelonize  |       Upstream:  N/A                        
               
   Reviewer:                      |         Author:  Burcin Erocal, Martin 
Albrecht, Rob Beezer
     Merged:                      |   Dependencies:                             
               
----------------------------------+-----------------------------------------

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]

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.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]

--

Comment(by malb):

 The additional patch makes us use the old EchelonFormDomain interface
 which is twice as fast (as Clément explained). Simon, can you review this
 ticket?

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/4260#comment:23>
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.

Reply via email to