This is somehow expected: distributed arrays are not meant to increase the speed of execution but to be used for arrays that are so large that they don't fit in the memory of a single computer. The extra cost for communication makes operations on them slower than on regular arrays most of the time. Instead of getting a 'OutOfMemory' error distributed arrays will allow you to run the computation, but you have to keep in mind that this computation is probably quite complex so it is going to take some time.
If you want to accelerate your computation, you may try to use gpuArray instead. Also the efficiency of pcg depends on the preconditioner so you may try to play around with the parameters of ichol ('type' and 'droptol') to find a better preconditioner for your problem.
Best Answer