Hi,
I am trying to port some Matlab code into Julia in order to improve 
performance. The Julia parallel code currently takes about 2-3x as long as 
my Matlab implementation. I am at wit's end as to how to improve the 
performance. Any suggestions?  I tried using pmap but couldn't figure out 
how to implement it in this case. FYI, I am using Julia on Windows 7 with 
nprocs() = 5. 

Thanks,
Alex


function 
expensive_hat(S::Array{Complex{Float64},2},mx::Array{Int64,2},my::Array{Int64,2})


    samples = 64

    A = @parallel (+) for i = 1:samples

        abs2(S[:,i][my].*S[:,i][mx]);

    end

    B = @parallel (+) for i = 1:samples

        abs2(sqrt(conj(S[:,i][mx+my]).*S[:,i][mx+my]));

    end

    C = @parallel (+) for i = 1:samples

        conj(S[:,i][mx+my]).*S[:,i][my].*S[:,i][mx];

    end

    return (A.*B./samples./samples, C./samples);


end


data = rand(24000,64);

limit = 2000;


ix = int64([1:limit/2]);

iy = ix[1:end/2];

mg = zeros(Int64,length(iy),length(ix));

mx = broadcast(+,ix',mg);

my = broadcast(+,iy,mg);

S = rfft(data,1)./24000;


@elapsed (AB, C) = expensive_hat(S,mx,my)

Reply via email to