<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Hi Richard,<br>
<br>
It sounds like you are interested in serial farming matlab scripts that use EEGLAB functions, where each worker will be doing something completely independent (e.g. load at file, then run ica, then save a file). So they can be run at the same time (or at different
 times, it does not really matter).<br>
<br>
So with a parfor loop you would do something like:<br>
<br>
parfor i=1:lenght(filenamelist)<br>
    load in filename i<br>
    run ica<br>
    save out filename i<br>
end<br>
<br>
I have done this kind of thing with EEGLAB and Matlab PCT (version R2010b, on SHARCNet Linux clusters). EEGLAB does not have a problem with this.<br>
<br>
If this is the kind of serial farming that you are interested in I recommend trying to run all of your serial scripts in Octave. You can run as many instances of Octave as you want on a cluster (until the hardware is saturated) and EEGLAB functions are very
 compatible with Octave execution (EEGLAB functions run in Octave with no modifications if you call octave with the --traditional option... also the Octave equivalents for the Signal and Statistics toolboxes are readily available).
<br>
<br>
James Desjardins, MA<br>
<i>Electrophysiology Technologist</i><br>
Cognitive and Affective Neuroscience Lab, Psychology Department<br>
Jack and Nora Walker Centre for Lifespan Development Research<br>
<i>High Performance Computing Consultant</i><br>
SHARCNet, Compute/Calcul Canada<br>
<br>
Brock University<br>
500 Glenridge Ave.<br>
St. Catharines, ON, Canada L2S 3A1<br>
905-688-5550 x4676<br>
--<br>
"'Cause you never can tell What goes on down below!<br>
"This pool might be bigger Than you or I know!"<br>
<br>
McElligot's Pool<br>
Dr.Seuss 1947<br>
<br>
________________________________________<br>
From: eeglablist-bounces@sccn.ucsd.edu [eeglablist-bounces@sccn.ucsd.edu] on behalf of Richard Höchenberger [richard.hoechenberger@gmail.com]<br>
Sent: November-03-14 5:27 AM<br>
To: eeglablist@sccn.ucsd.edu<br>
Subject: [Eeglablist] Parallel Data Processing<br>
<br>
Hello! We are planning to set up a server for running our EEG analyses<br>
with EEGLAB. The Parallel Computing Toolbox (PCT) [1] in conjunction<br>
with the Distributed Computing Server (DCS) [2] appears to be pretty<br>
promising to me.<br>
<br>
The PCT allows for the straightforward execution of calculations in a<br>
parallel manner. In the most simple approach, 'for' loops could just<br>
be replaced with 'parfor' loops, which would execute the loop<br>
iterations independently on different workers.<br>
<br>
Now I do understand that this approach only works if one iteration<br>
does not depend on the results of another (because they are processed<br>
in parallel). However, I was wondering<br>
<br>
o if EEGLAB keeps internal states (caches, heuristics, ...) during a<br>
calculation, which might then have implications on a second<br>
calculation running in parallel, and if so,<br>
o whether the worker processes are actual separate Matlab processes<br>
completely independent of one another, meaning internal EEGLAB states<br>
in one worker would not influence calculations in another. (I could<br>
not find any documentation about this particular question on the<br>
Matlab website.)<br>
<br>
Thank you very much for your help!<br>
<br>
Richard<br>
<br>
<br>
References:<br>
[1] http://www.mathworks.com/products/parallel-computing/index.html<br>
[2] http://www.mathworks.com/products/distriben/index.html<br>
_______________________________________________<br>
Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html<br>
To unsubscribe, send an empty email to eeglablist-unsubscribe@sccn.ucsd.edu<br>
For digest mode, send an email with the subject "set digest mime" to eeglablist-request@sccn.ucsd.edu<br>
</div>
</body>
</html>