Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

need simple example using pmode

Asked by huda nawaf on 12 Mar 2013

hi,

*i need simple example using pmode . for example : if I have this array

x=[2 90 2 17 80; 5 3 2 90 8; 60 74 1 2 3;55 6 4 11 0];

 how i can use my two workers to sum this array, where each worker will work on part of array, the collect the result.

I don't know how i partition the array on two workers , the how to collect the results.

please , i need simple example about that.

thanks in advance*

0 Comments

huda nawaf

Tags

Products

No products are associated with this question.

1 Answer

Answer by Konrad Malkowski on 13 Mar 2013

Here's an example how to use

 distributed 

arrays and how to use SPMD:

matlabpool open 2
x = 1:1:100;
y = 100:-1:1;
dx = distributed(x);
dy = distributed(y);
dz = dx + dy
spmd
dz
end

Note that dz is distributed across two workers :-).

Hope this helps

3 Comments

huda nawaf on 13 Mar 2013

Many thanks,

Can I use this code to solve complex program as sequence alignmnet ?I meam instead of sum two vectors , I use other procedure in same way.

Konrad Malkowski on 15 Mar 2013

Yes you could use this functionality in the way that you describe. You will need to check documentation for distributed/codistributed arrays to see which options are supported.

You can also do MPI like programming in MATLAB using labSend, labReceive commands, etc.

huda nawaf on 16 Mar 2013

I have a matrix , say x(10*10); and I have two workers what I need is running the code for each part of matrix. I want to ask , must I write the code two times as follows, then coolect the result? what if I have 5 workers, must write the code 5 times?

matlabpool open 2
  x=dlmread()with size 10*10
  for i=1:5
  for j=1:10
  process....
  end
  end
  result=z
  for i=6:10
  for j=1:10
  process....
  end
  end
  result=z1;
    dx = distributed(z);
    dy = distributed(z1);
    dz = dx + dy
    spmd
    dz
    end

thanks in advance

Konrad Malkowski

Contact us