<div dir="ltr">Hi James: <div><br></div><div>Thank you very much for your reply. </div><div>If I am right to address as you said - </div><div>the shared library is being linked is:  -L/home/XXX/opt/libomp_oss/exports/lin_32e/lib/ -L. -liomp5</div><div>Running <b>nm  </b>command on  <b>libiomp5.so </b>shows: (same symbol format as for omp_set_num_threads runtime routine call)</div><div><br></div><div>000000000001b380 t __<b>kmp_api_omp_set_my_threads</b></div><div>000000000001c050 t __<b>kmp_api_omp_set_my_threads_</b> </div><div><br></div><div>and my runtime gets linked and it reflects the modifications. </div><div><br></div><div>Secondly, about stylistic issue: yes I will definitely follow the standard practice. thanks again for your nice explanations.</div><div><br></div><div>One more thing, I am just wondering: I see in intel openMP source code contains a file name <<b>dllexports</b>> where dllexports file contains, </div><div><div># Deprecated entry points (numbers are reserved):</div><div>omp_set_num_threads                         717</div><div>ompc_set_num_threads                        724</div></div><div><br></div><div><b>Is this something significant, I need to care about..? </b></div><div><br></div><div>Appreciate your invaluable feedback. </div><div><br></div><div>Best regards,</div><div>- Raju </div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 20, 2016 at 4:07 AM, Cownie, James H <span dir="ltr"><<a href="mailto:james.h.cownie@intel.com" target="_blank">james.h.cownie@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-GB" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><a name="1901053691__MailEndCompose"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#1f497d">At a guess you’re not linking against the runtime you have modified.<u></u><u></u></span></a></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#1f497d">Check exactly which shared library is being linked, and then use nm on it to see what symbols it contains.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#1f497d">As a second, stylistic, issue: please don’t name your new, non-standard function “omp_<i>anything”.
</i>Such names should be reserved for functions from the OpenMP standard. Historically other, non-standard, entrypoints to the runtime have used the “kmp_” prefix. Either use that, or choose your own, but having non-standard functionality appear to be standard
 is asking for trouble.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#1f497d">-- Jim<br>
<br>
James Cownie <<a href="mailto:james.h.cownie@intel.com" target="_blank">james.h.cownie@intel.com</a>><br>
SSG/DPD/TCAR (Technical Computing, Analyzers and Runtimes)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#1f497d">Tel: <a href="tel:%2B44%20117%209071438" value="+441179071438" target="_blank">+44 117 9071438</a></span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Openmp-commits [mailto:<a href="mailto:openmp-commits-bounces@lists.llvm.org" target="_blank">openmp-commits-bounces@lists.llvm.org</a>]
<b>On Behalf Of </b>Rezaul Karim Raju via Openmp-commits<br>
<b>Sent:</b> Wednesday, January 20, 2016 3:33 AM<br>
<b>To:</b> <a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>; <a href="mailto:openmp-commits@lists.llvm.org" target="_blank">openmp-commits@lists.llvm.org</a><br>
<b>Subject:</b> Re: [Openmp-commits] [Openmp-dev] Intel OpenMP Runtime & LLVM : RUNTIME FUNCTION (newly written) CALL gets " Undefined Reference"<u></u><u></u></span></p><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">Hello everyone,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">I was writing a new runtime routine to integrate with intel openMP runtime. My function call is pretty like the calling of, "omp_set_num_threads(4);"<u></u><u></u></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">     <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b>omp_set_my_threads(8);</b><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b>omp_set_data_bind(&bindvariable);</b><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b>my goal here is to set/provide (to runtime) a integer value and an address location through runtime routine call. </b><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b>What I did: </b><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">I have made a shadow copy like the omp_set_num_thread() function implementation; it generates the function prototype as below
<b>in the omp.h header file:</b> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">extern void   __KAI_KMPC_CONVENTION  omp_set_num_threads (int);<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">extern void   __KAI_KMPC_CONVENTION  omp_set_data_bind   (void *);<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">extern void   __KAI_KMPC_CONVENTION  omp_set_my_threads   (int);<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">and in my program I am calling like: <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">int main(){<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">....<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">omp_set_num_threads(4);<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">            <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b>omp_set_my_threads(8);</b><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b>omp_set_data_bind(&bindvariable);</b><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">            #pragma omp parallel<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">            {<u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">          ---<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">        }<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">}<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">Compile with CLANG (LLVM) the IR code generates the function call as:   <b>call void @omp_set_my_threads(i32 8)</b><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b>but while I am going to compile it gives me the error as: </b><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b><span style="color:red">/tmp/XXXa.o: In function `main':<u></u><u></u></span></b></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b><span style="color:red">XXXa.c:(.text+0x403): undefined reference to `omp_set_my_threads'<u></u><u></u></span></b></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b><span style="color:red">clang-3.5: error: linker command failed with exit code 1 <u></u><u></u></span></b></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b><span style="color:red"><u></u> <u></u></span></b></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b><span style="color:blue">CAN YOU PLEASE COMMENT WHAT I AM MISSING HERE ..? </span><u></u><u></u></b></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b><u></u> <u></u></b></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b><span style="color:black">thank you very much in advance..!!</span><u></u><u></u></b></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b><u></u> <u></u></b></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><b><span style="color:black">- Raju</span><u></u><u></u></b></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">            <u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt"><u></u> <u></u></p>
<div>
<p class="MsoNormal" style="margin-bottom:10.0pt">On Tue, Dec 15, 2015 at 11:02 AM, Churbanov, Andrey <<a href="mailto:Andrey.Churbanov@intel.com" target="_blank">Andrey.Churbanov@intel.com</a>> wrote:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Hello,</span><span lang="RU"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span><span lang="RU"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">If you print information from __kmp_task_alloc() function, you cannot find your data in
 the structures.</span><span lang="RU"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">The reason is that this routine only allocates space requested by the compiler and initializes
 its own runtime-related info, and if you examine the space allocated for shareds you can only find uninitialized memory there.</span><span lang="RU"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span><span lang="RU"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">The addresses of shared variables are put into allocated memory by the compiler later,
 AFTER the __kmp_task_alloc() call. E.g. the array of shareds should already be initialized in the __kmp_omp_task() call.  But I doubt you can rely on particular location of any shared variable in the array of shareds, it is compiler’s decision where to place
 your particular variable’s address, and it may or may not be the first in the array of shareds. E.g. compiler can insert its own auxiliary data before user’s data.</span><span lang="RU"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span><span lang="RU"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Regards,</span><span lang="RU"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Andrey</span><span lang="RU"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
<p class="MsoNormal"><a name="1901053691_1144782762______replyseparator"></a><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">
 Openmp-dev [mailto:<a href="mailto:openmp-dev-bounces@lists.llvm.org" target="_blank">openmp-dev-bounces@lists.llvm.org</a>]
<b>On Behalf Of </b>Rezaul Karim Raju via Openmp-dev<br>
<b>Sent:</b> Tuesday, December 15, 2015 8:47 AM<br>
<b>To:</b> <a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>;
<a href="mailto:openmp-commits@lists.llvm.org" target="_blank">openmp-commits@lists.llvm.org</a><br>
<b>Subject:</b> [Openmp-dev] Intel OpenMP Runtime & LLVM [kmp_tasking.c]: Problem to access SHARED VARIABLE DATA LOCATION</span><span lang="RU"><u></u><u></u></span></p>
<div>
<div>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="RU">Dear concern, <u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">Please consider the source code(openmp c code) snippet as below: <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">--- code snippet ---<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">int a1, b1, c1, N;<u></u><u></u></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">Initially address of a1:= 0x7fff9bd58304 <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">omp_set_num_threads(2);<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">            #pragma omp parallel<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">            {<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">                        #pragma omp single<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">                        {<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">                                   // task one: a1=b1+c1;<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">                                   #pragma omp task shared(a1) firstprivate(b1,c1)<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">                                   {<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">                                               a1 = a1 + b1 + c1;<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">                                   }<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">                 }<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">         }<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">           
<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">In the above openMP code task construct contains shared variable (a1), I AM INTERESTED TO FIND THE SHARED VARIABLE OF TASK DATA IN RUNTIME TASK ALLOCATION.         
<u></u><u></u></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">I am looking into the source code of Intel OpenMP Runtime, my openmp code is compiled with LLVM. In the LLVM IR, @__kmpc_omp_task_alloc( ...) calls runtime function kmp_task_alloc(),
 source code is here: under the <src> directory, Kmp_tasking.c  <u></u><u></u></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">I am trying to access the "shared variable data location for a task" which is as below: <u></u><u></u></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span lang="RU">kmp_task_t *<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">__kmp_task_alloc(...){<u></u><u></u></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">kmp_task_t *task;<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">kmp_taskdata_t *taskdata;<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">// Calculate shared structure offset including padding after kmp_task_t struct<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">    // to align pointers in shared struct<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">    shareds_offset = sizeof( kmp_taskdata_t ) + sizeof_kmp_task_t;<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">    shareds_offset = __kmp_round_up_to_val( shareds_offset, sizeof( void * ));<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">// Avoid double allocation here by combining shareds with taskdata<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">    #if USE_FAST_MEMORY<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">    taskdata = (kmp_taskdata_t *) __kmp_fast_allocate( thread, shareds_offset + sizeof_shareds );<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">    #else /* ! USE_FAST_MEMORY */<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">    taskdata = (kmp_taskdata_t *) __kmp_thread_malloc( thread, shareds_offset + sizeof_shareds );<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">    #endif /* USE_FAST_MEMORY */<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">    <u></u><u></u></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span lang="RU">task                      = KMP_TASKDATA_TO_TASK(taskdata);<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span lang="RU">if (sizeof_shareds > 0) {<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">        // Avoid double allocation here by combining shareds with taskdata<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">        task->shareds         = & ((char *) taskdata)[ shareds_offset ];<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">printf("task->shareds address original:= %p  address of pointer it points to := %p\n", & ((char *) taskdata)[ shareds_offset ], *task->shareds);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="RU">                       
<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">            }<u></u><u></u></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span lang="RU">}<u></u><u></u></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">here, <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">typedef struct kmp_task {                   /* GEH: Shouldn't this be aligned somehow? */<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">    void *              shareds;            /**< pointer to block of pointers to shared vars   */<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">}<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">But, task->shareds         = & ((char *) taskdata)[ shareds_offset ]; which is a pointer to block of pointers to shared variables, if I print the shared variable
 pointing address(which should be the address of a1:= 0x7fff9bd58304) <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">IT PRINTS DIFFERENT ADDRESS: <0x1fe0ef0><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">NEED TO GET THE ADDRESS OF TASK'S SHARED VARIABLE ADDRESS FROM RUNTIME.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="RU">appreciate your comment and help.  Thanking you.<u></u><u></u></span></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><span lang="RU" style="font-size:10.0pt;color:#cccccc">------------------------</span><span lang="RU"><u></u><u></u></span></p>
</div>
<p class="MsoNormal"><span lang="RU" style="font-size:10.0pt;color:#999999">RaJu, Rezaul Karim<br>
Graduate Student (PhD) | Computer Science | University of Houston</span><span lang="RU"><u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="RU" style="font-size:10.0pt;color:#999999">Research in High Performance Computing Tools  </span><span lang="RU"><u></u><u></u></span></p>
<div>
<div>
<p class="MsoNormal"><span lang="RU" style="font-size:10.0pt;color:#999999">Houston, Texas-77004</span><span lang="RU"><u></u><u></u></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><span lang="RU"><br>
--------------------------------------------------------------------<br>
Joint Stock Company Intel A/O<br>
Registered legal address: Krylatsky Hills Business Park, <br>
17 Krylatskaya Str., Bldg 4, Moscow 121614, <br>
Russian Federation<u></u><u></u></span></p>
<p><span lang="RU">This e-mail and any attachments may contain confidential material for<br>
the sole use of the intended recipient(s). Any review or distribution<br>
by others is strictly prohibited. If you are not the intended<br>
recipient, please contact the sender and delete all copies.<u></u><u></u></span></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal">-- <u></u><u></u></p>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#cccccc">------------------------</span><u></u><u></u></p>
</div>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#999999">RaJu, Rezaul Karim<br>
Graduate Student (PhD) | Computer Science | University of Houston</span><u></u><u></u></p>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#999999">Research in High Performance Computing Tools  </span><u></u><u></u></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#999999">Houston, Texas-77004</span><u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div></div></div>
<p>---------------------------------------------------------------------<br>
Intel Corporation (UK) Limited<br>
Registered No. 1134945 (England)<br>
Registered Office: Pipers Way, Swindon SN3 1RJ<br>
VAT No: 860 2173 47</p><span class="">

<p>This e-mail and any attachments may contain confidential material for<br>
the sole use of the intended recipient(s). Any review or distribution<br>
by others is strictly prohibited. If you are not the intended<br>
recipient, please contact the sender and delete all copies.</p></span></div>

</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><font face="times new roman, serif" size="2" color="#cccccc">------------------------</font></div><font face="times new roman, serif" size="2" color="#999999">RaJu, Rezaul Karim<br>Graduate Student (PhD) | Computer Science | University of Houston</font><div><font face="times new roman, serif" size="2" color="#999999">Research in High Performance Computing Tools  </font><div><div><font face="times new roman, serif" size="2" color="#999999">Houston, Texas-77004</font></div></div></div></div></div>
</div>