[sage-support] Re: Parallel computation in Sage

2018-07-16 Thread Simon King
PS: I don't know if `algorithm='padic'` would use a parallel computation. 
It would certainly make sense.

Am Montag, 16. Juli 2018 18:08:07 UTC+2 schrieb Simon King:
>
> 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.
>
>

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


[sage-support] Re: Parallel computation in Sage

2018-07-16 Thread Simon King
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.