You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Talk to the Singular people about some way to pass arguments by reference and some way to avoid copies when returning multiple values (for single values there actually is some logic preventing unnecessary copies).
As always, there are obvious pros and cons :D
Edit: I just noticed that even kernel functions (e.g. module) and syntactic structures (see example below) have a similar overhead. So I'm not sure if it really makes sense to invest time here.
Example:
ring R;
matrix A[10000][10000];
matrix B[10000][10000];
matrix C[20000][10000] = A,B;
During the computation of C there is a noticeable peak in RAM usage. I assume this is also due to copying some stuff internally stuff.
The text was updated successfully, but these errors were encountered:
Currently, using procedures in Singular causes overhead:
This causes unexpected peak RAM usage and slowdowns, noticeable for large (say, 10000x10000) matrices.
There are multiple possible solutions/improvements:
SyzForHomalg
andSyzygiesGeneratorsOfRows
seem to be aliases.Singular.gi
. For example,DecideZeroColumns
could directly callreduce
instead of callingDecideZeroRows
.SingularBasic.gi
.As always, there are obvious pros and cons :D
Edit: I just noticed that even kernel functions (e.g.
module
) and syntactic structures (see example below) have a similar overhead. So I'm not sure if it really makes sense to invest time here.Example:
During the computation of
C
there is a noticeable peak in RAM usage. I assume this is also due to copying some stuff internally stuff.The text was updated successfully, but these errors were encountered: