<?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: Trying to achieve parallel execution in using IPP function  in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899178#M12526</link>
    <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/336498"&gt;Vladimir Dudnik (Intel)&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;DIV style="margin:0px;"&gt;I would expect twice less time for parallel run. Although a total execution time is sum of time required to start/end thread and time for actual processing of data. If amount of data is small enough than threading overhead may overcome benefits from parallel execution.&lt;BR /&gt;&lt;BR /&gt;Vladimir&lt;/DIV&gt;
&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Vladimir,&lt;BR /&gt;&lt;BR /&gt;My timing measurements are not including the threading overhead. My code is only measuring the time spent in the IPP function call(). The threading overhead is important, but for now I'm just focused on the work done in the IPP function (and time to do that work).&lt;BR /&gt;&lt;BR /&gt;If the two calls are occurring on two separate threads on two separate cores (on two completely separate sets of image data), would you expect the timing result for each call be about the same as in the serialized, single thread case?&lt;BR /&gt;&lt;BR /&gt;Thanks.&lt;BR /&gt;&lt;BR /&gt;-Mike&lt;BR /&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 29 Oct 2009 14:03:44 GMT</pubDate>
    <dc:creator>mmdev</dc:creator>
    <dc:date>2009-10-29T14:03:44Z</dc:date>
    <item>
      <title>Trying to achieve parallel execution in using IPP function ippiAlphaCompC</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899174#M12522</link>
      <description>Hello:&lt;BR /&gt;&lt;BR /&gt;I have written an application that creates and runs multiple threads on multiple Corei7 Intel processors. My system has eight cores. My number of threads is four.&lt;BR /&gt;&lt;BR /&gt;Each of the threads, which are not synchronized with each other, calls into the ippiAlphaCompC IPP function. The threads are all created and started from the same application main thread.&lt;BR /&gt;&lt;BR /&gt;Through some analysis, it seems that the function ippiAlphaCompC blocks completely, i.e. when thread1 on core1 has invoked function ippiAlphaCompC, a call to function ippiAlphaCompC from thread2 running on core2 must wait to execute until the thread1 ippiAlphaCompC call has completely finished. What I'm trying to do is achieve parallelism, by processing multiple sets of data at once across multiple threads/cores using common IPP functions.&lt;BR /&gt;&lt;BR /&gt;Does this make sense? Would one expect this function to block? Is there a way to achieve parallelism with this function across multiple threads/cores (without, e.g. using multiple loads of the IPP dlls within multiple processes).&lt;BR /&gt;&lt;BR /&gt;I'm using dynamic linking and dispatching and I have set the number of threads in IPP to 1 (although leaving the default value to 8 on my system does not seems to make a difference).&lt;BR /&gt;&lt;BR /&gt;Thanks.</description>
      <pubDate>Thu, 29 Oct 2009 00:44:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899174#M12522</guid>
      <dc:creator>mmdev</dc:creator>
      <dc:date>2009-10-29T00:44:29Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to achieve parallel execution in using IPP function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899175#M12523</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
IPP functions are not blocking. How did you come to the conclusion that you see blocking effect?&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt; Vladimir&lt;BR /&gt;</description>
      <pubDate>Thu, 29 Oct 2009 13:25:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899175#M12523</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2009-10-29T13:25:12Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to achieve parallel execution in using IPP function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899176#M12524</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
Hi Vladimir,&lt;BR /&gt;&lt;BR /&gt;I have a simple test application with some timing benchmarks.&lt;BR /&gt;&lt;BR /&gt;If I call this function several times within one thread, serializing the function calls, the timing data I observe for each call is what I would expect, approx 3msec.&lt;BR /&gt;&lt;BR /&gt;Thread1()&lt;BR /&gt;{&lt;BR /&gt;call functionx() // 3msec&lt;BR /&gt;call functionx() // 3msec &lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;If I separate the calls into two separate threads, run on two separate cores, wouldn't one still expect the result to be the same? They should run in parallel. The timing returned is quite higher in this second case.&lt;BR /&gt;&lt;BR /&gt;Thread1() // on core1&lt;BR /&gt;{&lt;BR /&gt;call functionx()&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;Thread2() //on core2&lt;BR /&gt;{&lt;BR /&gt;call functionx()&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;Thanks.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 29 Oct 2009 13:41:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899176#M12524</guid>
      <dc:creator>mmdev</dc:creator>
      <dc:date>2009-10-29T13:41:27Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to achieve parallel execution in using IPP function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899177#M12525</link>
      <description>&lt;DIV style="margin:0px;"&gt;I would expect twice less time for parallel run. Although a total execution time is sum of time required to start/end thread and time for actual processing of data. If amount of data is small enough than threading overhead may overcome benefits from parallel execution.&lt;BR /&gt;&lt;BR /&gt;Vladimir&lt;/DIV&gt;
&lt;BR /&gt;</description>
      <pubDate>Thu, 29 Oct 2009 13:55:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899177#M12525</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2009-10-29T13:55:13Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to achieve parallel execution in using IPP function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899178#M12526</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/336498"&gt;Vladimir Dudnik (Intel)&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;DIV style="margin:0px;"&gt;I would expect twice less time for parallel run. Although a total execution time is sum of time required to start/end thread and time for actual processing of data. If amount of data is small enough than threading overhead may overcome benefits from parallel execution.&lt;BR /&gt;&lt;BR /&gt;Vladimir&lt;/DIV&gt;
&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Vladimir,&lt;BR /&gt;&lt;BR /&gt;My timing measurements are not including the threading overhead. My code is only measuring the time spent in the IPP function call(). The threading overhead is important, but for now I'm just focused on the work done in the IPP function (and time to do that work).&lt;BR /&gt;&lt;BR /&gt;If the two calls are occurring on two separate threads on two separate cores (on two completely separate sets of image data), would you expect the timing result for each call be about the same as in the serialized, single thread case?&lt;BR /&gt;&lt;BR /&gt;Thanks.&lt;BR /&gt;&lt;BR /&gt;-Mike&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Oct 2009 14:03:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899178#M12526</guid>
      <dc:creator>mmdev</dc:creator>
      <dc:date>2009-10-29T14:03:44Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to achieve parallel execution in using IPP function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899179#M12527</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
If in your serial code you call IPP function twice which give you 3 + 3 = 6 msec of running time then running these functions in parallel I would expect total time about 3 msec (just 3 is ideal case not achivable on practice)&lt;BR /&gt;&lt;BR /&gt;Vladimir&lt;BR /&gt;</description>
      <pubDate>Thu, 29 Oct 2009 14:20:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899179#M12527</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2009-10-29T14:20:12Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to achieve parallel execution in using IPP function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899180#M12528</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/336498"&gt;Vladimir Dudnik (Intel)&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;If in your serial code you call IPP function twice which give you 3 + 3 = 6 msec of running time then running these functions in parallel I would expect total time about 3 msec (just 3 is ideal case not achivable on practice)&lt;BR /&gt;&lt;BR /&gt;Vladimir&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Okay. That's what I'm expecting to see as well - each call in the serialized case is 3msec, so I would expect each single call in the multithreaded/multi-core case to be 3msec as well. Since I'm not observing this, and the numbers sometimes can bequite a bit higher (sometime close to twice), I've drawn the conclusion (perhaps incorrectly) that the IPP call is blocking. In this simple test case, with no other processing occurring, I'm having a difficult time thinking of another cause.&lt;BR /&gt;&lt;BR /&gt;Thanks.&lt;BR /&gt;&lt;BR /&gt;-Mike</description>
      <pubDate>Thu, 29 Oct 2009 14:39:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899180#M12528</guid>
      <dc:creator>mmdev</dc:creator>
      <dc:date>2009-10-29T14:39:47Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to achieve parallel execution in using IPP function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899181#M12529</link>
      <description>&lt;DIV style="margin:0px;"&gt;Yeah, that is something unexpected. Could you please try to link with non threaded static libraries to see if there is any difference? What version of IPP do you use, perhaps the latest IPP 6.1 update 1?&lt;BR /&gt;&lt;BR /&gt;Vladimir&lt;/DIV&gt;
&lt;BR /&gt;</description>
      <pubDate>Thu, 29 Oct 2009 14:45:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899181#M12529</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2009-10-29T14:45:43Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to achieve parallel execution in using IPP function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899182#M12530</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/336498"&gt;Vladimir Dudnik (Intel)&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;DIV style="margin:0px;"&gt;Yeah, that is something unexpected. Could you please try to link with non threaded static libraries to see if there is any difference? What version of IPP do you use, perhaps the latest IPP 6.1 update 1?&lt;BR /&gt;&lt;BR /&gt;Vladimir&lt;/DIV&gt;
&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Okay. I'll try that and report back my findings. I'm using version IPP 6.1, but perhaps not the latest (update 1?).&lt;BR /&gt;&lt;BR /&gt;Thanks.&lt;BR /&gt;&lt;BR /&gt;Mike</description>
      <pubDate>Thu, 29 Oct 2009 15:10:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899182#M12530</guid>
      <dc:creator>mmdev</dc:creator>
      <dc:date>2009-10-29T15:10:01Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to achieve parallel execution in using IPP function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899183#M12531</link>
      <description>&lt;DIV style="margin:0px;"&gt;If you can upload your test case here we also would like to investigate what might be the problem with it.&lt;BR /&gt;&lt;BR /&gt;Vladimir&lt;BR /&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 29 Oct 2009 15:54:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899183#M12531</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2009-10-29T15:54:55Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to achieve parallel execution in using IPP function</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899184#M12532</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;BR /&gt;Guys,&lt;BR /&gt;&lt;BR /&gt;3ms is too short a time to test this since the recidual processing of the loading of the test app can saturate one core during those 3msec. Do a for loop around every call and try again.&lt;BR /&gt;&lt;BR /&gt;Also, depending of what timer you use, timer resolution can be a problem as well. Never benchmark much below 1 sec.&lt;BR /&gt;&lt;BR /&gt;Cheers,&lt;BR /&gt;Mikael&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 29 Oct 2009 19:58:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Trying-to-achieve-parallel-execution-in-using-IPP-function/m-p/899184#M12532</guid>
      <dc:creator>Mikael_Grev</dc:creator>
      <dc:date>2009-10-29T19:58:04Z</dc:date>
    </item>
  </channel>
</rss>

