Hi Chandra,
Am Montag, 16. Juli 2018 07:33:03 UTC+2 schrieb chandra chowdhury:
>
> I want to calculate the determinant of a large matrix
> with large entries. So it is taking time. In my machine,
> I have 32 CPUs. Is it possible in Sage to use all CPUs
> parallelly to find the determinant?
>
You said in another post that you're working over the integers. So, you
could try a multi-modular approach.
If M is your matrix over the integers, then the documentation of
M.determinant tells you that you can use M.determinant(algorithm='padic',
proof=True)
(or proof=False).
Example:
sage: M = random_matrix(ZZ,1000)
sage: %time d2 = M.determinant(algorithm='padic')
CPU times: user 25.5 s, sys: 484 ms, total: 25.9 s
Wall time: 26.1 s
sage: M._cache.clear()
sage: %time d3 = M.determinant()
CPU times: user 10.2 s, sys: 0 ns, total: 10.2 s
Wall time: 10.2 s
sage: M._cache.clear()
sage: %time d4 = M.determinant(algorithm='padic', proof=True)
CPU times: user 25.6 s, sys: 464 ms, total: 26.1 s
Wall time: 26.1 s
sage: d2 == d3 == d4
True
So, at least in this case, the multi modular algoirthm is slower than the
default algorithm (which uses Flint). But perhaps it helps in your case.
Best regards,
Simon
--
You received this message because you are subscribed to the Google Groups
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.