<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EpostStil17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="NO-BOK" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">This is way outside my area, but it is my experience that finite impulse length filters are much slower than infite impulse. I think this suits the theoretical
 aspects of this.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Pål
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:navy">Denne meldingen inneholder ikke sensitiv informasjon som bryter med Oslo universitetssykehus HFs krav til
 informasjonssikkerhet.</span><span style="color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:navy">(In compliance with the Security Policy of Oslo University Hospital, the content of this message (including any attachments) is of a non-sensitive nature)</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">Fra:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> eeglablist-bounces@sccn.ucsd.edu [mailto:eeglablist-bounces@sccn.ucsd.edu]
<b>På vegne av</b> Avi Lazarovits<br>
<b>Sendt:</b> 9. juni 2013 09:40<br>
<b>Til:</b> eeglablist@sccn.ucsd.edu<br>
<b>Emne:</b> [Eeglablist] Accelerating lowpass running time<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Hello,</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">I am using EEGlab to process EEG recordings, and running low pass 100 Hz is very slow. I am looking for code modifications
 I can make to accelerate the running time, and also recommendation for optimal hardware specs for this process.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">The files I process are recordings of 66 channles @ 2KHz ~10 minutes long (1086734 samples) bug. I can’t resample
 the files because I need high temporal resolution.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">I use EEGlab version 11.0.3.1b, and run “firls” filter. I run the filter with the following command:
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto"><span style="color:black">EEG = pop_eegfilt( EEG, 0, 100, [], 0,0, 0, ‘firls’, 0);</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">When I run this command I get the following message:
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto"><span style="color:black">eegfilt() - performing 6144-point highpass filtering.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto"><span style="color:black">eegfilt() - highpass transition band width is 0.2 Hz.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">The computer I run the processing on now is i5 3470 (4 cores@ 3.2 Ghz) with 4Gb RAM running windows 7 enterprise
 64 bit and Matlab 2012a. </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">I tried running the same process on an i7 extreme edition 3930k with 64Gb RAM system and it didn't shorten the running
 time at all. I also tried running this filter on a workstation with Xeon CPU and it shortened the running time, but not significantly. I looked on the CPU monitor and found that it doesn’t use more than 1 core, and that the maximal RAM memory usage during
 the processing was about 6.5 Gb.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">1.</span><span style="font-size:7.0pt">    
</span><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">I found that using SSD shortens the time significantly, and therefore I assume that one of the big bottlenecks of this processing is that the process is made on the hard disk and not on
 the RAM. Is there a way to “make” Matlab use RAM instead of the hard drive? </span>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">2.</span><span style="font-size:7.0pt">    
</span><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Are there code changes I can make in EEGlab’s code to run this filter multithreaded so that the process will use all the cores of my CPU? Is there any way to make this process on GPU? Will
 it accelerate the process more than using parallel computing of the CPU? </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;font-family:"Arial","sans-serif""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Thank you</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Avi</span><o:p></o:p></p>
</div>
</div>
</div>
</body>
</html>