2023-05-14 06:58:31 +0200 | received badge | ● Famous Question (source) |
2023-04-22 01:23:24 +0200 | received badge | ● Notable Question (source) |
2023-03-30 15:15:12 +0200 | received badge | ● Popular Question (source) |
2020-06-03 16:58:31 +0200 | commented question | Parallelizing symbolic matrix*vector computations for sparse matrices and vectors I will, once I have a solution to the problem. For now I will experiment with different multiprocessing tools, the first attempt is described above and was highly unsuccesful. |
2020-06-03 16:57:09 +0200 | received badge | ● Editor (source) |
2020-06-03 13:29:17 +0200 | commented question | Parallelizing symbolic matrix*vector computations for sparse matrices and vectors It doesn't appear to be the case that the denominators are growing but I will check this more thoroughly, thanks a lot for this hint. Towards the type of parallelization: I really need to do one M*v operation at the time because the next steps depend on the result. I figured that splitting the matrix M into n lists of sparse row vectors, where n is the number of cores could potentially work. Then I can iterate over the lists in parallel so it should take roughly 1/n times the comptation time. The fortunate thing is that the matrices M do not change throughout the entire computation. |
2020-05-28 18:29:31 +0200 | received badge | ● Student (source) |
2020-05-28 12:30:24 +0200 | commented question | What is the most useful basefield for finite matrix groups? This question about finiteness kind of turned up already here: https://ask.sagemath.org/question/38403/check-if-a-finitely-generated-matrix-group-is-finite-works-with-qq-and-not-with-cc/ (Check if a finiteley generated matrix group is finite). There it is pointed out that it wouldn't work over floating point fields like CC but the case of number fields is not really addressed. |
2020-05-28 12:04:56 +0200 | commented question | Parallelizing symbolic matrix*vector computations for sparse matrices and vectors As I said, it may be possible to normalize everything such that QQ works. So for now, just assume the entries to be in QQ. |
2020-05-28 12:01:23 +0200 | commented question | What is the most useful basefield for finite matrix groups? Thank you for the quick reply. Working over numberfields actually makes it possible to enter the matrices in a somewhat useful form. The main problem is not solved, however. Sage still doesn't realize that this group is in fact finite. |
2020-05-26 19:32:40 +0200 | asked a question | Parallelizing symbolic matrix*vector computations for sparse matrices and vectors Hi everyone, I am currently running computations which involve a lot of operations of the type matrix*vector, where both objects are sparse and the result can be expected to be sparse as well. The matrices' base field is the symbolic ring. If I drop certain normalizations I could also work over QQ, I think. The above operations appear sequentially. Although there are some options for parallelizing these at least in part, the biggest acceleration would be achieved if the multiplication itself could be parallelized. Is there a way to do this in Sage? Greetings and thank you very much. Edit: Work in progress Below I put some code that I produced so far which is very far from a solution but produces new slow-downs that I do not understand. The strategy is to save a sparse matrix by its nonzero rows which is facilitated by the following code snippet: The row*vector multiplications are facilitated by the function and regular vector multiplication is given by Now to the actual benchmarks: Using the concurrent.futures library yields the following performance: where the dimensions are adjusted so that the computation does not exceed my RAM capacities because every spawned subprocess takes copies (at least of v). A comparison with serial approaches, both the standard one and the serial version of my particular straegy, show that the parallel version is significantly slower (18 and 7 seconds in the above outputs) while the serial versions do not differ (0.02 seconds in both cases): |
2020-05-26 19:32:40 +0200 | asked a question | What is the most useful basefield for finite matrix groups? Hi everyone, I am trying to write a notebook that does some elementary computations in a finite matrix group like conjugacy classes and character tables. It is meant to be used in cases where the group is realized explicitly as some subgroup of GL(3,R) or GL(2,R). My problem now is that if I want to implement rotations like the base ring will be the symbolic ring SR because there is a sqrt(2) in some denominators. If I then try to compute the characters via I will get an error message. My assumption is that because of the base ring SR, Sage doesn't realize that this is in fact a finite group. What would a suitable base field be to make this computation possible? Thanks in advance. |