Hi everyone, I recently started using Julia for my projects and I'm currently quite stuck by how to parallelize things.
I've got the two following functions: @everywhere pixel(p) = [p.r, p.g, p.b]; which takes a RGB pixel (as defined in the Images module) and converts it into a vector of its RGB components (in my case always Float64), and @everywhere function p_theta(pixel, mu, Sigma) Sigma = inv(Sigma); d = size(mu, 1); temp = dot(-(pixel - mu), Sigma * (pixel - mu)) / 2; result = (sqrt(det(Sigma)) * exp(temp) / sqrt((2*pi)^2)) return result; end which calculates the probability for a given pixel, given a 3 components vector mu and a 3x3 covariance matrix Sigma. Now, when I use them without parallelizing, there is no problem. However, as soon as I use them in parallel, for example, given an image img s = size(img, 1) * size(img, 2); t_img = reshape(img, s) s_D = @parallel (vcat) for i in 1:s p = pixel(t_img[i]); d = p_theta(p, mu, Sigma); d end it crashes with the following error: ERROR: result shape not specified in _reinterpret_cvarray at ~/.julia/v0.3/Images/src/core.jl:140 all the child processes terminate, and I end up with only 1 julia process left. I tried various things, including pmap, without success. Any idea why that happens? Thanks in advance!
