Rank: 2431 based on 44 downloads (last 30 days) and 3 files submitted
photo

Edric Ellis

E-mail
Company/University
The MathWorks
Lat/Long
52.229694, 0.150978

Personal Profile:

Developer at MathWorks, working on Parallel Computing Toolbox. On soundcloud here: https://soundcloud.com/edric-ellis .

Professional Interests:
parallel computing, distributed arrays, gpu

 

Watch this Author's files

 

Files Posted by Edric View all
Updated   File Tags Downloads
(last 30 days)
Comments Rating
12 Apr 2012 Blackjack computational kernel Simulation of a single hand of blackjack Author: Edric Ellis demo 9 0
30 Jun 2009 Screenshot PARFOR Progress Monitor A Java progress monitor to track progress through a PARFOR loop running MATLAB® workers Author: Edric Ellis parallel, parfor 35 10
  • 4.375
4.4 | 8 ratings
Comments and Ratings by Edric View all
Updated File Comments Rating
03 Sep 2014 Worker Object Wrapper Simplifies managing resources such as large data within PARFOR loops and SPMD blocks Author: Parallel Computing Team

@Dan, try replacing line 136 with the following:

Map = containers.Map(uint32(0), [], 'UniformValues', false);

which is the R2009a syntax.

01 Sep 2014 Worker Object Wrapper Simplifies managing resources such as large data within PARFOR loops and SPMD blocks Author: Parallel Computing Team

@Dan - that error is definitely not expected. What version of MATLAB/PCT are you using? What happens if you try to execute

containers.Map('KeyType', 'uint32', 'ValueType', 'any');

in MATLAB?

01 Nov 2013 Worker Object Wrapper Simplifies managing resources such as large data within PARFOR loops and SPMD blocks Author: Parallel Computing Team

Hi Matt, FYI - I updated the version here to include that fix. Cheers, Edric.

31 Oct 2013 Worker Object Wrapper Simplifies managing resources such as large data within PARFOR loops and SPMD blocks Author: Parallel Computing Team

Hi Matt, calling "clear" inside SPMD is not necessary - that's not the problem. Because of the way Composites work, when they go out of scope the workers don't find out immediately, only on the next SPMD block. If you add an SPMD block to your function, that's not sufficient since that happens before the Composites are created during the WorkerObjWrapper deletion.

Next suggestion: try adding the following line

val = []; dtor = []; valdtor = [];

as the last line inside the SPMD block in workerDelete.

30 Oct 2013 Worker Object Wrapper Simplifies managing resources such as large data within PARFOR loops and SPMD blocks Author: Parallel Computing Team

Hi Matt, with your latest reproduction put inside a function, I see that the workers hold on to the memory after the function returns, but an empty "spmd, end" block is sufficient to clear them. Do you not see that behaviour?

Note that the Composite causing the memory to be retained is one created in WorkerObjWrapper, not your code.

Comments and Ratings on Edric's Files View all
Updated File Comment by Comments Rating
17 Oct 2013 PARFOR Progress Monitor A Java progress monitor to track progress through a PARFOR loop running MATLAB® workers Author: Edric Ellis Darryn

24 Sep 2013 PARFOR Progress Monitor A Java progress monitor to track progress through a PARFOR loop running MATLAB® workers Author: Edric Ellis Dgn, Arthur

30 Aug 2013 PARFOR Progress Monitor A Java progress monitor to track progress through a PARFOR loop running MATLAB® workers Author: Edric Ellis Li, Peter

@Alexandra, when `javaaddpath` is called it calls `clear java`, which also appears to clear globals. Try putting the java path into your setup on startup so you don't have to worry about it later?

29 Aug 2013 PARFOR Progress Monitor A Java progress monitor to track progress through a PARFOR loop running MATLAB® workers Author: Edric Ellis Li, Peter

Thanks!

I had a little trouble on Linux because my pctconfig hostname was just the machine name and I didn't have anything in /etc/hosts for that. It might be helpful to make the socket connection timeout faster so that in situations like this the thing doesn't just appear to freeze?

It also seems to me that the ProgWorker class isn't strictly necessary. It is sufficient to make the Matlab increment(o) method do something like: s = java.net.Socket(o.HostName, o.Port); s.close(); (assuming you also change the private constructor to save the HostName and Port instead of creating a ProgWorker. This seems a bit nicer to me as you don't have to worry about the javaclasspath of the Workers.

29 Aug 2013 PARFOR Progress Monitor A Java progress monitor to track progress through a PARFOR loop running MATLAB® workers Author: Edric Ellis Li, Peter

Contact us