<?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 more explicit threads, yes. in Intel® Software Guard Extensions (Intel® SGX)</title>
    <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085377#M689</link>
    <description>&lt;P&gt;more explicit threads, yes. But something like&lt;/P&gt;

&lt;P&gt;#pragma omp parallel for&lt;BR /&gt;
	for (size_t i =0; i&amp;lt;n; ++i) do some work (no ecalls but e.g. mathematical functions);&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;which are typical usecases I wouldn'T know how to easily transfer&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 16 Jun 2016 15:03:13 GMT</pubDate>
    <dc:creator>Matthias_H_Intel</dc:creator>
    <dc:date>2016-06-16T15:03:13Z</dc:date>
    <item>
      <title>Threading in Enclave - any plans for OpenMP, TBB?</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085368#M680</link>
      <description>&lt;P&gt;I can find sgx_threads as well as STL threads. But that's all I can spot.&lt;/P&gt;

&lt;P&gt;Is there any plan to provide OpenMP support? What about TBB, Cilk+ (haven't tried Cilk yet within Enclave but I guess it won't work)&lt;/P&gt;</description>
      <pubDate>Fri, 03 Jun 2016 20:20:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085368#M680</guid>
      <dc:creator>Matthias_H_Intel</dc:creator>
      <dc:date>2016-06-03T20:20:35Z</dc:date>
    </item>
    <item>
      <title>Where are sgx_threads,</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085369#M681</link>
      <description>&lt;P&gt;Where are sgx_threads, Matthias?&lt;/P&gt;</description>
      <pubDate>Wed, 08 Jun 2016 15:42:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085369#M681</guid>
      <dc:creator>Alexander_L_Intel</dc:creator>
      <dc:date>2016-06-08T15:42:38Z</dc:date>
    </item>
    <item>
      <title>SGX doesn't support thread</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085370#M682</link>
      <description>&lt;P&gt;SGX doesn't support thread creation/destruction inside an enclave. Thus, OpenMP and other threading libraries and/or parallel programming models cannot be easily supported. However, it is perfectly fine to write an OpenMP program that calls into an enclave during a parallel construct. Thread management is done outside the enclave and a part of the computation happens inside an enclave. Be aware that calling into an enclave has a latency higher than a normal function call so you would have to partition the work differently to minimize the overhead.&lt;/P&gt;

&lt;P&gt;sgx_threads, which I believe refers to sgx_thread.h, provide thread synchronization mechanisms (mutex and condition variables) inside an enclave.&lt;/P&gt;</description>
      <pubDate>Wed, 08 Jun 2016 20:04:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085370#M682</guid>
      <dc:creator>Juan_d_Intel</dc:creator>
      <dc:date>2016-06-08T20:04:35Z</dc:date>
    </item>
    <item>
      <title>Thanks Juan,</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085371#M683</link>
      <description>&lt;P&gt;Thanks Juan,&lt;/P&gt;

&lt;P&gt;Are there syscalls allowed from an enclave?&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Thanks in advance,&lt;/P&gt;

&lt;P&gt;Alexander&lt;/P&gt;</description>
      <pubDate>Thu, 09 Jun 2016 16:53:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085371#M683</guid>
      <dc:creator>Alexander_L_Intel</dc:creator>
      <dc:date>2016-06-09T16:53:34Z</dc:date>
    </item>
    <item>
      <title>Syscall is not supported</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085372#M684</link>
      <description>&lt;P&gt;Syscall is not supported inside the enclave. Refer the following link.&lt;/P&gt;

&lt;P&gt;&lt;A href="https://software.intel.com/en-us/forums/intel-software-guard-extensions-intel-sgx/topic/539803"&gt;https://software.intel.com/en-us/forums/intel-software-guard-extensions-intel-sgx/topic/539803&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jun 2016 06:27:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085372#M684</guid>
      <dc:creator>PadmaPriya_M_Intel</dc:creator>
      <dc:date>2016-06-10T06:27:11Z</dc:date>
    </item>
    <item>
      <title>I don't get it - what sense</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085373#M685</link>
      <description>&lt;P&gt;I don't get it - what sense does it make to provide sgx_thread as well as STL threads within an enclave? (see e.g.&amp;nbsp;https://software.intel.com/sites/products/sgx-sdk-users-guide-windows/Default.htm). Why can you specify the number of supported threads in the SGX project properties if there is no support for threads at all? Quite puzzled&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Jun 2016 09:14:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085373#M685</guid>
      <dc:creator>Matthias_H_Intel</dc:creator>
      <dc:date>2016-06-13T09:14:47Z</dc:date>
    </item>
    <item>
      <title>The enclave is signed at</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085374#M686</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;The enclave is signed at build time, which means that EPC memory pages (including thread contexts - stack, TLS, etc.) that will be allocated to the enclave have to be measured. This means, we need to specify the maximum number of threads that can run inside the enclave simultaneously. If several threads may run inside the enclave and access shared data, you'll have to synchronize them to avoid data race conditions. That's when sgx_thread.h comes into place. It provides thread synchronization mechanisms (mutex and conditional variable). However, threads are created and destroyed outside the enclave.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Jun 2016 12:47:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085374#M686</guid>
      <dc:creator>Juan_d_Intel</dc:creator>
      <dc:date>2016-06-13T12:47:27Z</dc:date>
    </item>
    <item>
      <title>Yes, to the first. Each</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085375#M687</link>
      <description>&lt;P&gt;Yes, to the first. Each thread enters the enclave using the same eid. To answer the second questions, the “PowerTransition” sample included with the SDK makes use of threads.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 15 Jun 2016 06:57:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085375#M687</guid>
      <dc:creator>Kuppusamy_R_Intel</dc:creator>
      <dc:date>2016-06-15T06:57:32Z</dc:date>
    </item>
    <item>
      <title>Matthias, I'm not sure I</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085376#M688</link>
      <description>&lt;P&gt;Matthias, I'm not sure I understand your comment that OpenMP and Clik+ implicit thread won't work.&lt;/P&gt;

&lt;P&gt;Can you elaborate more? As long as you can replace some form of computation in a multithreaded application with a function call (ECALL), your OpenMP/Cilk+/TBB SGX application should work. The compiler/thread library is pretty much oblivious to the fact the application is ECALLing into an enclave.&lt;/P&gt;</description>
      <pubDate>Thu, 16 Jun 2016 14:59:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085376#M688</guid>
      <dc:creator>Juan_d_Intel</dc:creator>
      <dc:date>2016-06-16T14:59:00Z</dc:date>
    </item>
    <item>
      <title>more explicit threads, yes.</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085377#M689</link>
      <description>&lt;P&gt;more explicit threads, yes. But something like&lt;/P&gt;

&lt;P&gt;#pragma omp parallel for&lt;BR /&gt;
	for (size_t i =0; i&amp;lt;n; ++i) do some work (no ecalls but e.g. mathematical functions);&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;which are typical usecases I wouldn'T know how to easily transfer&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 16 Jun 2016 15:03:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085377#M689</guid>
      <dc:creator>Matthias_H_Intel</dc:creator>
      <dc:date>2016-06-16T15:03:13Z</dc:date>
    </item>
    <item>
      <title>You may replace "do some work</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085378#M690</link>
      <description>&lt;P&gt;You may replace "do some work", i.e. the actual calls to mathematical functions with an ECALL, do_some_work(). Then implement this trusted function inside the enclave, which will be what you originally had in "do_some_work". Of course, you would need to marshal the data before or during the ECALL.&lt;/P&gt;</description>
      <pubDate>Thu, 16 Jun 2016 15:09:54 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085378#M690</guid>
      <dc:creator>Juan_d_Intel</dc:creator>
      <dc:date>2016-06-16T15:09:54Z</dc:date>
    </item>
    <item>
      <title>and that would quite hit the</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085379#M691</link>
      <description>&lt;P&gt;and that would quite hit the performance.&lt;/P&gt;

&lt;P&gt;Hence you probably need to pretty much redesign your algos&lt;/P&gt;</description>
      <pubDate>Thu, 16 Jun 2016 15:17:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Threading-in-Enclave-any-plans-for-OpenMP-TBB/m-p/1085379#M691</guid>
      <dc:creator>Matthias_H_Intel</dc:creator>
      <dc:date>2016-06-16T15:17:32Z</dc:date>
    </item>
  </channel>
</rss>

