<?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 thread pool not returing memory when using libiomp5? in Intel® MPI Library</title>
    <link>https://community.intel.com/t5/Intel-MPI-Library/thread-pool-not-returing-memory-when-using-libiomp5/m-p/1448516#M10281</link>
    <description>&lt;P&gt;Hi.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a program which implements an iterative algorithm. The iteration requires some pre-calculated components (arrays), which are either calculated by the program on-the-fly before going into the iteration, or are loaded from a backup file generated in a previous run. Note that these components are bit identical, invariably of whether they are loaded from backup or calculated on-the-fly.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The above implies that once the calculation is finished the RAM demand at the iteration stage of the program, either using on-the-fly calculated components or uploaded components, must be the same.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;However I noticed a huge difference in memory requirements during iteration depending on whether the component was calculated on-the-fly or uploaded, and that difference seems to be a result of the used OpenMP library.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I noticed the following memory usage during iteration:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;libiomp5&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;libgomp&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;no threaded&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;uploaded&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;100%&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;100%&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;100%&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;calculated&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;150%&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;
&lt;P&gt;100%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;
&lt;P&gt;100%&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From the above I inferred that my code should not leaking any memory due to programming errors. Since libgomp works for "calculated" I presume that there are also no data race conditions. Further, final calculation results are exactly the same for all six possible configurations, further implying absence of data race conditions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For investigation, I put the relevant section of the code where the component calculation is done in a loop to check whether there is memory build up (memory leak), which is not the case. Therefore while the "libiomp5+calculated" approach needs more memory, that memory is NOT increasing if the calculation is repeated within a loop.&lt;/P&gt;
&lt;P&gt;My current conclusion is that the threads somehow are not returning allocated memory once the threaded code section is left?! Is that possible?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any ideas?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;compiler: intel clang++ version 2022.2.1&lt;/P&gt;
&lt;P&gt;OS: Linux, kernel version 6.1.6&lt;/P&gt;
&lt;P&gt;code: C++-20&lt;/P&gt;
&lt;P&gt;libc: 2.36&lt;/P&gt;</description>
    <pubDate>Fri, 20 Jan 2023 06:57:09 GMT</pubDate>
    <dc:creator>may_ka</dc:creator>
    <dc:date>2023-01-20T06:57:09Z</dc:date>
    <item>
      <title>thread pool not returing memory when using libiomp5?</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/thread-pool-not-returing-memory-when-using-libiomp5/m-p/1448516#M10281</link>
      <description>&lt;P&gt;Hi.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a program which implements an iterative algorithm. The iteration requires some pre-calculated components (arrays), which are either calculated by the program on-the-fly before going into the iteration, or are loaded from a backup file generated in a previous run. Note that these components are bit identical, invariably of whether they are loaded from backup or calculated on-the-fly.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The above implies that once the calculation is finished the RAM demand at the iteration stage of the program, either using on-the-fly calculated components or uploaded components, must be the same.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;However I noticed a huge difference in memory requirements during iteration depending on whether the component was calculated on-the-fly or uploaded, and that difference seems to be a result of the used OpenMP library.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I noticed the following memory usage during iteration:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;libiomp5&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;libgomp&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;no threaded&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;uploaded&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;100%&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;100%&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;100%&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;calculated&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;150%&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;
&lt;P&gt;100%&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="16.666666666666668%"&gt;
&lt;P&gt;100%&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From the above I inferred that my code should not leaking any memory due to programming errors. Since libgomp works for "calculated" I presume that there are also no data race conditions. Further, final calculation results are exactly the same for all six possible configurations, further implying absence of data race conditions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For investigation, I put the relevant section of the code where the component calculation is done in a loop to check whether there is memory build up (memory leak), which is not the case. Therefore while the "libiomp5+calculated" approach needs more memory, that memory is NOT increasing if the calculation is repeated within a loop.&lt;/P&gt;
&lt;P&gt;My current conclusion is that the threads somehow are not returning allocated memory once the threaded code section is left?! Is that possible?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any ideas?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;compiler: intel clang++ version 2022.2.1&lt;/P&gt;
&lt;P&gt;OS: Linux, kernel version 6.1.6&lt;/P&gt;
&lt;P&gt;code: C++-20&lt;/P&gt;
&lt;P&gt;libc: 2.36&lt;/P&gt;</description>
      <pubDate>Fri, 20 Jan 2023 06:57:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/thread-pool-not-returing-memory-when-using-libiomp5/m-p/1448516#M10281</guid>
      <dc:creator>may_ka</dc:creator>
      <dc:date>2023-01-20T06:57:09Z</dc:date>
    </item>
    <item>
      <title>Re:thread pool not returing memory when using libiomp5?</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/thread-pool-not-returing-memory-when-using-libiomp5/m-p/1448662#M10285</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thanks for posting in Intel Communities.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Could you please provide us with the complete reproducer codes and steps to reproduce your issue at our end?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards,&lt;/P&gt;&lt;P&gt;Varsha&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 20 Jan 2023 09:28:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/thread-pool-not-returing-memory-when-using-libiomp5/m-p/1448662#M10285</guid>
      <dc:creator>VarshaS_Intel</dc:creator>
      <dc:date>2023-01-20T09:28:50Z</dc:date>
    </item>
    <item>
      <title>Re:thread pool not returing memory when using libiomp5?</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/thread-pool-not-returing-memory-when-using-libiomp5/m-p/1450716#M10306</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;We have not heard back from you. Could you please provide an update on your issue?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards,&lt;/P&gt;&lt;P&gt;Varsha&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 27 Jan 2023 12:27:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/thread-pool-not-returing-memory-when-using-libiomp5/m-p/1450716#M10306</guid>
      <dc:creator>VarshaS_Intel</dc:creator>
      <dc:date>2023-01-27T12:27:16Z</dc:date>
    </item>
    <item>
      <title>Re:thread pool not returing memory when using libiomp5?</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/thread-pool-not-returing-memory-when-using-libiomp5/m-p/1453042#M10339</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;We have not heard back from you. This thread will no longer be monitored by Intel. If you have additional queries, please post a new question.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards,&lt;/P&gt;&lt;P&gt;Varsha&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 03 Feb 2023 12:10:49 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/thread-pool-not-returing-memory-when-using-libiomp5/m-p/1453042#M10339</guid>
      <dc:creator>VarshaS_Intel</dc:creator>
      <dc:date>2023-02-03T12:10:49Z</dc:date>
    </item>
  </channel>
</rss>

