Matlab Distributed Computing

Vanmiddag een zalig stukje code geschreven:

% Create a scheduler
sched = findResource('scheduler', 'type', 'generic');
set(sched,'Configuration','PBS')
% specify the walltime
set (sched, 'SubmitFcn', {@pbsSubmitFcn, '00:30:00'})
% Create a Job
j=createJob(sched);
% Create Tasks
for ii=1:5000
createTask(j, @function, 1, {ii,ii});
end
% Submit the jobs
submit(j)
% Wait for PBS-jobs to finish
j.waitForState
% Get the results
res = j.getAllOutputArguments

Niet de code zelf is geniaal, maar wat het doet. Parallel 5000 functies laten lopen op evenveel processors (of minder als er minder processors vrij zijn). We hebben hier al een tijd een computer cluster op de KULeuven en die is zoooo handig. :-)

Technorati Tags: , ,

3 Responses to “Matlab Distributed Computing”


  1. 1 lattemans

    als ge nu achter die 5000 nog een nulleke zet, gaat het dan nog sneller? Zo moeilijk is die computertaal precies niet ;-)

  2. 2 Dikkie

    Dan doe je tien keer zoveel werk op dezelfde tijd (een half uur, i.e. de walltime die je vraag per Task). Alleen jammer dat er maar 1000 processors zijn in onze cluster ;-) Nog jammerder is dat 5000 het maximum aantal tasks is dat we in de wachtrij mogen zetten.

  3. 3 lattemans

    Snap er niks van, geef mij maar het menselijke lichaam. Veel eenvoudiger.

  1. 1 Distributed Computing at Dikkie

Leave a Reply