<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Threads in DS2, no time gain in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186787#M35373</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have tried that also, but it doesnt help. With "SASFILE test load" before proc ds2 I get almost same result:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: DS2 query used (Total process time):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.79 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 24.11 seconds&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Oct 2014 13:42:05 GMT</pubDate>
    <dc:creator>JacobSimonsen</dc:creator>
    <dc:date>2014-10-16T13:42:05Z</dc:date>
    <item>
      <title>Threads in DS2, no time gain</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186784#M35370</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I wonder why I can't get a time gain by using threaded processing in DS2. Below I create a dataset with a group-variable, then I count the numbers in each Group by threaded by processing in DS2. It turns out to take far longer than if I do the same with normal datastep. I had expected that the threaded processing should result in far better performance, so I wonder why this does not happen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By the way, this example is just to illustrate the problem. If "counting observations" was the real problem there are better methods to do that.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*the test dataset:;&lt;/P&gt;&lt;P&gt;data test;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do group=1 to 10;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1 to 1000000;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Count observations with DS2:;&lt;/P&gt;&lt;P&gt;proc ds2 bypartition=no stimer;&lt;BR /&gt;&amp;nbsp; thread read/overwrite=yes;&lt;BR /&gt;&amp;nbsp; declare double count;&lt;BR /&gt;&amp;nbsp; method init();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; count=0;&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; method run();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; set test;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; by group i;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if first.group then count=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; count+1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if last.group then output;&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; endthread;&lt;/P&gt;&lt;P&gt;&amp;nbsp; data abc/overwrite=yes;&lt;BR /&gt; keep group count;&lt;BR /&gt;&amp;nbsp; declare thread read instance;&lt;BR /&gt; method run();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; set from instance threads=4;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt; end;&lt;BR /&gt;&amp;nbsp; run;&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: DS2 query used (Total process time):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11.23 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 26.59 seconds&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*In comparison, an ordinary datastep:;&lt;/P&gt;&lt;P&gt;data abc;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set test;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by group i;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if first.group then count=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; count+1;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: There were 10000000 observations read from the data set WORK.TEST.&lt;BR /&gt;NOTE: The data set WORK.ABC has 10000000 observations and 4 variables.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.89 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.59 seconds&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It can very a bit from one run to an other run, but basicly the same result came out each time. Also, changing bypartition to "yes" does not make any big change. And, Yes, I do have multiple processors on my server.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Oct 2014 11:01:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186784#M35370</guid>
      <dc:creator>JacobSimonsen</dc:creator>
      <dc:date>2014-10-16T11:01:53Z</dc:date>
    </item>
    <item>
      <title>Re: Threads in DS2, no time gain</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186785#M35371</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Parallel processing of I/O intensive tasks only makes sense if the I/O can be split unto physically separate devices.&lt;/P&gt;&lt;P&gt;As long as the data set in question is on one device, the threads will cause colliding requests on that device and ultimately slow the process down as compared to one single, often sequential scan through the data set.&lt;/P&gt;&lt;P&gt;That's why the SPDE engine works best with groups of disks aligned along the number of procs.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Oct 2014 12:56:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186785#M35371</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2014-10-16T12:56:53Z</dc:date>
    </item>
    <item>
      <title>Re: Threads in DS2, no time gain</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186786#M35372</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It would become more interesting when you would a dataset in memory using the sasfile approach.&lt;/P&gt;&lt;P&gt;That would eliminate IO constraints. The most slow part with all processing.&lt;/P&gt;&lt;P&gt;You need to have a lot of memory but that should not be an issue these days.&lt;/P&gt;&lt;P&gt;The next one is the overhead in starting and maintaining threads. When that overhead is high compared to the processing it self, there you have another reason you will not improve overall speed.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Oct 2014 13:37:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186786#M35372</guid>
      <dc:creator>jakarman</dc:creator>
      <dc:date>2014-10-16T13:37:44Z</dc:date>
    </item>
    <item>
      <title>Re: Threads in DS2, no time gain</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186787#M35373</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have tried that also, but it doesnt help. With "SASFILE test load" before proc ds2 I get almost same result:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: DS2 query used (Total process time):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.79 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 24.11 seconds&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Oct 2014 13:42:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186787#M35373</guid>
      <dc:creator>JacobSimonsen</dc:creator>
      <dc:date>2014-10-16T13:42:05Z</dc:date>
    </item>
    <item>
      <title>Re: Threads in DS2, no time gain</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186788#M35374</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You are probably hitting the overhead starting maintain all processes.&lt;/P&gt;&lt;P&gt;Adding a more complicated function insyead of counting should prove that.&lt;/P&gt;&lt;P&gt;It is another dimension in causing load.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have now a result the total response is almost equal but with the threading a lot of overhead is added 8 seconds finished am 25 seconds is used.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Oct 2014 13:54:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186788#M35374</guid>
      <dc:creator>jakarman</dc:creator>
      <dc:date>2014-10-16T13:54:04Z</dc:date>
    </item>
    <item>
      <title>Re: Threads in DS2, no time gain</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186789#M35375</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You are probably hitting the overhead starting maintain all processes.&lt;/P&gt;&lt;P&gt;Adding a more complicated function insyead of counting should prove that.&lt;/P&gt;&lt;P&gt;It is another dimension in causing load.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have now a result the total response is almost equal but with the threading a lot of overhead is added 8 seconds finished am 25 seconds is used.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Oct 2014 13:54:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186789#M35375</guid>
      <dc:creator>jakarman</dc:creator>
      <dc:date>2014-10-16T13:54:59Z</dc:date>
    </item>
    <item>
      <title>Re: Threads in DS2, no time gain</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186790#M35376</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Your routine is not computationally complex enough to benefit from threading, you are really only adding overhead since the I/O is still in a single thread.&amp;nbsp; If instead of a simple count you may try this example from &lt;A __default_attr="67009" __jive_macro_name="user" class="jive_macro jive_macro_user" data-objecttype="3" href="https://communities.sas.com/"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;OL class="dp-c" start="1" style="font-size: 12px; font-family: Consolas, 'Courier New', Courier, mono, serif; list-style-position: initial; list-style-image: initial; color: #5c5c5c; margin: 0 0 1px 45px !important; background-color: #ffffff;"&gt;&lt;LI&gt;&lt;SPAN style="color: black; font-size: 9pt !important; font-style: inherit; background-color: inherit; font-family: helvetica, arial; font-weight: inherit;"&gt;options cpucount=actual;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;proc options option=cpucount;run;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;libname base '/u/jaseco/tmp/base';&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;data base.jmaster;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; do j = 1 to 10e6;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; end;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;run;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;proc ds2;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; thread r /overwrite=yes;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl double count k x;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; method run();&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set base.jmaster;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count+1;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do k=1 to 80;/* Add some gratuitous computation! */&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = k/count + k/count + k/count;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; method term();&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OUTPUT;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; endthread;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; run;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;quit;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;proc ds2;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; data j1(overwrite=yes);&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl thread r r_instance;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl double count total;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; method run();&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set from r_instance threads=1;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total+count;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; enddata;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; run;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;quit;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;proc ds2;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; data j2(overwrite=yes);&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl thread r r_instance;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl double count total;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; method run();&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set from r_instance threads=2;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total+count;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; enddata;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; run;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;quit;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;proc ds2;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; data j4(overwrite=yes);&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl thread r r_instance;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl double count total;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; method run();&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set from r_instance threads=4;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total+count;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; enddata;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; run;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;quit;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;proc ds2;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; data j8(overwrite=yes);&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl thread r r_instance;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl double count total;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; method run();&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set from r_instance threads=8;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total+count;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; enddata;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; run;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;quit;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;proc ds2;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; data j16(overwrite=yes);&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl thread r r_instance;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dcl double count total;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; method run();&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set from r_instance threads=16;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total+count;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; enddata;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; run;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;quit;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;/****************************/&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;/* And read it in DATA step */&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;/****************************/&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;data jold;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; set base.jmaster end=finish;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; count+1;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; do k=1 to 80;/* Add some gratuitous computation! */&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = k/count + k/count + k/count;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; end;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;&amp;nbsp; if finish then output;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 9pt !important; font-family: helvetica, arial; color: black; background-color: inherit;"&gt;run;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Oct 2014 18:01:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186790#M35376</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2014-10-17T18:01:09Z</dc:date>
    </item>
    <item>
      <title>Re: Threads in DS2, no time gain</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186791#M35377</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;You are right - when the computational task is relative larger than the I/O task, then the gain by threaded processing can be huge even though I/O is not threaded.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;I tried the code you suggested and I observe that the compuation (real) time decrease alot when number of threads is increased.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;When 8 threads are used:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;NOTE: PROCEDURE DS2 used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.40 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17.50 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;When the ordinary datastep is used:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;NOTE: There were 10000000 observations read from the data set BASE.JMASTER.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;NOTE: The data set WORK.JOLD has 1 observations and 4 variables.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;NOTE: DATA statement used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 42.09 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 42.13 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Oct 2014 07:54:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Threads-in-DS2-no-time-gain/m-p/186791#M35377</guid>
      <dc:creator>JacobSimonsen</dc:creator>
      <dc:date>2014-10-20T07:54:39Z</dc:date>
    </item>
  </channel>
</rss>

