#5510: [with patch, positive review] update M4RI interface
----------------------------+-----------------------------------------------
Reporter: malb | Owner: malb
Type: enhancement | Status: new
Priority: major | Milestone: sage-4.0.2
Component: linear algebra | Keywords: m4ri, linear algebra
Reviewer: | Author:
Merged: |
----------------------------+-----------------------------------------------
Comment(by jason):
I re-ran my timings (on a different computer) in 4.0. Here are the
results:
BEFORE:
{{{
sage: A = matrix(GF(2),100, 100,0)
sage: timeit('A.rank(); A._clear_cache()')
625 loops, best of 3: 47.9 µs per loop
sage: A = matrix(GF(2),10, 10,0)
sage: timeit('A.rank(); A._clear_cache()')
625 loops, best of 3: 39.9 µs per loop
sage: A = matrix(GF(2),100, 100,0)
sage: timeit('A.rank(); A._clear_cache()')
625 loops, best of 3: 47.7 µs per loop
sage: A = matrix(GF(2),1000, 1000,0)
sage: timeit('A.rank(); A._clear_cache()')
625 loops, best of 3: 222 µs per loop
sage: A = random_matrix(GF(2), 1000)
sage: save(A,'m4ri.sobj')
sage: timeit('A.rank(); A._clear_cache()')
125 loops, best of 3: 6.85 ms per loop
sage: A = random_matrix(GF(2), 100)
sage: save(A,'m4ri2.sobj')
sage: timeit('A.rank(); A._clear_cache()')
625 loops, best of 3: 164 µs per loop
sage: A = random_matrix(GF(2), 10000)
sage: save(A,'m4ri3.sobj')
sage: timeit('A.rank(); A._clear_cache()')
5 loops, best of 3: 4.24 s per loop
}}}
AFTER
{{{
sage: A = matrix(GF(2),100, 100,0)
sage: timeit('A.rank(); A._clear_cache()')
625 loops, best of 3: 17.9 µs per loop
sage: A = matrix(GF(2),10, 10,0)
sage: timeit('A.rank(); A._clear_cache()')
625 loops, best of 3: 13.4 µs per loop
sage: A = matrix(GF(2),100, 100,0)
sage: timeit('A.rank(); A._clear_cache()')
625 loops, best of 3: 18.3 µs per loop
sage: A = matrix(GF(2),1000, 1000,0)
sage: timeit('A.rank(); A._clear_cache()')
625 loops, best of 3: 205 µs per loop
sage: A=load('./m4ri.sobj')
sage: timeit('A.rank(); A._clear_cache()')
125 loops, best of 3: 4.72 ms per loop
sage: A=load('./m4ri2.sobj')
sage: timeit('A.rank(); A._clear_cache()')
625 loops, best of 3: 115 µs per loop
sage: A=load('./m4ri3.sobj')
sage: timeit('A.rank(); A._clear_cache()')
5 loops, best of 3: 2.57 s per loop
}}}
The new code is a clear winner. I don't know what was happening before,
but it seems great now. Positive review.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/5510#comment:6>
Sage <http://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
-~----------~----~----~----~------~----~------~--~---