I am trying to determine the nullspace of a large symbolic matrix. The single core evolution seems to take too long. I tried Parallelize[]
on the commands LinearSolve[]
and on NullSpace[]
without success. I got messages like
NullSpace[M] cannot be parallelized; proceeding with sequential \ evaluation
Is there any way to parallise the computation of the Nullspace? My only idea is to slice the matrix like
Matrix[[1+k;;100+k,All]]
and then to compute the nullspace for each slice. Then calculate the intersection of the nullspaces as described here (maybe there is a more efficient way than to do this).
Any suggestion is highly appreciated.
NullSpace
does use a multithreading algorithm (check MKL) which, in your case as you are using symbolic matrices, does indeed become sequential operation. You will continue to run into complications when paralellizingNullSpace
; as it is already multi threaded so you are unlikely to avoid the conflicts you are introducing (in other words, thewarning
thatNullSpace[M] cannot be parallelized
has a specific meaning). You probably need to write your ownNullSpace
equivalent function if you need to go parallel to avoid that constraint. $\endgroup$