I am trying to parallelize the computation of the CDF of a random variable (more precisely, a doubly noncentral $F$ variable) for a matrix of values.
This is a MWE:
rows = {3, 4, 5};
columns = {0.1, 0.2, 0.3};
ones = Table[{1}, 3];
RO = ones.{rows};(* 3x3 matrix with all ROWS equal to `rows` *)
CO = Transpose[
ones.{columns}];(* 3x3 matrix with all COLUMNS equal to `columns` *)
Q1 = RO + CO; (* Matrix of input values *)
Q2 = Parallelize[CDF[NoncentralFRatioDistribution[10, 2, 5, 1], Q1]]
The result is
Parallelize::nopar1: CDF[NoncentralFRatioDistribution[10,2,5,1],Q1] cannot be parallelized; proceeding with sequential evaluation.
[...]
My real problem does not deal with $3 \times 3$ but $400 \times 400$ matrices, and the time consumed is excessive without parallelization. Can this be done in a different way, taking profit of parallelization?
UPDATE
I am not very familiar with parallelizing operations. I would usually do this with two nested for
loops. But, as fas as I know, many languages allow for parallelization, which is, operating on a vector or a matrix as if it was a number (roughly speaking), and it seems to be faster than nested loops.
So... That is how I finally arrived to the impasse I have just reported. I do not know how to continue or solve this.