Ticket #723 (closed enhancement: fixed)
[with patch] Make Sage's LLL faster: Magma seems to totally blow Sage (i.e., NTL) away for large-ish problems.
| Reported by: | was | Owned by: | was |
|---|---|---|---|
| Priority: | major | Milestone: | sage-2.8.8 |
| Component: | linear algebra | Keywords: | |
| Cc: | Author(s): | ||
| Report Upstream: | Reviewer(s): | ||
| Merged in: | Work issues: |
Description (last modified by was) (diff)
Magma's LLL is... way way way faster than the one in NTL. E.g., (this requires patch #325)
sage: a = random_matrix(ZZ,200) sage: time b=a.lll() CPU times: user 8.74 s, sys: 0.08 s, total: 8.83 s Wall time: 8.85 sage: m = magma(a) sage: time c=m.LLL() Wall time: 1.02 sage: a = random_matrix(ZZ,400) sage: time b=a.lll() CPU times: user 202.89 s, sys: 1.54 s, total: 204.44 s Wall time: 206.16 sage: time c=magma(a) CPU times: user 0.24 s, sys: 0.02 s, total: 0.26 s Wall time: 0.38 sage: time d=c.LLL() Wall time: 13.23
It would also be good to benchmark PARI's LLL and compare. Make sure to use the 1 option, so it knows the matrix is integral:
sage: a = random_matrix(ZZ,100) sage: time b=a.lll() CPU times: user 0.53 s, sys: 0.00 s, total: 0.53 s Wall time: 0.53 sage: c = pari(a) sage: time d=c.qflll(1) CPU times: user 0.47 s, sys: 0.00 s, total: 0.47 s Wall time: 0.47 sage: a = random_matrix(ZZ,200) sage: time b=a.lll() CPU times: user 9.02 s, sys: 0.06 s, total: 9.08 s Wall time: 9.14 sage: c = pari(a) sage: time d=c.qflll(1) CPU times: user 9.88 s, sys: 0.05 s, total: 9.93 s Wall time: 9.95
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

