MATLAB: Parallel computing in Neural Networks is not using all the Workers in Matlab 2015b

neural networkparallel computingparpool

Hi everyone!
I am using a Time Delay Neural Network that takes a long time to be trained. So, I have used parallel processing and the training time had a great decrease.
The curious thing is that when using Matlab 2015a the parallel processing works all the workers:
pool = parpool;
tdnn = train(tdnn,Xs,Ts,'useParallel','yes','showResources','yes');
The result is:
Starting parallel pool (parpool) using the 'local' profile ... connected to 4 workers.
Computing Resources:
Parallel Workers:
Worker 1 on MBP-de-Hugo, MATLAB on MACI64
Worker 2 on MBP-de-Hugo, MATLAB on MACI64
Worker 3 on MBP-de-Hugo, MATLAB on MACI64
Worker 4 on MBP-de-Hugo, MATLAB on MACI64
However, when using the same code in Matlab 2015b, just one worker is used:
Starting parallel pool (parpool) using the 'local' profile ... connected to 4 workers.
Computing Resources:
Parallel Workers:
Worker 1 on MBP-de-Hugo, MEX on MACI64
Worker 2 on MBP-de-Hugo, Unused
Worker 3 on MBP-de-Hugo, Unused
Worker 4 on MBP-de-Hugo, Unused
How to use the others Workers in Matlab 2015b?
Thanks in advance!

Best Answer

This is a bug in the "train" function of the Neural Network toolbox in the way the time information of the timedelaynet is analyzed prior to sending to the workers, making it appear internally as though the network training cannot be parallelized.
This behavior is a side-effect of the following bug:
To work around this issue, please follow these instructions in the above link to apply the patch.