如何使用mldivide并行化稀疏矩阵的解

时间:2019-02-28 14:07:44

标签: matlab matrix parallel-processing sparse-matrix

我正在尝试并行化以下解决方案 x = A \ B(mldivide。 我的变量是:x = V(I * J * K x I * J * K),A = A(I * J * K x I * J * K)稀疏矩阵,vec = u(I,J,K) + V /恒定+ B开关(I * J * K x I * J * K)* V

要在不进行并行化的情况下执行此操作,我的代码当前正在执行以下操作:

V_stacked = reshape(V,I*J*L,1);
vec = u_stacked + V_stacked/Delta + Bswitch*V_stacked;
V_stacked = A\vec;

我尝试过并行化

u_stacked = reshape(u,I*J,L);
V_stacked = reshape(V,I*J,L);
BswitchTimesVstacked = Bswitch*reshape(V,I*J*L,1);
BswitchTimesVstacked = reshape(BswitchTimesVstacked,I*J,L);
vec = u_stacked + V_stacked/Delta + BswitchTimesVstacked;
tic
parfor l = 1:L 
    V_stacked(:,l) = A(:,:,l)\vec(:,l);
end

但是由于B仍然是I * J * L乘以I * J * L,所以它将无法工作。我不确定1.到目前为止我做的是否正确,以及2.如何适当地重塑B。

数学信息在这里:http://www.princeton.edu/~moll/HACTproject/two_asset_kinked.pdf(第4节)

我们非常感谢您的帮助:-)

0 个答案:

没有答案