<html><body><p><font size="2">Hi Lingda, thanks for your comments.</font><br><font size="2">We can allocate the buffer either by allocating it on the stack or calling OpenMP allocate function.</font><br><font size="2">With this solution, we allocate memory only once (no need to resize buffer after push_backs) and we do not need to call the runtime function to put map data to the buffer, compiler generated code can do it.</font><br><font size="2">But anyway, I agree, it would be good to hear some other opinions.</font><br><font size="2">--------------</font><br><font size="2">Best regards,</font><br><font size="2">Alexey Bataev</font><br><br><img width="16" height="16" src="cid:2__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt="Inactive hide details for "Li, Lingda" ---06/28/2019 09:49:09 AM---............................................................"><font size="2" color="#424282">"Li, Lingda" ---06/28/2019 09:49:09 AM---...............................................................................................................................</font><br><br><font size="2" color="#5F5F5F">From: </font><font size="2">"Li, Lingda" <lli@bnl.gov></font><br><font size="2" color="#5F5F5F">To: </font><font size="2">Alexey Bataev <Alexey.Bataev@ibm.com></font><br><font size="2" color="#5F5F5F">Cc: </font><font size="2">Alexandre Eichenberger <alexe@us.ibm.com>, "Chapman, Barbara (Contact)" <barbara.chapman@stonybrook.edu>, Kevin K O'Brien <caomhin@us.ibm.com>, "Carlo Bertolli" <cbertol@us.ibm.com>, Deepak Eachempati <deachempat@cray.com>, "Denny, Joel E." <dennyje@ornl.gov>, David Oehmke <doehmke@cray.com>, "Ettore Tiotto" <etiotto@ca.ibm.com>, "fraggamuffin@gmail.com" <fraggamuffin@gmail.com>, "Rokos, Georgios" <georgios.rokos@intel.com>, Gheorghe-Teod Bercea <Gheorghe-Teod.Bercea@ibm.com>, "gregory.rodgers@amd.com" <gregory.rodgers@amd.com>, Hal Finkel <hfinkel@anl.gov>, "Sharif, Hashim" <hsharif3@illinois.edu>, "Cownie, James H" <james.h.cownie@intel.com>, "Sjodin, Jan" <Jan.Sjodin@amd.com>, "jbeyer@nvidia.com" <jbeyer@nvidia.com>, "Doerfert, Johannes Rudolf" <jdoerfert@anl.gov>, "Jones, Jeff C" <jeff.c.jones@intel.com>, "josem@udel.edu" <josem@udel.edu>, "Robichaux, Joseph" <joseph.robichaux@intel.com>, Jeff Heath <jrheath@ca.ibm.com>, "khaldi.dounia@gmail.com" <khaldi.dounia@gmail.com>, Kelvin Li <kli@ca.ibm.com>, "Bobrovsky, Konstantin S" <konstantin.s.bobrovsky@intel.com>, "Kotsifakou, Maria" <kotsifa2@illinois.edu>, "lopezmg@ornl.org" <lopezmg@ornl.org>, "Lopez, Matthew Graham" <lopezmg@ornl.gov>, "Menard, Lorri" <lorri.menard@intel.com>, Martin Kong <martin.richard.kong@gmail.com>, Sarah McNamara <mcnamara@ca.ibm.com>, "Rice, Michael P" <michael.p.rice@intel.com>, "Matt Martineau" <m.martineau@bristol.ac.uk>, "oscar@ornl.gov" <oscar@ornl.gov>, Jeeva Paudel <pjeeva01@ca.ibm.com>, "Rao, Premanand M" <premanand.m.rao@intel.com>, "Krishnaiyer, Rakesh" <rakesh.krishnaiyer@intel.com>, "Narayanaswamy, Ravi" <ravi.narayanaswamy@intel.com>, "Monteleone, Robert" <robert.monteleone@intel.com>, "Lieberman, Ron" <Ron.Lieberman@amd.com>, Samuel Antao <Samuel.Antao@ibm.com>, Jeffrey Sandoval <sandoval@cray.com>, Sunita Chandrasekaran <schandra@udel.edu>, "sergey.y.ostanevich@gmail.com" <sergey.y.ostanevich@gmail.com>, Sergio Pino Gallardo <sergiop@udel.edu>, "Dmitriev, Serguei N" <serguei.n.dmitriev@intel.com>, "Chan, SiuChi" <siuchi.chan@amd.com>, Sunil Shrestha <sshrestha@cray.com>, "Wilmarth, Terry L" <terry.l.wilmarth@intel.com>, Tianyi Zhang <tzhan18@lsu.edu>, "vadve@illinois.edu" <vadve@illinois.edu>, Wang Chen <wdchen@ca.ibm.com>, Wael Yehia <wyehia@ca.ibm.com>, "Tian, Xinmin" <xinmin.tian@intel.com>, "Li, Lingda (Contact)" <lildmh@gmail.com></font><br><font size="2" color="#5F5F5F">Date: </font><font size="2">06/28/2019 09:49 AM</font><br><font size="2" color="#5F5F5F">Subject: </font><font size="2">[EXTERNAL] Re: Re: Re: RE: Comparison of 2 schemes to implement OpenMP 5.0 declare mapper codegen</font><br><hr width="100%" size="2" align="left" noshade style="color:#8091A5; "><br><br><br><font face="Arial">I don't think we can have the buffer allocated within the mapper function. It has to be done in the runtime, because of nested mappers.</font><br><font face="Arial">First, all mapper functions are born in the same way. We cannot make the outer most mapper function allocate memory, whether the inner one doesn't and has to use what is allocated by the outer most mapper function.</font><br><font face="Arial">I suppose we still need to allocate memory in the runtime, so the runtime can pass the pointer and size to the mapper function, and the outer mapper function can then pass them into inner ones.</font><br><font face="Arial">Again, this is just like the current implementation, except that we don't use vecter::push_back(), instead we use something like a manual implementation of vector::push_back() (because we need to use the pointer and the current index)</font><br><br><font face="Arial">I believe the key question here is whether it is true that (the overhead of push_back() > the overhead of precalculating the total number + the memory allocation overhead + directly memory write). This will decide whether this change is necessary. Any opinions?</font><br><br><font face="Arial">Thanks,</font><br><font face="Arial">Lingda Li</font><br><hr width="100%" size="2" align="left"><br><b>From:</b> Alexey Bataev <Alexey.Bataev@ibm.com><b><br>Sent:</b> Thursday, June 27, 2019 5:05 PM<b><br>To:</b> Li, Lingda<b><br>Cc:</b> Alexandre Eichenberger; Chapman, Barbara (Contact); Kevin K O'Brien; Carlo Bertolli; Deepak Eachempati; Denny, Joel E.; David Oehmke; Ettore Tiotto; fraggamuffin@gmail.com; Rokos, Georgios; Gheorghe-Teod Bercea; gregory.rodgers@amd.com; Hal Finkel; Sharif, Hashim; Cownie, James H; Sjodin, Jan; jbeyer@nvidia.com; Doerfert, Johannes Rudolf; Jones, Jeff C; josem@udel.edu; Robichaux, Joseph; Jeff Heath; khaldi.dounia@gmail.com; Kelvin Li; Bobrovsky, Konstantin S; Kotsifakou, Maria; lopezmg@ornl.org; Lopez, Matthew Graham; Menard, Lorri; Martin Kong; Sarah McNamara; Rice, Michael P; Matt Martineau; oscar@ornl.gov; Jeeva Paudel; Rao, Premanand M; Krishnaiyer, Rakesh; Narayanaswamy, Ravi; Monteleone, Robert; Lieberman, Ron; Samuel Antao; Jeffrey Sandoval; Sunita Chandrasekaran; sergey.y.ostanevich@gmail.com; Sergio Pino Gallardo; Dmitriev, Serguei N; Chan, SiuChi; Sunil Shrestha; Wilmarth, Terry L; Tianyi Zhang; vadve@illinois.edu; Wang Chen; Wael Yehia; Tian, Xinmin<b><br>Subject:</b> Re: Re: Re: RE: Comparison of 2 schemes to implement OpenMP 5.0 declare mapper codegen <br> <br>Yes, we need 2 functions, but thw first one can be optimized very effectively. After the optimizations and inlining it will end up with just return s1+s2+s3... I think, inost cases those sizes will be constant, since the mapper maps constant number of elements. And, thus, this expression will be optimized to just a constant value. <br>You don't need to pass these functions to runtime. We can call the directly from the compiler.<br>1st call: get number of elements.<br>2nd: allocate the buffer<br>3rd call: call mapper with this preallocated buffer that fills this buffer without any calls of the runtime functions.<br>4th call: call the runtime to pass the buffer to the runtime.<br><br>Best regards, <br>Alexey Bataev<br><br>27 §Ú§ð§ß§ñ 2019 §Ô., §Ó 16:53, Li, Lingda <<a href="mailto:lli@bnl.gov"><u><font color="#0000FF">lli@bnl.gov</font></u></a>> §ß§Ñ§á§Ú§ã§Ñ§Ý(§Ñ):<br>
<ul><ul><font face="Arial">If we precalculate the size, first, it means we need to generate 2 functions for each mapper, rather than 1 now. One for mapping information filling as we have, the other for size calculation (This will not return constant values, because size depends on how many instances we are mapping). Both these 2 functions will need to be passed to the runtime. The runtime will need to precalculate the number of components first, then allocate memory, then call the mapper function to fill it up.</font><br><br><font face="Arial">Compared with the scheme 1, the differences are:</font><br><font face="Arial">1) An extra call to calculate the total number, while scheme 1 does not;</font><br><font face="Arial">2) A preallocated buffer, whose pointer and the current number should be passed to the mapper function, then the mapper function uses them to fill components, while scheme 1 uses push_back() to do the same thing.</font><br><br><font face="Arial">Is there really a benefit doing this? push_back() should be efficient enough compared with directly writing to memory.</font><br><br><font face="Arial">If people here think that, the overhead of push_back() > the overhead of precalculating the total number + the memory allocation overhead + directly memory write, then we can consider this scheme.</font><br><br><font face="Arial">Thanks,</font><br><font face="Arial">Lingda Li</font><br><br><br><hr width="100%" size="2" align="left"><br><b>From:</b> Alexey Bataev <<a href="mailto:Alexey.Bataev@ibm.com"><u><font color="#0000FF">Alexey.Bataev@ibm.com</font></u></a>><b><br>Sent:</b> Thursday, June 27, 2019 4:26 PM<b><br>To:</b> Li, Lingda<b><br>Cc:</b> Alexandre Eichenberger; Chapman, Barbara (Contact); Kevin K O'Brien; Carlo Bertolli; Deepak Eachempati; Denny, Joel E.; David Oehmke; Ettore Tiotto; <a href="mailto:fraggamuffin@gmail.com"><u><font color="#0000FF">fraggamuffin@gmail.com</font></u></a>; Rokos, Georgios; Gheorghe-Teod Bercea; <a href="mailto:gregory.rodgers@amd.com"><u><font color="#0000FF">gregory.rodgers@amd.com</font></u></a>; Hal Finkel; Sharif, Hashim; Cownie, James H; Sjodin, Jan; <a href="mailto:jbeyer@nvidia.com"><u><font color="#0000FF">jbeyer@nvidia.com</font></u></a>; Doerfert, Johannes Rudolf; Jones, Jeff C; <a href="mailto:josem@udel.edu"><u><font color="#0000FF">josem@udel.edu</font></u></a>; Robichaux, Joseph; Jeff Heath; <a href="mailto:khaldi.dounia@gmail.com"><u><font color="#0000FF">khaldi.dounia@gmail.com</font></u></a>; Kelvin Li; Bobrovsky, Konstantin S; Kotsifakou, Maria; <a href="mailto:lopezmg@ornl.org"><u><font color="#0000FF">lopezmg@ornl.org</font></u></a>; Lopez, Matthew Graham; Menard, Lorri; Martin Kong; Sarah McNamara; Rice, Michael P; Matt Martineau; <a href="mailto:oscar@ornl.gov"><u><font color="#0000FF">oscar@ornl.gov</font></u></a>; Jeeva Paudel; Rao, Premanand M; Krishnaiyer, Rakesh; Narayanaswamy, Ravi; Monteleone, Robert; Lieberman, Ron; Samuel Antao; Jeffrey Sandoval; Sunita Chandrasekaran; <a href="mailto:sergey.y.ostanevich@gmail.com"><u><font color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a>; Sergio Pino Gallardo; Dmitriev, Serguei N; Chan, SiuChi; Sunil Shrestha; Wilmarth, Terry L; Tianyi Zhang; <a href="mailto:vadve@illinois.edu"><u><font color="#0000FF">vadve@illinois.edu</font></u></a>; Wang Chen; Wael Yehia; Tian, Xinmin<b><br>Subject:</b> Re: Re: RE: Comparison of 2 schemes to implement OpenMP 5.0 declare mapper codegen <br> <br><font size="2">If the functions are inlined (the ines, intended for size precalculation). They can be optimized out very effectively since in most cases they will return constant values.<br>If we could do this, we won't need vectors and oush_backs, we can use preallocated memory and internal counter.<br>--------------<br>Best regards,<br>Alexey Bataev</font><br><br><graycol.gif><font size="2" color="#424282">"Li, Lingda" ---06/27/2019 04:13:03 PM---Hi Alexey, I think that's why we choose to use variable size storage like std::vector to store the m</font><br><font size="2" color="#5F5F5F"><br>From: </font><font size="2">"Li, Lingda" <</font><a href="mailto:lli@bnl.gov"><u><font size="2" color="#0000FF">lli@bnl.gov</font></u></a><font size="2">></font><font size="2" color="#5F5F5F"><br>To: </font><font size="2">Alexey Bataev <</font><a href="mailto:Alexey.Bataev@ibm.com"><u><font size="2" color="#0000FF">Alexey.Bataev@ibm.com</font></u></a><font size="2">>, Deepak Eachempati <</font><a href="mailto:deachempat@cray.com"><u><font size="2" color="#0000FF">deachempat@cray.com</font></u></a><font size="2">></font><font size="2" color="#5F5F5F"><br>Cc: </font><font size="2">"Narayanaswamy, Ravi" <</font><a href="mailto:ravi.narayanaswamy@intel.com"><u><font size="2" color="#0000FF">ravi.narayanaswamy@intel.com</font></u></a><font size="2">>, "Alexandre Eichenberger" <</font><a href="mailto:alexe@us.ibm.com"><u><font size="2" color="#0000FF">alexe@us.ibm.com</font></u></a><font size="2">>, "Chapman, Barbara (Contact)" <</font><a href="mailto:barbara.chapman@stonybrook.edu"><u><font size="2" color="#0000FF">barbara.chapman@stonybrook.edu</font></u></a><font size="2">>, "Bobrovsky, Konstantin S" <</font><a href="mailto:konstantin.s.bobrovsky@intel.com"><u><font size="2" color="#0000FF">konstantin.s.bobrovsky@intel.com</font></u></a><font size="2">>, Carlo Bertolli <</font><a href="mailto:cbertol@us.ibm.com"><u><font size="2" color="#0000FF">cbertol@us.ibm.com</font></u></a><font size="2">>, "Chan, SiuChi" <</font><a href="mailto:siuchi.chan@amd.com"><u><font size="2" color="#0000FF">siuchi.chan@amd.com</font></u></a><font size="2">>, "Cownie, James H" <</font><a href="mailto:james.h.cownie@intel.com"><u><font size="2" color="#0000FF">james.h.cownie@intel.com</font></u></a><font size="2">>, David Oehmke <</font><a href="mailto:doehmke@cray.com"><u><font size="2" color="#0000FF">doehmke@cray.com</font></u></a><font size="2">>, "Denny, Joel E." <</font><a href="mailto:dennyje@ornl.gov"><u><font size="2" color="#0000FF">dennyje@ornl.gov</font></u></a><font size="2">>, "Dmitriev, Serguei N" <</font><a href="mailto:serguei.n.dmitriev@intel.com"><u><font size="2" color="#0000FF">serguei.n.dmitriev@intel.com</font></u></a><font size="2">>, "Doerfert, Johannes Rudolf" <</font><a href="mailto:jdoerfert@anl.gov"><u><font size="2" color="#0000FF">jdoerfert@anl.gov</font></u></a><font size="2">>, Ettore Tiotto <</font><a href="mailto:etiotto@ca.ibm.com"><u><font size="2" color="#0000FF">etiotto@ca.ibm.com</font></u></a><font size="2">>, "</font><a href="mailto:fraggamuffin@gmail.com"><u><font size="2" color="#0000FF">fraggamuffin@gmail.com</font></u></a><font size="2">" <</font><a href="mailto:fraggamuffin@gmail.com"><u><font size="2" color="#0000FF">fraggamuffin@gmail.com</font></u></a><font size="2">>, Gheorghe-Teod Bercea <</font><a href="mailto:Gheorghe-Teod.Bercea@ibm.com"><u><font size="2" color="#0000FF">Gheorghe-Teod.Bercea@ibm.com</font></u></a><font size="2">>, Hal Finkel <</font><a href="mailto:hfinkel@anl.gov"><u><font size="2" color="#0000FF">hfinkel@anl.gov</font></u></a><font size="2">>, "</font><a href="mailto:jbeyer@nvidia.com"><u><font size="2" color="#0000FF">jbeyer@nvidia.com</font></u></a><font size="2">" <</font><a href="mailto:jbeyer@nvidia.com"><u><font size="2" color="#0000FF">jbeyer@nvidia.com</font></u></a><font size="2">>, Jeeva Paudel <</font><a href="mailto:pjeeva01@ca.ibm.com"><u><font size="2" color="#0000FF">pjeeva01@ca.ibm.com</font></u></a><font size="2">>, Jeff Heath <</font><a href="mailto:jrheath@ca.ibm.com"><u><font size="2" color="#0000FF">jrheath@ca.ibm.com</font></u></a><font size="2">>, Jeffrey Sandoval <</font><a href="mailto:sandoval@cray.com"><u><font size="2" color="#0000FF">sandoval@cray.com</font></u></a><font size="2">>, "Jones, Jeff C" <</font><a href="mailto:jeff.c.jones@intel.com"><u><font size="2" color="#0000FF">jeff.c.jones@intel.com</font></u></a><font size="2">>, "</font><a href="mailto:josem@udel.edu"><u><font size="2" color="#0000FF">josem@udel.edu</font></u></a><font size="2">" <</font><a href="mailto:josem@udel.edu"><u><font size="2" color="#0000FF">josem@udel.edu</font></u></a><font size="2">>, Kelvin Li <</font><a href="mailto:kli@ca.ibm.com"><u><font size="2" color="#0000FF">kli@ca.ibm.com</font></u></a><font size="2">>, "Kevin K O'Brien" <</font><a href="mailto:caomhin@us.ibm.com"><u><font size="2" color="#0000FF">caomhin@us.ibm.com</font></u></a><font size="2">>, "</font><a href="mailto:khaldi.dounia@gmail.com"><u><font size="2" color="#0000FF">khaldi.dounia@gmail.com</font></u></a><font size="2">" <</font><a href="mailto:khaldi.dounia@gmail.com"><u><font size="2" color="#0000FF">khaldi.dounia@gmail.com</font></u></a><font size="2">>, "Kotsifakou, Maria" <</font><a href="mailto:kotsifa2@illinois.edu"><u><font size="2" color="#0000FF">kotsifa2@illinois.edu</font></u></a><font size="2">>, "Krishnaiyer, Rakesh" <</font><a href="mailto:rakesh.krishnaiyer@intel.com"><u><font size="2" color="#0000FF">rakesh.krishnaiyer@intel.com</font></u></a><font size="2">>, "Lieberman, Ron" <</font><a href="mailto:Ron.Lieberman@amd.com"><u><font size="2" color="#0000FF">Ron.Lieberman@amd.com</font></u></a><font size="2">>, "Lopez, Matthew Graham" <</font><a href="mailto:lopezmg@ornl.gov"><u><font size="2" color="#0000FF">lopezmg@ornl.gov</font></u></a><font size="2">>, "</font><a href="mailto:lopezmg@ornl.org"><u><font size="2" color="#0000FF">lopezmg@ornl.org</font></u></a><font size="2">" <</font><a href="mailto:lopezmg@ornl.org"><u><font size="2" color="#0000FF">lopezmg@ornl.org</font></u></a><font size="2">>, Martin Kong <</font><a href="mailto:martin.richard.kong@gmail.com"><u><font size="2" color="#0000FF">martin.richard.kong@gmail.com</font></u></a><font size="2">>, Matt Martineau <</font><a href="mailto:m.martineau@bristol.ac.uk"><u><font size="2" color="#0000FF">m.martineau@bristol.ac.uk</font></u></a><font size="2">>, "Menard, Lorri" <</font><a href="mailto:lorri.menard@intel.com"><u><font size="2" color="#0000FF">lorri.menard@intel.com</font></u></a><font size="2">>, "Monteleone, Robert" <</font><a href="mailto:robert.monteleone@intel.com"><u><font size="2" color="#0000FF">robert.monteleone@intel.com</font></u></a><font size="2">>, "</font><a href="mailto:oscar@ornl.gov"><u><font size="2" color="#0000FF">oscar@ornl.gov</font></u></a><font size="2">" <</font><a href="mailto:oscar@ornl.gov"><u><font size="2" color="#0000FF">oscar@ornl.gov</font></u></a><font size="2">>, "Rao, Premanand M" <</font><a href="mailto:premanand.m.rao@intel.com"><u><font size="2" color="#0000FF">premanand.m.rao@intel.com</font></u></a><font size="2">>, "Rice, Michael P" <</font><a href="mailto:michael.p.rice@intel.com"><u><font size="2" color="#0000FF">michael.p.rice@intel.com</font></u></a><font size="2">>, "Robichaux, Joseph" <</font><a href="mailto:joseph.robichaux@intel.com"><u><font size="2" color="#0000FF">joseph.robichaux@intel.com</font></u></a><font size="2">>, "</font><a href="mailto:gregory.rodgers@amd.com"><u><font size="2" color="#0000FF">gregory.rodgers@amd.com</font></u></a><font size="2">" <</font><a href="mailto:gregory.rodgers@amd.com"><u><font size="2" color="#0000FF">gregory.rodgers@amd.com</font></u></a><font size="2">>, "Rokos, Georgios" <</font><a href="mailto:georgios.rokos@intel.com"><u><font size="2" color="#0000FF">georgios.rokos@intel.com</font></u></a><font size="2">>, Samuel Antao <</font><a href="mailto:Samuel.Antao@ibm.com"><u><font size="2" color="#0000FF">Samuel.Antao@ibm.com</font></u></a><font size="2">>, "Sarah McNamara" <</font><a href="mailto:mcnamara@ca.ibm.com"><u><font size="2" color="#0000FF">mcnamara@ca.ibm.com</font></u></a><font size="2">>, "</font><a href="mailto:sergey.y.ostanevich@gmail.com"><u><font size="2" color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a><font size="2">" <</font><a href="mailto:sergey.y.ostanevich@gmail.com"><u><font size="2" color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a><font size="2">>, Sergio Pino Gallardo <</font><a href="mailto:sergiop@udel.edu"><u><font size="2" color="#0000FF">sergiop@udel.edu</font></u></a><font size="2">>, "Sharif, Hashim" <</font><a href="mailto:hsharif3@illinois.edu"><u><font size="2" color="#0000FF">hsharif3@illinois.edu</font></u></a><font size="2">>, "Sjodin, Jan" <</font><a href="mailto:Jan.Sjodin@amd.com"><u><font size="2" color="#0000FF">Jan.Sjodin@amd.com</font></u></a><font size="2">>, Sunil Shrestha <</font><a href="mailto:sshrestha@cray.com"><u><font size="2" color="#0000FF">sshrestha@cray.com</font></u></a><font size="2">>, Sunita Chandrasekaran <</font><a href="mailto:schandra@udel.edu"><u><font size="2" color="#0000FF">schandra@udel.edu</font></u></a><font size="2">>, "Tian, Xinmin" <</font><a href="mailto:xinmin.tian@intel.com"><u><font size="2" color="#0000FF">xinmin.tian@intel.com</font></u></a><font size="2">>, Tianyi Zhang <</font><a href="mailto:tzhan18@lsu.edu"><u><font size="2" color="#0000FF">tzhan18@lsu.edu</font></u></a><font size="2">>, "</font><a href="mailto:vadve@illinois.edu"><u><font size="2" color="#0000FF">vadve@illinois.edu</font></u></a><font size="2">" <</font><a href="mailto:vadve@illinois.edu"><u><font size="2" color="#0000FF">vadve@illinois.edu</font></u></a><font size="2">>, Wael Yehia <</font><a href="mailto:wyehia@ca.ibm.com"><u><font size="2" color="#0000FF">wyehia@ca.ibm.com</font></u></a><font size="2">>, Wang Chen <</font><a href="mailto:wdchen@ca.ibm.com"><u><font size="2" color="#0000FF">wdchen@ca.ibm.com</font></u></a><font size="2">>, "Wilmarth, Terry L" <</font><a href="mailto:terry.l.wilmarth@intel.com"><u><font size="2" color="#0000FF">terry.l.wilmarth@intel.com</font></u></a><font size="2">></font><font size="2" color="#5F5F5F"><br>Date: </font><font size="2">06/27/2019 04:13 PM</font><font size="2" color="#5F5F5F"><br>Subject: </font><font size="2">[EXTERNAL] Re: RE: Comparison of 2 schemes to implement OpenMP 5.0 declare mapper codegen</font><p><hr width="100%" size="2" align="left" noshade><br><br><font face="Arial"><br>Hi Alexey,</font><br><font face="Arial"><br>I think that's why we choose to use variable size storage like std::vector to store the mapping information at the first place, right? It'll be costly to precalculate the total number of components, especially in the presence of nested mappers. Besides, a runtime function call is just a std::vector::push, so I think it's okay to have multiple function calls.</font><br><font face="Arial"><br>Thanks,<br>Lingda Li</font><br><hr width="100%" size="2" align="left"><b><br>From:</b> Alexey Bataev <<a href="mailto:Alexey.Bataev@ibm.com"><u><font color="#0000FF">Alexey.Bataev@ibm.com</font></u></a>><b><br>Sent:</b> Thursday, June 27, 2019 3:52 PM<b><br>To:</b> Deepak Eachempati<b><br>Cc:</b> Li, Lingda; Narayanaswamy, Ravi; Alexandre Eichenberger; Chapman, Barbara (Contact); Bobrovsky, Konstantin S; Carlo Bertolli; Chan, SiuChi; Cownie, James H; David Oehmke; Denny, Joel E.; Dmitriev, Serguei N; Doerfert, Johannes Rudolf; Ettore Tiotto; <a href="mailto:fraggamuffin@gmail.com"><u><font color="#0000FF">fraggamuffin@gmail.com</font></u></a>; Gheorghe-Teod Bercea; Hal Finkel; <a href="mailto:jbeyer@nvidia.com"><u><font color="#0000FF">jbeyer@nvidia.com</font></u></a>; Jeeva Paudel; Jeff Heath; Jeffrey Sandoval; Jones, Jeff C; <a href="mailto:josem@udel.edu"><u><font color="#0000FF">josem@udel.edu</font></u></a>; Kelvin Li; Kevin K O'Brien; <a href="mailto:khaldi.dounia@gmail.com"><u><font color="#0000FF">khaldi.dounia@gmail.com</font></u></a>; Kotsifakou, Maria; Krishnaiyer, Rakesh; Lieberman, Ron; Lopez, Matthew Graham; <a href="mailto:lopezmg@ornl.org"><u><font color="#0000FF">lopezmg@ornl.org</font></u></a>; Martin Kong; Matt Martineau; Menard, Lorri; Monteleone, Robert; <a href="mailto:oscar@ornl.gov"><u><font color="#0000FF">oscar@ornl.gov</font></u></a>; Rao, Premanand M; Rice, Michael P; Robichaux, Joseph; <a href="mailto:gregory.rodgers@amd.com"><u><font color="#0000FF">gregory.rodgers@amd.com</font></u></a>; Rokos, Georgios; Samuel Antao; Sarah McNamara; <a href="mailto:sergey.y.ostanevich@gmail.com"><u><font color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a>; Sergio Pino Gallardo; Sharif, Hashim; Sjodin, Jan; Sunil Shrestha; Sunita Chandrasekaran; Tian, Xinmin; Tianyi Zhang; <a href="mailto:vadve@illinois.edu"><u><font color="#0000FF">vadve@illinois.edu</font></u></a>; Wael Yehia; Wang Chen; Wilmarth, Terry L<b><br>Subject:</b> Re: RE: Comparison of 2 schemes to implement OpenMP 5.0 declare mapper codegen <br><br>Lingda, can we in scheme 1 precalculate the total number of components, allocate memory for these precalculate number of elements, then fill it with mappers and only after that call the runtime function (only once!) to transfer the mappings to the runtime? <br><br>Best regards, <br>Alexey Bataev<br><br>27 §Ú§ð§ß§ñ 2019 §Ô., §Ó 15:44, Deepak Eachempati <<a href="mailto:deachempat@cray.com"><u><font color="#0000FF">deachempat@cray.com</font></u></a>> §ß§Ñ§á§Ú§ã§Ñ§Ý(§Ñ):
<ul><ul><ul><ul>Got it. Thanks.<br><br>-- Deepak<br><b><br>From:</b> Li, Lingda [<a href="mailto:lli@bnl.gov"><u><font color="#0000FF">mailto:lli@bnl.gov</font></u></a>] <b><br>Sent:</b> Thursday, June 27, 2019 2:41 PM<b><br>To:</b> Deepak Eachempati <<a href="mailto:deachempat@cray.com"><u><font color="#0000FF">deachempat@cray.com</font></u></a>>; Narayanaswamy, Ravi <<a href="mailto:ravi.narayanaswamy@intel.com"><u><font color="#0000FF">ravi.narayanaswamy@intel.com</font></u></a>>; 'Alexandre Eichenberger' <<a href="mailto:alexe@us.ibm.com"><u><font color="#0000FF">alexe@us.ibm.com</font></u></a>>; 'Alexey Bataev' <<a href="mailto:Alexey.Bataev@ibm.com"><u><font color="#0000FF">Alexey.Bataev@ibm.com</font></u></a>>; Chapman, Barbara (Contact) <<a href="mailto:barbara.chapman@stonybrook.edu"><u><font color="#0000FF">barbara.chapman@stonybrook.edu</font></u></a>>; Bobrovsky, Konstantin S <<a href="mailto:konstantin.s.bobrovsky@intel.com"><u><font color="#0000FF">konstantin.s.bobrovsky@intel.com</font></u></a>>; 'Carlo Bertolli' <<a href="mailto:cbertol@us.ibm.com"><u><font color="#0000FF">cbertol@us.ibm.com</font></u></a>>; 'Chan, SiuChi' <<a href="mailto:siuchi.chan@amd.com"><u><font color="#0000FF">siuchi.chan@amd.com</font></u></a>>; Cownie, James H <<a href="mailto:james.h.cownie@intel.com"><u><font color="#0000FF">james.h.cownie@intel.com</font></u></a>>; David Oehmke <<a href="mailto:doehmke@cray.com"><u><font color="#0000FF">doehmke@cray.com</font></u></a>>; 'Denny, Joel E.' <<a href="mailto:dennyje@ornl.gov"><u><font color="#0000FF">dennyje@ornl.gov</font></u></a>>; Dmitriev, Serguei N <<a href="mailto:serguei.n.dmitriev@intel.com"><u><font color="#0000FF">serguei.n.dmitriev@intel.com</font></u></a>>; Doerfert, Johannes Rudolf <<a href="mailto:jdoerfert@anl.gov"><u><font color="#0000FF">jdoerfert@anl.gov</font></u></a>>; 'Ettore Tiotto' <<a href="mailto:etiotto@ca.ibm.com"><u><font color="#0000FF">etiotto@ca.ibm.com</font></u></a>>; '<a href="mailto:fraggamuffin@gmail.com"><u><font color="#0000FF">fraggamuffin@gmail.com</font></u></a>' <<a href="mailto:fraggamuffin@gmail.com"><u><font color="#0000FF">fraggamuffin@gmail.com</font></u></a>>; 'Gheorghe-Teod Bercea' <<a href="mailto:Gheorghe-Teod.Bercea@ibm.com"><u><font color="#0000FF">Gheorghe-Teod.Bercea@ibm.com</font></u></a>>; Hal Finkel <<a href="mailto:hfinkel@anl.gov"><u><font color="#0000FF">hfinkel@anl.gov</font></u></a>>; '<a href="mailto:jbeyer@nvidia.com"><u><font color="#0000FF">jbeyer@nvidia.com</font></u></a>' <<a href="mailto:jbeyer@nvidia.com"><u><font color="#0000FF">jbeyer@nvidia.com</font></u></a>>; 'Jeeva Paudel' <<a href="mailto:pjeeva01@ca.ibm.com"><u><font color="#0000FF">pjeeva01@ca.ibm.com</font></u></a>>; 'Jeff Heath' <<a href="mailto:jrheath@ca.ibm.com"><u><font color="#0000FF">jrheath@ca.ibm.com</font></u></a>>; Jeffrey Sandoval <<a href="mailto:sandoval@cray.com"><u><font color="#0000FF">sandoval@cray.com</font></u></a>>; Jones, Jeff C <<a href="mailto:jeff.c.jones@intel.com"><u><font color="#0000FF">jeff.c.jones@intel.com</font></u></a>>; '<a href="mailto:josem@udel.edu"><u><font color="#0000FF">josem@udel.edu</font></u></a>' <<a href="mailto:josem@udel.edu"><u><font color="#0000FF">josem@udel.edu</font></u></a>>; 'Kelvin Li' <<a href="mailto:kli@ca.ibm.com"><u><font color="#0000FF">kli@ca.ibm.com</font></u></a>>; 'Kevin K O'Brien' <<a href="mailto:caomhin@us.ibm.com"><u><font color="#0000FF">caomhin@us.ibm.com</font></u></a>>; '<a href="mailto:khaldi.dounia@gmail.com"><u><font color="#0000FF">khaldi.dounia@gmail.com</font></u></a>' <<a href="mailto:khaldi.dounia@gmail.com"><u><font color="#0000FF">khaldi.dounia@gmail.com</font></u></a>>; 'Kotsifakou, Maria' <<a href="mailto:kotsifa2@illinois.edu"><u><font color="#0000FF">kotsifa2@illinois.edu</font></u></a>>; Krishnaiyer, Rakesh <<a href="mailto:rakesh.krishnaiyer@intel.com"><u><font color="#0000FF">rakesh.krishnaiyer@intel.com</font></u></a>>; Lieberman, Ron <<a href="mailto:Ron.Lieberman@amd.com"><u><font color="#0000FF">Ron.Lieberman@amd.com</font></u></a>>; 'Lopez, Matthew Graham' <<a href="mailto:lopezmg@ornl.gov"><u><font color="#0000FF">lopezmg@ornl.gov</font></u></a>>; '<a href="mailto:lopezmg@ornl.org"><u><font color="#0000FF">lopezmg@ornl.org</font></u></a>' <<a href="mailto:lopezmg@ornl.org"><u><font color="#0000FF">lopezmg@ornl.org</font></u></a>>; 'Martin Kong' <<a href="mailto:martin.richard.kong@gmail.com"><u><font color="#0000FF">martin.richard.kong@gmail.com</font></u></a>>; 'Matt Martineau' <<a href="mailto:m.martineau@bristol.ac.uk"><u><font color="#0000FF">m.martineau@bristol.ac.uk</font></u></a>>; Menard, Lorri <<a href="mailto:lorri.menard@intel.com"><u><font color="#0000FF">lorri.menard@intel.com</font></u></a>>; Monteleone, Robert <<a href="mailto:robert.monteleone@intel.com"><u><font color="#0000FF">robert.monteleone@intel.com</font></u></a>>; <a href="mailto:oscar@ornl.gov"><u><font color="#0000FF">oscar@ornl.gov</font></u></a>; Rao, Premanand M <<a href="mailto:premanand.m.rao@intel.com"><u><font color="#0000FF">premanand.m.rao@intel.com</font></u></a>>; Rice, Michael P <<a href="mailto:michael.p.rice@intel.com"><u><font color="#0000FF">michael.p.rice@intel.com</font></u></a>>; Robichaux, Joseph <<a href="mailto:joseph.robichaux@intel.com"><u><font color="#0000FF">joseph.robichaux@intel.com</font></u></a>>; <a href="mailto:gregory.rodgers@amd.com"><u><font color="#0000FF">gregory.rodgers@amd.com</font></u></a>; Rokos, Georgios <<a href="mailto:georgios.rokos@intel.com"><u><font color="#0000FF">georgios.rokos@intel.com</font></u></a>>; '<a href="mailto:samuel.antao@ibm.com"><u><font color="#0000FF">samuel.antao@ibm.com</font></u></a>' <<a href="mailto:samuel.antao@ibm.com"><u><font color="#0000FF">samuel.antao@ibm.com</font></u></a>>; 'Sarah McNamara' <<a href="mailto:mcnamara@ca.ibm.com"><u><font color="#0000FF">mcnamara@ca.ibm.com</font></u></a>>; '<a href="mailto:sergey.y.ostanevich@gmail.com"><u><font color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a>' <<a href="mailto:sergey.y.ostanevich@gmail.com"><u><font color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a>>; 'Sergio Pino Gallardo' <<a href="mailto:sergiop@udel.edu"><u><font color="#0000FF">sergiop@udel.edu</font></u></a>>; 'Sharif, Hashim' <<a href="mailto:hsharif3@illinois.edu"><u><font color="#0000FF">hsharif3@illinois.edu</font></u></a>>; Sjodin, Jan <<a href="mailto:Jan.Sjodin@amd.com"><u><font color="#0000FF">Jan.Sjodin@amd.com</font></u></a>>; Sunil Shrestha <<a href="mailto:sshrestha@cray.com"><u><font color="#0000FF">sshrestha@cray.com</font></u></a>>; 'Sunita Chandrasekaran' <<a href="mailto:schandra@udel.edu"><u><font color="#0000FF">schandra@udel.edu</font></u></a>>; Tian, Xinmin <<a href="mailto:xinmin.tian@intel.com"><u><font color="#0000FF">xinmin.tian@intel.com</font></u></a>>; Tianyi Zhang <<a href="mailto:tzhan18@lsu.edu"><u><font color="#0000FF">tzhan18@lsu.edu</font></u></a>>; '<a href="mailto:vadve@illinois.edu"><u><font color="#0000FF">vadve@illinois.edu</font></u></a>' <<a href="mailto:vadve@illinois.edu"><u><font color="#0000FF">vadve@illinois.edu</font></u></a>>; 'Wael Yehia' <<a href="mailto:wyehia@ca.ibm.com"><u><font color="#0000FF">wyehia@ca.ibm.com</font></u></a>>; 'Wang Chen' <<a href="mailto:wdchen@ca.ibm.com"><u><font color="#0000FF">wdchen@ca.ibm.com</font></u></a>>; Wilmarth, Terry L <<a href="mailto:terry.l.wilmarth@intel.com"><u><font color="#0000FF">terry.l.wilmarth@intel.com</font></u></a>><b><br>Subject:</b> Re: Comparison of 2 schemes to implement OpenMP 5.0 declare mapper codegen<br><br>In the current scheme, all mappings within a mapper function is done atomically by one thread. In the mapper function of the example in the original email, <push> will just push the mapping information into an internal data structure. Once all mapping information is available, the runtime will do the real mapping together. For your example, the behavior is the same as the code below:<br><font color="#201F1E"><br>...<br>#pragma omp parallel num_threads(2)<br>{<br>if (omp_get_thread_num() == 0) {<br>#pragma omp target map(s.x, s.p[0:s.x])<br>{<br>for (int i = 0; i < s.x; i++) s.p[i] = i;<br>}<br>} else {<br>#pragma omp target map(other_data)<br>{<br>// work on other_data<br>}<br>}<br>...</font> <div align="center"><hr width="100%" size="2" align="center"></div><b>From:</b> Deepak Eachempati <<a href="mailto:deachempat@cray.com"><u><font color="#0000FF">deachempat@cray.com</font></u></a>><b><br>Sent:</b> Thursday, June 27, 2019 3:34 PM<b><br>To:</b> Li, Lingda; Narayanaswamy, Ravi; 'Alexandre Eichenberger'; 'Alexey Bataev'; Chapman, Barbara (Contact); Bobrovsky, Konstantin S; 'Carlo Bertolli'; 'Chan, SiuChi'; Cownie, James H; David Oehmke; 'Denny, Joel E.'; Dmitriev, Serguei N; Doerfert, Johannes Rudolf ; 'Ettore Tiotto'; '<a href="mailto:fraggamuffin@gmail.com"><u><font color="#0000FF">fraggamuffin@gmail.com</font></u></a>'; 'Gheorghe-Teod Bercea'; Hal Finkel; '<a href="mailto:jbeyer@nvidia.com"><u><font color="#0000FF">jbeyer@nvidia.com</font></u></a>'; 'Jeeva Paudel'; 'Jeff Heath'; Jeffrey Sandoval; Jones, Jeff C; '<a href="mailto:josem@udel.edu"><u><font color="#0000FF">josem@udel.edu</font></u></a>'; 'Kelvin Li'; 'Kevin K O'Brien'; '<a href="mailto:khaldi.dounia@gmail.com"><u><font color="#0000FF">khaldi.dounia@gmail.com</font></u></a>'; 'Kotsifakou, Maria'; Krishnaiyer, Rakesh; Lieberman, Ron ; 'Lopez, Matthew Graham'; '<a href="mailto:lopezmg@ornl.org"><u><font color="#0000FF">lopezmg@ornl.org</font></u></a>'; 'Martin Kong'; 'Matt Martineau'; Menard, Lorri; Monteleone, Robert; <a href="mailto:oscar@ornl.gov"><u><font color="#0000FF">oscar@ornl.gov</font></u></a>; Rao, Premanand M; Rice, Michael P; Robichaux, Joseph; <a href="mailto:gregory.rodgers@amd.com"><u><font color="#0000FF">gregory.rodgers@amd.com</font></u></a>; Rokos, Georgios; '<a href="mailto:samuel.antao@ibm.com"><u><font color="#0000FF">samuel.antao@ibm.com</font></u></a>'; 'Sarah McNamara'; '<a href="mailto:sergey.y.ostanevich@gmail.com"><u><font color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a>'; 'Sergio Pino Gallardo'; 'Sharif, Hashim'; Sjodin, Jan ; Sunil Shrestha; 'Sunita Chandrasekaran'; Tian, Xinmin; Tianyi Zhang; '<a href="mailto:vadve@illinois.edu"><u><font color="#0000FF">vadve@illinois.edu</font></u></a>'; 'Wael Yehia'; 'Wang Chen'; Wilmarth, Terry L<b><br>Subject:</b> RE: Comparison of 2 schemes to implement OpenMP 5.0 declare mapper codegen<br><br>I was referring to something like this, where another thread is not trying to map the same data:<br><br>#pragma omp declare mapper(S s) map(s.x) map(s.p[0:s.x])<br>S s;<br>...<br>#pragma omp parallel num_threads(2)<br>{<br>if (omp_get_thread_num() == 0) {<br>#pragma omp target map(s)<br>{<br>for (int i = 0; i < s.x; i++) s.p[i] = i;<br>}<br>} else {<br>#pragma omp target map(other_data)<br>{ <br>// work on other_data<br>}<br>}<br>...<br><br>Since I believe you are mapping s.x and s.p as separate map operations, it is possible that another thread could map ¡®other_data¡¯ in between those two maps. If this happens, will your implementation still ensure that s.x and s.p are positioned at the right offsets with respect to the same base address (&s)?<br><br>-- Deepak<br><b><br>From:</b> Li, Lingda [<a href="mailto:lli@bnl.gov"><u><font color="#0000FF">mailto:lli@bnl.gov</font></u></a>] <b><br>Sent:</b> Thursday, June 27, 2019 2:26 PM<b><br>To:</b> Deepak Eachempati <<a href="mailto:deachempat@cray.com"><u><font color="#0000FF">deachempat@cray.com</font></u></a>>; Narayanaswamy, Ravi <<a href="mailto:ravi.narayanaswamy@intel.com"><u><font color="#0000FF">ravi.narayanaswamy@intel.com</font></u></a>>; 'Alexandre Eichenberger' <<a href="mailto:alexe@us.ibm.com"><u><font color="#0000FF">alexe@us.ibm.com</font></u></a>>; 'Alexey Bataev' <<a href="mailto:Alexey.Bataev@ibm.com"><u><font color="#0000FF">Alexey.Bataev@ibm.com</font></u></a>>; Chapman, Barbara (Contact) <<a href="mailto:barbara.chapman@stonybrook.edu"><u><font color="#0000FF">barbara.chapman@stonybrook.edu</font></u></a>>; Bobrovsky, Konstantin S <<a href="mailto:konstantin.s.bobrovsky@intel.com"><u><font color="#0000FF">konstantin.s.bobrovsky@intel.com</font></u></a>>; 'Carlo Bertolli' <<a href="mailto:cbertol@us.ibm.com"><u><font color="#0000FF">cbertol@us.ibm.com</font></u></a>>; 'Chan, SiuChi' <<a href="mailto:siuchi.chan@amd.com"><u><font color="#0000FF">siuchi.chan@amd.com</font></u></a>>; Cownie, James H <<a href="mailto:james.h.cownie@intel.com"><u><font color="#0000FF">james.h.cownie@intel.com</font></u></a>>; David Oehmke <<a href="mailto:doehmke@cray.com"><u><font color="#0000FF">doehmke@cray.com</font></u></a>>; 'Denny, Joel E.' <<a href="mailto:dennyje@ornl.gov"><u><font color="#0000FF">dennyje@ornl.gov</font></u></a>>; Dmitriev, Serguei N <<a href="mailto:serguei.n.dmitriev@intel.com"><u><font color="#0000FF">serguei.n.dmitriev@intel.com</font></u></a>>; Doerfert, Johannes Rudolf <<a href="mailto:jdoerfert@anl.gov"><u><font color="#0000FF">jdoerfert@anl.gov</font></u></a>>; 'Ettore Tiotto' <<a href="mailto:etiotto@ca.ibm.com"><u><font color="#0000FF">etiotto@ca.ibm.com</font></u></a>>; '<a href="mailto:fraggamuffin@gmail.com"><u><font color="#0000FF">fraggamuffin@gmail.com</font></u></a>' <<a href="mailto:fraggamuffin@gmail.com"><u><font color="#0000FF">fraggamuffin@gmail.com</font></u></a>>; 'Gheorghe-Teod Bercea' <<a href="mailto:Gheorghe-Teod.Bercea@ibm.com"><u><font color="#0000FF">Gheorghe-Teod.Bercea@ibm.com</font></u></a>>; Hal Finkel <<a href="mailto:hfinkel@anl.gov"><u><font color="#0000FF">hfinkel@anl.gov</font></u></a>>; '<a href="mailto:jbeyer@nvidia.com"><u><font color="#0000FF">jbeyer@nvidia.com</font></u></a>' <<a href="mailto:jbeyer@nvidia.com"><u><font color="#0000FF">jbeyer@nvidia.com</font></u></a>>; 'Jeeva Paudel' <<a href="mailto:pjeeva01@ca.ibm.com"><u><font color="#0000FF">pjeeva01@ca.ibm.com</font></u></a>>; 'Jeff Heath' <<a href="mailto:jrheath@ca.ibm.com"><u><font color="#0000FF">jrheath@ca.ibm.com</font></u></a>>; Jeffrey Sandoval <<a href="mailto:sandoval@cray.com"><u><font color="#0000FF">sandoval@cray.com</font></u></a>>; Jones, Jeff C <<a href="mailto:jeff.c.jones@intel.com"><u><font color="#0000FF">jeff.c.jones@intel.com</font></u></a>>; '<a href="mailto:josem@udel.edu"><u><font color="#0000FF">josem@udel.edu</font></u></a>' <<a href="mailto:josem@udel.edu"><u><font color="#0000FF">josem@udel.edu</font></u></a>>; 'Kelvin Li' <<a href="mailto:kli@ca.ibm.com"><u><font color="#0000FF">kli@ca.ibm.com</font></u></a>>; 'Kevin K O'Brien' <<a href="mailto:caomhin@us.ibm.com"><u><font color="#0000FF">caomhin@us.ibm.com</font></u></a>>; '<a href="mailto:khaldi.dounia@gmail.com"><u><font color="#0000FF">khaldi.dounia@gmail.com</font></u></a>' <<a href="mailto:khaldi.dounia@gmail.com"><u><font color="#0000FF">khaldi.dounia@gmail.com</font></u></a>>; 'Kotsifakou, Maria' <<a href="mailto:kotsifa2@illinois.edu"><u><font color="#0000FF">kotsifa2@illinois.edu</font></u></a>>; Krishnaiyer, Rakesh <<a href="mailto:rakesh.krishnaiyer@intel.com"><u><font color="#0000FF">rakesh.krishnaiyer@intel.com</font></u></a>>; Lieberman, Ron <<a href="mailto:Ron.Lieberman@amd.com"><u><font color="#0000FF">Ron.Lieberman@amd.com</font></u></a>>; 'Lopez, Matthew Graham' <<a href="mailto:lopezmg@ornl.gov"><u><font color="#0000FF">lopezmg@ornl.gov</font></u></a>>; '<a href="mailto:lopezmg@ornl.org"><u><font color="#0000FF">lopezmg@ornl.org</font></u></a>' <<a href="mailto:lopezmg@ornl.org"><u><font color="#0000FF">lopezmg@ornl.org</font></u></a>>; 'Martin Kong' <<a href="mailto:martin.richard.kong@gmail.com"><u><font color="#0000FF">martin.richard.kong@gmail.com</font></u></a>>; 'Matt Martineau' <<a href="mailto:m.martineau@bristol.ac.uk"><u><font color="#0000FF">m.martineau@bristol.ac.uk</font></u></a>>; Menard, Lorri <<a href="mailto:lorri.menard@intel.com"><u><font color="#0000FF">lorri.menard@intel.com</font></u></a>>; Monteleone, Robert <<a href="mailto:robert.monteleone@intel.com"><u><font color="#0000FF">robert.monteleone@intel.com</font></u></a>>; <a href="mailto:oscar@ornl.gov"><u><font color="#0000FF">oscar@ornl.gov</font></u></a>; Rao, Premanand M <<a href="mailto:premanand.m.rao@intel.com"><u><font color="#0000FF">premanand.m.rao@intel.com</font></u></a>>; Rice, Michael P <<a href="mailto:michael.p.rice@intel.com"><u><font color="#0000FF">michael.p.rice@intel.com</font></u></a>>; Robichaux, Joseph <<a href="mailto:joseph.robichaux@intel.com"><u><font color="#0000FF">joseph.robichaux@intel.com</font></u></a>>; <a href="mailto:gregory.rodgers@amd.com"><u><font color="#0000FF">gregory.rodgers@amd.com</font></u></a>; Rokos, Georgios <<a href="mailto:georgios.rokos@intel.com"><u><font color="#0000FF">georgios.rokos@intel.com</font></u></a>>; '<a href="mailto:samuel.antao@ibm.com"><u><font color="#0000FF">samuel.antao@ibm.com</font></u></a>' <<a href="mailto:samuel.antao@ibm.com"><u><font color="#0000FF">samuel.antao@ibm.com</font></u></a>>; 'Sarah McNamara' <<a href="mailto:mcnamara@ca.ibm.com"><u><font color="#0000FF">mcnamara@ca.ibm.com</font></u></a>>; '<a href="mailto:sergey.y.ostanevich@gmail.com"><u><font color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a>' <<a href="mailto:sergey.y.ostanevich@gmail.com"><u><font color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a>>; 'Sergio Pino Gallardo' <<a href="mailto:sergiop@udel.edu"><u><font color="#0000FF">sergiop@udel.edu</font></u></a>>; 'Sharif, Hashim' <<a href="mailto:hsharif3@illinois.edu"><u><font color="#0000FF">hsharif3@illinois.edu</font></u></a>>; Sjodin, Jan <<a href="mailto:Jan.Sjodin@amd.com"><u><font color="#0000FF">Jan.Sjodin@amd.com</font></u></a>>; Sunil Shrestha <<a href="mailto:sshrestha@cray.com"><u><font color="#0000FF">sshrestha@cray.com</font></u></a>>; 'Sunita Chandrasekaran' <<a href="mailto:schandra@udel.edu"><u><font color="#0000FF">schandra@udel.edu</font></u></a>>; Tian, Xinmin <<a href="mailto:xinmin.tian@intel.com"><u><font color="#0000FF">xinmin.tian@intel.com</font></u></a>>; Tianyi Zhang <<a href="mailto:tzhan18@lsu.edu"><u><font color="#0000FF">tzhan18@lsu.edu</font></u></a>>; '<a href="mailto:vadve@illinois.edu"><u><font color="#0000FF">vadve@illinois.edu</font></u></a>' <<a href="mailto:vadve@illinois.edu"><u><font color="#0000FF">vadve@illinois.edu</font></u></a>>; 'Wael Yehia' <<a href="mailto:wyehia@ca.ibm.com"><u><font color="#0000FF">wyehia@ca.ibm.com</font></u></a>>; 'Wang Chen' <<a href="mailto:wdchen@ca.ibm.com"><u><font color="#0000FF">wdchen@ca.ibm.com</font></u></a>>; Wilmarth, Terry L <<a href="mailto:terry.l.wilmarth@intel.com"><u><font color="#0000FF">terry.l.wilmarth@intel.com</font></u></a>><b><br>Subject:</b> Re: Comparison of 2 schemes to implement OpenMP 5.0 declare mapper codegen<br><br>When 2 threads try to concurrently map the same data, it behaves the same as when 2 threads concurrently map the same data using map clauses, and mappers don't introduce extra considerations here. For instance, both threads use #omp target enter data concurrently.<br><br>When 2 threads concurrently maps the same data, my understanding based on the current code is, it will create 2 copies of the same data, either copy is correctly to use. It may have a problem when both copies are mapped back if not synchronized correctly, but this is a programming issue, not the responsibility of OpenMP.<br><br>Thanks,<br>Lingda Li <div align="center"><hr width="100%" size="2" align="center"></div><b>From:</b> Deepak Eachempati <<a href="mailto:deachempat@cray.com"><u><font color="#0000FF">deachempat@cray.com</font></u></a>><b><br>Sent:</b> Thursday, June 27, 2019 3:17 PM<b><br>To:</b> Li, Lingda; Narayanaswamy, Ravi; 'Alexandre Eichenberger'; 'Alexey Bataev'; Chapman, Barbara (Contact); Bobrovsky, Konstantin S; 'Carlo Bertolli'; 'Chan, SiuChi'; Cownie, James H; David Oehmke; 'Denny, Joel E.'; Dmitriev, Serguei N; Doerfert, Johannes Rudolf ; 'Ettore Tiotto'; '<a href="mailto:fraggamuffin@gmail.com"><u><font color="#0000FF">fraggamuffin@gmail.com</font></u></a>'; 'Gheorghe-Teod Bercea'; Hal Finkel; '<a href="mailto:jbeyer@nvidia.com"><u><font color="#0000FF">jbeyer@nvidia.com</font></u></a>'; 'Jeeva Paudel'; 'Jeff Heath'; Jeffrey Sandoval; Jones, Jeff C; '<a href="mailto:josem@udel.edu"><u><font color="#0000FF">josem@udel.edu</font></u></a>'; 'Kelvin Li'; 'Kevin K O'Brien'; '<a href="mailto:khaldi.dounia@gmail.com"><u><font color="#0000FF">khaldi.dounia@gmail.com</font></u></a>'; 'Kotsifakou, Maria'; Krishnaiyer, Rakesh; Lieberman, Ron ; 'Lopez, Matthew Graham'; '<a href="mailto:lopezmg@ornl.org"><u><font color="#0000FF">lopezmg@ornl.org</font></u></a>'; 'Martin Kong'; 'Matt Martineau'; Menard, Lorri; Monteleone, Robert; <a href="mailto:oscar@ornl.gov"><u><font color="#0000FF">oscar@ornl.gov</font></u></a>; Rao, Premanand M; Rice, Michael P; Robichaux, Joseph; <a href="mailto:gregory.rodgers@amd.com"><u><font color="#0000FF">gregory.rodgers@amd.com</font></u></a>; Rokos, Georgios; '<a href="mailto:samuel.antao@ibm.com"><u><font color="#0000FF">samuel.antao@ibm.com</font></u></a>'; 'Sarah McNamara'; '<a href="mailto:sergey.y.ostanevich@gmail.com"><u><font color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a>'; 'Sergio Pino Gallardo'; 'Sharif, Hashim'; Sjodin, Jan ; Sunil Shrestha; 'Sunita Chandrasekaran'; Tian, Xinmin; Tianyi Zhang; '<a href="mailto:vadve@illinois.edu"><u><font color="#0000FF">vadve@illinois.edu</font></u></a>'; 'Wael Yehia'; 'Wang Chen'; Wilmarth, Terry L<b><br>Subject:</b> RE: Comparison of 2 schemes to implement OpenMP 5.0 declare mapper codegen<br><br>Thanks.<br><br>Is it possible for another thread to be concurrently mapped something else while the maps from the mapper function are taking place? If so, how do you guarantee that the allocation for each component will get you the right addresses in device memory? Sorry if this was covered before and I missed it.<br><br>-- Deepak<br><b><br>From:</b> Li, Lingda [<a href="mailto:lli@bnl.gov"><u><font color="#0000FF">mailto:lli@bnl.gov</font></u></a>] <b><br>Sent:</b> Thursday, June 27, 2019 2:08 PM<b><br>To:</b> Deepak Eachempati <<a href="mailto:deachempat@cray.com"><u><font color="#0000FF">deachempat@cray.com</font></u></a>>; Narayanaswamy, Ravi <<a href="mailto:ravi.narayanaswamy@intel.com"><u><font color="#0000FF">ravi.narayanaswamy@intel.com</font></u></a>>; 'Alexandre Eichenberger' <<a href="mailto:alexe@us.ibm.com"><u><font color="#0000FF">alexe@us.ibm.com</font></u></a>>; 'Alexey Bataev' <<a href="mailto:Alexey.Bataev@ibm.com"><u><font color="#0000FF">Alexey.Bataev@ibm.com</font></u></a>>; Chapman, Barbara (Contact) <<a href="mailto:barbara.chapman@stonybrook.edu"><u><font color="#0000FF">barbara.chapman@stonybrook.edu</font></u></a>>; Bobrovsky, Konstantin S <<a href="mailto:konstantin.s.bobrovsky@intel.com"><u><font color="#0000FF">konstantin.s.bobrovsky@intel.com</font></u></a>>; 'Carlo Bertolli' <<a href="mailto:cbertol@us.ibm.com"><u><font color="#0000FF">cbertol@us.ibm.com</font></u></a>>; 'Chan, SiuChi' <<a href="mailto:siuchi.chan@amd.com"><u><font color="#0000FF">siuchi.chan@amd.com</font></u></a>>; Cownie, James H <<a href="mailto:james.h.cownie@intel.com"><u><font color="#0000FF">james.h.cownie@intel.com</font></u></a>>; David Oehmke <<a href="mailto:doehmke@cray.com"><u><font color="#0000FF">doehmke@cray.com</font></u></a>>; 'Denny, Joel E.' <<a href="mailto:dennyje@ornl.gov"><u><font color="#0000FF">dennyje@ornl.gov</font></u></a>>; Dmitriev, Serguei N <<a href="mailto:serguei.n.dmitriev@intel.com"><u><font color="#0000FF">serguei.n.dmitriev@intel.com</font></u></a>>; Doerfert, Johannes Rudolf <<a href="mailto:jdoerfert@anl.gov"><u><font color="#0000FF">jdoerfert@anl.gov</font></u></a>>; 'Ettore Tiotto' <<a href="mailto:etiotto@ca.ibm.com"><u><font color="#0000FF">etiotto@ca.ibm.com</font></u></a>>; '<a href="mailto:fraggamuffin@gmail.com"><u><font color="#0000FF">fraggamuffin@gmail.com</font></u></a>' <<a href="mailto:fraggamuffin@gmail.com"><u><font color="#0000FF">fraggamuffin@gmail.com</font></u></a>>; 'Gheorghe-Teod Bercea' <<a href="mailto:Gheorghe-Teod.Bercea@ibm.com"><u><font color="#0000FF">Gheorghe-Teod.Bercea@ibm.com</font></u></a>>; Hal Finkel <<a href="mailto:hfinkel@anl.gov"><u><font color="#0000FF">hfinkel@anl.gov</font></u></a>>; '<a href="mailto:jbeyer@nvidia.com"><u><font color="#0000FF">jbeyer@nvidia.com</font></u></a>' <<a href="mailto:jbeyer@nvidia.com"><u><font color="#0000FF">jbeyer@nvidia.com</font></u></a>>; 'Jeeva Paudel' <<a href="mailto:pjeeva01@ca.ibm.com"><u><font color="#0000FF">pjeeva01@ca.ibm.com</font></u></a>>; 'Jeff Heath' <<a href="mailto:jrheath@ca.ibm.com"><u><font color="#0000FF">jrheath@ca.ibm.com</font></u></a>>; Jeffrey Sandoval <<a href="mailto:sandoval@cray.com"><u><font color="#0000FF">sandoval@cray.com</font></u></a>>; Jones, Jeff C <<a href="mailto:jeff.c.jones@intel.com"><u><font color="#0000FF">jeff.c.jones@intel.com</font></u></a>>; '<a href="mailto:josem@udel.edu"><u><font color="#0000FF">josem@udel.edu</font></u></a>' <<a href="mailto:josem@udel.edu"><u><font color="#0000FF">josem@udel.edu</font></u></a>>; 'Kelvin Li' <<a href="mailto:kli@ca.ibm.com"><u><font color="#0000FF">kli@ca.ibm.com</font></u></a>>; 'Kevin K O'Brien' <<a href="mailto:caomhin@us.ibm.com"><u><font color="#0000FF">caomhin@us.ibm.com</font></u></a>>; '<a href="mailto:khaldi.dounia@gmail.com"><u><font color="#0000FF">khaldi.dounia@gmail.com</font></u></a>' <<a href="mailto:khaldi.dounia@gmail.com"><u><font color="#0000FF">khaldi.dounia@gmail.com</font></u></a>>; 'Kotsifakou, Maria' <<a href="mailto:kotsifa2@illinois.edu"><u><font color="#0000FF">kotsifa2@illinois.edu</font></u></a>>; Krishnaiyer, Rakesh <<a href="mailto:rakesh.krishnaiyer@intel.com"><u><font color="#0000FF">rakesh.krishnaiyer@intel.com</font></u></a>>; Lieberman, Ron <<a href="mailto:Ron.Lieberman@amd.com"><u><font color="#0000FF">Ron.Lieberman@amd.com</font></u></a>>; 'Lopez, Matthew Graham' <<a href="mailto:lopezmg@ornl.gov"><u><font color="#0000FF">lopezmg@ornl.gov</font></u></a>>; '<a href="mailto:lopezmg@ornl.org"><u><font color="#0000FF">lopezmg@ornl.org</font></u></a>' <<a href="mailto:lopezmg@ornl.org"><u><font color="#0000FF">lopezmg@ornl.org</font></u></a>>; 'Martin Kong' <<a href="mailto:martin.richard.kong@gmail.com"><u><font color="#0000FF">martin.richard.kong@gmail.com</font></u></a>>; 'Matt Martineau' <<a href="mailto:m.martineau@bristol.ac.uk"><u><font color="#0000FF">m.martineau@bristol.ac.uk</font></u></a>>; Menard, Lorri <<a href="mailto:lorri.menard@intel.com"><u><font color="#0000FF">lorri.menard@intel.com</font></u></a>>; Monteleone, Robert <<a href="mailto:robert.monteleone@intel.com"><u><font color="#0000FF">robert.monteleone@intel.com</font></u></a>>; <a href="mailto:oscar@ornl.gov"><u><font color="#0000FF">oscar@ornl.gov</font></u></a>; Rao, Premanand M <<a href="mailto:premanand.m.rao@intel.com"><u><font color="#0000FF">premanand.m.rao@intel.com</font></u></a>>; Rice, Michael P <<a href="mailto:michael.p.rice@intel.com"><u><font color="#0000FF">michael.p.rice@intel.com</font></u></a>>; Robichaux, Joseph <<a href="mailto:joseph.robichaux@intel.com"><u><font color="#0000FF">joseph.robichaux@intel.com</font></u></a>>; <a href="mailto:gregory.rodgers@amd.com"><u><font color="#0000FF">gregory.rodgers@amd.com</font></u></a>; Rokos, Georgios <<a href="mailto:georgios.rokos@intel.com"><u><font color="#0000FF">georgios.rokos@intel.com</font></u></a>>; '<a href="mailto:samuel.antao@ibm.com"><u><font color="#0000FF">samuel.antao@ibm.com</font></u></a>' <<a href="mailto:samuel.antao@ibm.com"><u><font color="#0000FF">samuel.antao@ibm.com</font></u></a>>; 'Sarah McNamara' <<a href="mailto:mcnamara@ca.ibm.com"><u><font color="#0000FF">mcnamara@ca.ibm.com</font></u></a>>; '<a href="mailto:sergey.y.ostanevich@gmail.com"><u><font color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a>' <<a href="mailto:sergey.y.ostanevich@gmail.com"><u><font color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a>>; 'Sergio Pino Gallardo' <<a href="mailto:sergiop@udel.edu"><u><font color="#0000FF">sergiop@udel.edu</font></u></a>>; 'Sharif, Hashim' <<a href="mailto:hsharif3@illinois.edu"><u><font color="#0000FF">hsharif3@illinois.edu</font></u></a>>; Sjodin, Jan <<a href="mailto:Jan.Sjodin@amd.com"><u><font color="#0000FF">Jan.Sjodin@amd.com</font></u></a>>; Sunil Shrestha <<a href="mailto:sshrestha@cray.com"><u><font color="#0000FF">sshrestha@cray.com</font></u></a>>; 'Sunita Chandrasekaran' <<a href="mailto:schandra@udel.edu"><u><font color="#0000FF">schandra@udel.edu</font></u></a>>; Tian, Xinmin <<a href="mailto:xinmin.tian@intel.com"><u><font color="#0000FF">xinmin.tian@intel.com</font></u></a>>; Tianyi Zhang <<a href="mailto:tzhan18@lsu.edu"><u><font color="#0000FF">tzhan18@lsu.edu</font></u></a>>; '<a href="mailto:vadve@illinois.edu"><u><font color="#0000FF">vadve@illinois.edu</font></u></a>' <<a href="mailto:vadve@illinois.edu"><u><font color="#0000FF">vadve@illinois.edu</font></u></a>>; 'Wael Yehia' <<a href="mailto:wyehia@ca.ibm.com"><u><font color="#0000FF">wyehia@ca.ibm.com</font></u></a>>; 'Wang Chen' <<a href="mailto:wdchen@ca.ibm.com"><u><font color="#0000FF">wdchen@ca.ibm.com</font></u></a>>; Wilmarth, Terry L <<a href="mailto:terry.l.wilmarth@intel.com"><u><font color="#0000FF">terry.l.wilmarth@intel.com</font></u></a>><b><br>Subject:</b> Re: Comparison of 2 schemes to implement OpenMP 5.0 declare mapper codegen<br><br>Hi Deepak,<br><br>Yes, it handles this case. The first part of mapper function (initially allocate space for the whole array) is just an optimization, not required for correctness, as suggested by you in an early discussion.<br><br>In your example, s.x and s.p will be allocated separately (not in a single allocation). But Clang guarantees that their addresses will be correct because s.x and s.p share the same base address, which is &s.<br><br>Thanks,<br>Lingda Li <div align="center"><hr width="100%" size="2" align="center"></div><b>From:</b> Deepak Eachempati <<a href="mailto:deachempat@cray.com"><u><font color="#0000FF">deachempat@cray.com</font></u></a>><b><br>Sent:</b> Thursday, June 27, 2019 2:49 PM<b><br>To:</b> Li, Lingda; Narayanaswamy, Ravi; 'Alexandre Eichenberger'; 'Alexey Bataev'; Chapman, Barbara (Contact); Bobrovsky, Konstantin S; 'Carlo Bertolli'; 'Chan, SiuChi'; Cownie, James H; David Oehmke; 'Denny, Joel E.'; Dmitriev, Serguei N; Doerfert, Johannes Rudolf ; '<a href="mailto:estotzer@ti.com"><u><font color="#0000FF">estotzer@ti.com</font></u></a>'; 'Ettore Tiotto'; '<a href="mailto:fraggamuffin@gmail.com"><u><font color="#0000FF">fraggamuffin@gmail.com</font></u></a>'; 'Gheorghe-Teod Bercea'; Hal Finkel; '<a href="mailto:jbeyer@nvidia.com"><u><font color="#0000FF">jbeyer@nvidia.com</font></u></a>'; 'Jeeva Paudel'; 'Jeff Heath'; Jeffrey Sandoval; Jones, Jeff C; '<a href="mailto:josem@udel.edu"><u><font color="#0000FF">josem@udel.edu</font></u></a>'; 'Kelvin Li'; 'Kevin K O'Brien'; '<a href="mailto:khaldi.dounia@gmail.com"><u><font color="#0000FF">khaldi.dounia@gmail.com</font></u></a>'; 'Kotsifakou, Maria'; Krishnaiyer, Rakesh; Lieberman, Ron ; 'Lopez, Matthew Graham'; '<a href="mailto:lopezmg@ornl.org"><u><font color="#0000FF">lopezmg@ornl.org</font></u></a>'; 'Martin Kong'; 'Matt Martineau'; Menard, Lorri; Monteleone, Robert; <a href="mailto:oscar@ornl.gov"><u><font color="#0000FF">oscar@ornl.gov</font></u></a>; Rao, Premanand M; Rice, Michael P; Robichaux, Joseph; <a href="mailto:gregory.rodgers@amd.com"><u><font color="#0000FF">gregory.rodgers@amd.com</font></u></a>; Rokos, Georgios; '<a href="mailto:samuel.antao@ibm.com"><u><font color="#0000FF">samuel.antao@ibm.com</font></u></a>'; 'Sarah McNamara'; '<a href="mailto:sergey.y.ostanevich@gmail.com"><u><font color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a>'; 'Sergio Pino Gallardo'; 'Sharif, Hashim'; Sjodin, Jan ; Sunil Shrestha; 'Sunita Chandrasekaran'; Tian, Xinmin; Tianyi Zhang; '<a href="mailto:vadve@illinois.edu"><u><font color="#0000FF">vadve@illinois.edu</font></u></a>'; 'Wael Yehia'; 'Wang Chen'; Wilmarth, Terry L<b><br>Subject:</b> RE: Comparison of 2 schemes to implement OpenMP 5.0 declare mapper codegen<br><br>For Scheme 1, it looks like you are doing separate maps for each component when size == 1. It seems like the first and last if statements should have ¡°size >= 1¡± rather than ¡°size > 1¡±.<br><br>If the mapper is declared like this:<br><br>struct S {<br>int x;<br>... // other stuff<br>int *p; <br>};<br><br>#pragma omp declare mapper(S s) map(s.x) map(s.p[0:s.x])<br><br>And you have:<br><br>S s;<br>...<br>#pragma omp target map(s)<br>{<br>for (int i = 0; i < s.x; i++) s.p[i] = i;<br>}<br><br>Since the target construct is just mapping a single structure of type S, there should be one map that takes care of mapping storage for s.x and s.p with a single allocation, and a separate map for the array section s.p[0:s.x], and finally the pointer attachment of s.p to s.p[0:s.x]. Does Scheme 1 handle this?<br><br>-- Deepak<br><br><b><br>From:</b> Li, Lingda [<a href="mailto:lli@bnl.gov"><u><font color="#0000FF">mailto:lli@bnl.gov</font></u></a>] <b><br>Sent:</b> Thursday, June 27, 2019 1:07 PM<b><br>To:</b> Narayanaswamy, Ravi <<a href="mailto:ravi.narayanaswamy@intel.com"><u><font color="#0000FF">ravi.narayanaswamy@intel.com</font></u></a>>; 'Alexandre Eichenberger' <<a href="mailto:alexe@us.ibm.com"><u><font color="#0000FF">alexe@us.ibm.com</font></u></a>>; 'Alexey Bataev' <<a href="mailto:Alexey.Bataev@ibm.com"><u><font color="#0000FF">Alexey.Bataev@ibm.com</font></u></a>>; Chapman, Barbara (Contact) <<a href="mailto:barbara.chapman@stonybrook.edu"><u><font color="#0000FF">barbara.chapman@stonybrook.edu</font></u></a>>; Bobrovsky, Konstantin S <<a href="mailto:konstantin.s.bobrovsky@intel.com"><u><font color="#0000FF">konstantin.s.bobrovsky@intel.com</font></u></a>>; 'Carlo Bertolli' <<a href="mailto:cbertol@us.ibm.com"><u><font color="#0000FF">cbertol@us.ibm.com</font></u></a>>; 'Chan, SiuChi' <<a href="mailto:siuchi.chan@amd.com"><u><font color="#0000FF">siuchi.chan@amd.com</font></u></a>>; Cownie, James H <<a href="mailto:james.h.cownie@intel.com"><u><font color="#0000FF">james.h.cownie@intel.com</font></u></a>>; David Oehmke <<a href="mailto:doehmke@cray.com"><u><font color="#0000FF">doehmke@cray.com</font></u></a>>; Deepak Eachempati <<a href="mailto:deachempat@cray.com"><u><font color="#0000FF">deachempat@cray.com</font></u></a>>; 'Denny, Joel E.' <<a href="mailto:dennyje@ornl.gov"><u><font color="#0000FF">dennyje@ornl.gov</font></u></a>>; Dmitriev, Serguei N <<a href="mailto:serguei.n.dmitriev@intel.com"><u><font color="#0000FF">serguei.n.dmitriev@intel.com</font></u></a>>; Doerfert, Johannes Rudolf <<a href="mailto:jdoerfert@anl.gov"><u><font color="#0000FF">jdoerfert@anl.gov</font></u></a>>; '<a href="mailto:estotzer@ti.com"><u><font color="#0000FF">estotzer@ti.com</font></u></a>' <<a href="mailto:estotzer@ti.com"><u><font color="#0000FF">estotzer@ti.com</font></u></a>>; 'Ettore Tiotto' <<a href="mailto:etiotto@ca.ibm.com"><u><font color="#0000FF">etiotto@ca.ibm.com</font></u></a>>; '<a href="mailto:fraggamuffin@gmail.com"><u><font color="#0000FF">fraggamuffin@gmail.com</font></u></a>' <<a href="mailto:fraggamuffin@gmail.com"><u><font color="#0000FF">fraggamuffin@gmail.com</font></u></a>>; 'Gheorghe-Teod Bercea' <<a href="mailto:Gheorghe-Teod.Bercea@ibm.com"><u><font color="#0000FF">Gheorghe-Teod.Bercea@ibm.com</font></u></a>>; Hal Finkel <<a href="mailto:hfinkel@anl.gov"><u><font color="#0000FF">hfinkel@anl.gov</font></u></a>>; '<a href="mailto:jbeyer@nvidia.com"><u><font color="#0000FF">jbeyer@nvidia.com</font></u></a>' <<a href="mailto:jbeyer@nvidia.com"><u><font color="#0000FF">jbeyer@nvidia.com</font></u></a>>; 'Jeeva Paudel' <<a href="mailto:pjeeva01@ca.ibm.com"><u><font color="#0000FF">pjeeva01@ca.ibm.com</font></u></a>>; 'Jeff Heath' <<a href="mailto:jrheath@ca.ibm.com"><u><font color="#0000FF">jrheath@ca.ibm.com</font></u></a>>; Jeffrey Sandoval <<a href="mailto:sandoval@cray.com"><u><font color="#0000FF">sandoval@cray.com</font></u></a>>; Jones, Jeff C <<a href="mailto:jeff.c.jones@intel.com"><u><font color="#0000FF">jeff.c.jones@intel.com</font></u></a>>; '<a href="mailto:josem@udel.edu"><u><font color="#0000FF">josem@udel.edu</font></u></a>' <<a href="mailto:josem@udel.edu"><u><font color="#0000FF">josem@udel.edu</font></u></a>>; 'Kelvin Li' <<a href="mailto:kli@ca.ibm.com"><u><font color="#0000FF">kli@ca.ibm.com</font></u></a>>; 'Kevin K O'Brien' <<a href="mailto:caomhin@us.ibm.com"><u><font color="#0000FF">caomhin@us.ibm.com</font></u></a>>; '<a href="mailto:khaldi.dounia@gmail.com"><u><font color="#0000FF">khaldi.dounia@gmail.com</font></u></a>' <<a href="mailto:khaldi.dounia@gmail.com"><u><font color="#0000FF">khaldi.dounia@gmail.com</font></u></a>>; 'Kotsifakou, Maria' <<a href="mailto:kotsifa2@illinois.edu"><u><font color="#0000FF">kotsifa2@illinois.edu</font></u></a>>; Krishnaiyer, Rakesh <<a href="mailto:rakesh.krishnaiyer@intel.com"><u><font color="#0000FF">rakesh.krishnaiyer@intel.com</font></u></a>>; Lieberman, Ron <<a href="mailto:Ron.Lieberman@amd.com"><u><font color="#0000FF">Ron.Lieberman@amd.com</font></u></a>>; Li, Lingda <<a href="mailto:lli@bnl.gov"><u><font color="#0000FF">lli@bnl.gov</font></u></a>>; 'Lopez, Matthew Graham' <<a href="mailto:lopezmg@ornl.gov"><u><font color="#0000FF">lopezmg@ornl.gov</font></u></a>>; '<a href="mailto:lopezmg@ornl.org"><u><font color="#0000FF">lopezmg@ornl.org</font></u></a>' <<a href="mailto:lopezmg@ornl.org"><u><font color="#0000FF">lopezmg@ornl.org</font></u></a>>; 'Martin Kong' <<a href="mailto:martin.richard.kong@gmail.com"><u><font color="#0000FF">martin.richard.kong@gmail.com</font></u></a>>; 'Matt Martineau' <<a href="mailto:m.martineau@bristol.ac.uk"><u><font color="#0000FF">m.martineau@bristol.ac.uk</font></u></a>>; Menard, Lorri <<a href="mailto:lorri.menard@intel.com"><u><font color="#0000FF">lorri.menard@intel.com</font></u></a>>; Monteleone, Robert <<a href="mailto:robert.monteleone@intel.com"><u><font color="#0000FF">robert.monteleone@intel.com</font></u></a>>; <a href="mailto:oscar@ornl.gov"><u><font color="#0000FF">oscar@ornl.gov</font></u></a>; Rao, Premanand M <<a href="mailto:premanand.m.rao@intel.com"><u><font color="#0000FF">premanand.m.rao@intel.com</font></u></a>>; Rice, Michael P <<a href="mailto:michael.p.rice@intel.com"><u><font color="#0000FF">michael.p.rice@intel.com</font></u></a>>; Robichaux, Joseph <<a href="mailto:joseph.robichaux@intel.com"><u><font color="#0000FF">joseph.robichaux@intel.com</font></u></a>>; <a href="mailto:gregory.rodgers@amd.com"><u><font color="#0000FF">gregory.rodgers@amd.com</font></u></a>; Rokos, Georgios <<a href="mailto:georgios.rokos@intel.com"><u><font color="#0000FF">georgios.rokos@intel.com</font></u></a>>; '<a href="mailto:samuel.antao@ibm.com"><u><font color="#0000FF">samuel.antao@ibm.com</font></u></a>' <<a href="mailto:samuel.antao@ibm.com"><u><font color="#0000FF">samuel.antao@ibm.com</font></u></a>>; 'Sarah McNamara' <<a href="mailto:mcnamara@ca.ibm.com"><u><font color="#0000FF">mcnamara@ca.ibm.com</font></u></a>>; '<a href="mailto:sergey.y.ostanevich@gmail.com"><u><font color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a>' <<a href="mailto:sergey.y.ostanevich@gmail.com"><u><font color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a>>; 'Sergio Pino Gallardo' <<a href="mailto:sergiop@udel.edu"><u><font color="#0000FF">sergiop@udel.edu</font></u></a>>; 'Sharif, Hashim' <<a href="mailto:hsharif3@illinois.edu"><u><font color="#0000FF">hsharif3@illinois.edu</font></u></a>>; Sjodin, Jan <<a href="mailto:Jan.Sjodin@amd.com"><u><font color="#0000FF">Jan.Sjodin@amd.com</font></u></a>>; Sunil Shrestha <<a href="mailto:sshrestha@cray.com"><u><font color="#0000FF">sshrestha@cray.com</font></u></a>>; 'Sunita Chandrasekaran' <<a href="mailto:schandra@udel.edu"><u><font color="#0000FF">schandra@udel.edu</font></u></a>>; Tian, Xinmin <<a href="mailto:xinmin.tian@intel.com"><u><font color="#0000FF">xinmin.tian@intel.com</font></u></a>>; Tianyi Zhang <<a href="mailto:tzhan18@lsu.edu"><u><font color="#0000FF">tzhan18@lsu.edu</font></u></a>>; '<a href="mailto:vadve@illinois.edu"><u><font color="#0000FF">vadve@illinois.edu</font></u></a>' <<a href="mailto:vadve@illinois.edu"><u><font color="#0000FF">vadve@illinois.edu</font></u></a>>; 'Wael Yehia' <<a href="mailto:wyehia@ca.ibm.com"><u><font color="#0000FF">wyehia@ca.ibm.com</font></u></a>>; 'Wang Chen' <<a href="mailto:wdchen@ca.ibm.com"><u><font color="#0000FF">wdchen@ca.ibm.com</font></u></a>>; Wilmarth, Terry L <<a href="mailto:terry.l.wilmarth@intel.com"><u><font color="#0000FF">terry.l.wilmarth@intel.com</font></u></a>><b><br>Subject:</b> Comparison of 2 schemes to implement OpenMP 5.0 declare mapper codegen<br><font face="Arial"><br>Hi,</font><br><font face="Arial"><br>Alexey and I would like to have your attention on an ongoing discussion of 2 schemes to implement the declare mapper in OpenMP 5.0. The detailed discussion can be found at </font><a href="https://reviews.llvm.org/D59474" target="_blank"><u><font color="#1155CC" face="Arial">https://reviews.llvm.org/D59474</font></u></a><br><font face="Arial"><br>Scheme 1 (the one has been implemented by me in </font><a href="https://reviews.llvm.org/D59474" target="_blank"><u><font color="#1155CC" face="Arial">https://reviews.llvm.org/D59474</font></u></a><font face="Arial">):<br>The detailed design can be found at </font><a href="https://github.com/lingda-li/public-sharing/blob/master/mapper_runtime_design.pptx" target="_blank"><u><font color="#1155CC" face="Arial">https://github.com/lingda-li/public-sharing/blob/master/mapper_runtime_design.pptx</font></u></a><font face="Arial"><br>For each mapper function, the compiler generates a function like this:</font><br><font face="Arial"><br>```<br>void <type>.mapper(void *base, void *begin, size_t size, int64_t type) {<br>// Allocate space for an array section first.<br>if (size > 1 && !maptype.IsDelete)<br><push>(base, begin, size*sizeof(Ty), clearToFrom(type));<br><br>// Map members.<br>for (unsigned i = 0; i < size; i++) {<br>// For each component specified by this mapper:<br>for (auto c : components) {<br>...; // code to generate c.arg_base, c.arg_begin, c.arg_size, c.arg_type<br>if (c.hasMapper())<br>(*c.Mapper())(c.arg_base, c.arg_begin, c.arg_size, c.arg_type);<br>else<br><push>(c.arg_base, c.arg_begin, c.arg_size, c.arg_type);<br>}<br>}<br>// Delete the array section.<br>if (size > 1 && maptype.IsDelete)<br><push>(base, begin, size*sizeof(Ty), clearToFrom(type));<br>}<br>```<br>This function is passed to the OpenMP runtime, and the runtime will call this function to finish the data mapping.</font><br><br><font face="Arial"><br>Scheme 2 (which Alexey proposes):<br>Alexey proposes to move parts of the mapper function above into the OpenMP runtime, so the compiler will generate code below:<br>```<br>void <type>.mapper(void *base, void *begin, size_t size, int64_t type) {<br>...; // code to generate arg_base, arg_begin, arg_size, arg_type, arg_mapper.<br>auto sub_components[] = {...}; // fill in generated begin, base, ...<br>__tgt_mapper(base, begin, size, type, sub_components);<br>}<br>```</font><br><font face="Arial"><br>`__tgt_mapper` is a runtime function as below:<br>```<br>void __tgt_mapper(void *base, void *begin, size_t size, int64_t type, auto components[]) {<br>// Allocate space for an array section first.<br>if (size > 1 && !maptype.IsDelete)<br><push>(base, begin, size*sizeof(Ty), clearToFrom(type));<br><br>// Map members.<br>for (unsigned i = 0; i < size; i++) {<br>// For each component specified by this mapper:<br>for (auto c : components) {<br>if (c.hasMapper())<br>(*c.Mapper())(c.arg_base, c.arg_begin, c.arg_size, c.arg_type);<br>else<br><push>(c.arg_base, c.arg_begin, c.arg_size, c.arg_type);<br>}<br>}<br>// Delete the array section.<br>if (size > 1 && maptype.IsDelete)<br><push>(base, begin, size*sizeof(Ty), clearToFrom(type));<br>}<br>```</font><br><font face="Arial"><br>Comparison:<br>Why to choose 1 over 2:<br>1. In scheme 2, the compiler needs to generate all map types and pass them to __tgt_mapper through sub_components. But in this case, the compiler won't be able to generate the correct MEMBER_OF field in map type. As a result, the runtime has to fix it using the mechanism we already have here: __tgt_mapper_num_components. This not only increases complexity, but also, it means the runtime needs further manipulation of the map type, which creates locality issues. While in the current scheme, the map type is generated by compiler once, so the data locality will be very good in this case.<br>2. In scheme 2, sub_components includes all components that should be mapped. If we are mapping an array, this means we need to map many components, which will need to allocate memory for sub_components in the heap. This creates further memory management burden and is not an efficient way to use memory.<br>3. In scheme 1, we are able to inline nested mapper functions. As a result, the compiler can do further optimizations to optimize the mapper function, e.g., eliminate redundant computation, loop unrolling, and thus achieve potentially better performance. We cannot achieve these optimizations in scheme 2.</font><br><font face="Arial"><br>Why to choose 2 over 1:<br>1. Less code in the mapper function codegen (I doubt this because the codegen function of scheme 1 uses less than 200 loc)<br>Alexey may have other reasons.</font><br><font face="Arial"><br>We will appreciate if you can share your thoughts.</font><br><font face="Arial"><br>Thanks,<br>Lingda Li</font><div align="center"><hr width="100%" size="2" align="center"></div><b>From:</b> Narayanaswamy, Ravi <<a href="mailto:ravi.narayanaswamy@intel.com"><u><font color="#0000FF">ravi.narayanaswamy@intel.com</font></u></a>><b><br>Sent:</b> Wednesday, June 19, 2019 3:09 PM<b><br>To:</b> 'Alexandre Eichenberger'; 'Alexey Bataev'; '<a href="mailto:barbara.chapman@stonybrook.edu"><u><font color="#0000FF">barbara.chapman@stonybrook.edu</font></u></a>'; Bobrovsky, Konstantin S; 'Carlo Bertolli'; 'Chan, SiuChi'; Cownie, James H; David Oehmke; Deepak Eachempati; 'Denny, Joel E.'; Dmitriev, Serguei N; Doerfert, Johannes Rudolf ; '<a href="mailto:estotzer@ti.com"><u><font color="#0000FF">estotzer@ti.com</font></u></a>'; 'Ettore Tiotto'; '<a href="mailto:fraggamuffin@gmail.com"><u><font color="#0000FF">fraggamuffin@gmail.com</font></u></a>'; 'Gheorghe-Teod Bercea'; '<a href="mailto:hfinkel@anl.gov"><u><font color="#0000FF">hfinkel@anl.gov</font></u></a>'; '<a href="mailto:jbeyer@nvidia.com"><u><font color="#0000FF">jbeyer@nvidia.com</font></u></a>'; 'Jeeva Paudel'; 'Jeff Heath'; Jeffrey Sandoval; Jones, Jeff C; '<a href="mailto:josem@udel.edu"><u><font color="#0000FF">josem@udel.edu</font></u></a>'; 'Kelvin Li'; 'Kevin K O'Brien'; '<a href="mailto:khaldi.dounia@gmail.com"><u><font color="#0000FF">khaldi.dounia@gmail.com</font></u></a>'; 'Kotsifakou, Maria'; Krishnaiyer, Rakesh; Lieberman, Ron ; '<a href="mailto:lli@bnl.gov"><u><font color="#0000FF">lli@bnl.gov</font></u></a>'; 'Lopez, Matthew Graham'; '<a href="mailto:lopezmg@ornl.org"><u><font color="#0000FF">lopezmg@ornl.org</font></u></a>'; 'Martin Kong'; 'Matt Martineau'; Menard, Lorri; Monteleone, Robert; Narayanaswamy, Ravi; 'Oscar R. Hernandez'; Rao, Premanand M; Rice, Michael P; Robichaux, Joseph; Rodgers, Gregory; Rokos, Georgios; '<a href="mailto:samuel.antao@ibm.com"><u><font color="#0000FF">samuel.antao@ibm.com</font></u></a>'; 'Sarah McNamara'; '<a href="mailto:sergey.y.ostanevich@gmail.com"><u><font color="#0000FF">sergey.y.ostanevich@gmail.com</font></u></a>'; 'Sergio Pino Gallardo'; 'Sharif, Hashim'; Sjodin, Jan ; Sunil Shrestha (<a href="mailto:sshrestha@cray.com"><u><font color="#0000FF">sshrestha@cray.com</font></u></a>); 'Sunita Chandrasekaran'; Tian, Xinmin; Tianyi Zhang; '<a href="mailto:vadve@illinois.edu"><u><font color="#0000FF">vadve@illinois.edu</font></u></a>'; 'Wael Yehia'; 'Wang Chen'; Wilmarth, Terry L<b><br>Subject:</b> OpenMP / HPC in Clang / LLVM Multi-company Telecom Meeting Minutes June 19th 2019<br><b><font face="Times New Roman"><br>Next Meeting : July 10</font></b><b><sup><font face="Times New Roman">th</font></sup></b><b><font face="Times New Roman"> (Moved from July 3</font></b><b><sup><font face="Times New Roman">rd</font></sup></b><b><font face="Times New Roman">)</font></b><br><b><font face="Times New Roman"><br>Opens :</font></b><b><font color="#1F497D"><br>- Documentation</font></b><font color="#1F497D"><br>- Greg : Can we have documents for libopenmp and Libomptarget.<br>- Alexey suggested having 3 documents: libopenmp, Libomptarget and device plugin <br>- Hal will convert the existing libomptarget document. Once done others can update document to capture the existing implementation<br>Future addition to libomptarget will also require update to document.<br>- Next libopenmp document will be created if it does not exist or updated if one exists.</font><br><b><font color="#1F497D"><br>LTO for fat binary linking</font></b><font color="#1F497D"><br>- Serguei (Intel) has an implementation which enables LTO and doing away with linker scripts.<br>Everybody agreed this is a good idea, especially some linkers don¡¯t have support for linker scripts.<br>AMD is interested in enabling enabling LTO and will like to see the code<br>Serguei to post the code to get feedback from all<br>- Hal to present in next meeting his proposal to support static fat archives using LTO.</font><br><b><font color="#1F497D"><br>OpenMP 5.0 Features</font></b><font color="#1F497D"><br>- No update on setting up the public website. Johannes was out attending ISC.<br>- New features added since last release (courtesy of Kelvin)</font><font size="2" face="Arial"><br>- allocate clause/allocate directive - parsing+sema, codegen<br>- mutexinout dependence-type for task<br>- user-defined mapper (declare mapper) - parsing+sema. <br>- omp_get_device_num() API routine</font><br><b><font color="#1F497D"><br>Development Activity<br>- Async API</font></b><font color="#1F497D"><br>Support in Clang and libopenmp including lit test had been checked in by Doru</font><br><b><font color="#1F497D"><br>- Mapper support</font></b><font color="#1F497D"><br>Initial support for Mapper has been posted for review Lingda. Once approved, the rest of the support will be done<br>Lingda : Should the old API being replaced by the new similar API with extra mapper argument be obsoleted<br>Suggestion was for clang to not generated but keep the API in libomptarget for backward compatible. In the future it can be obsoleted</font><br><b><font color="#1F497D"><br>- Required Directives</font></b><font color="#1F497D"><br>Support for required directives has been checked in by Doru. <br>There was one issue with checking for requires directive and confirming it the Declare type is TO or LINK.<br>Doru removed the check and added note to make sure if things change in future need to modify this code.</font><br><b><font face="Times New Roman"><br>Roll Call :</font></b><table class="x_x_x_MsoNormalTable" border="1"><tr valign="top"><td width="129" valign="bottom"><b>Company</b></td><td width="188" valign="bottom"><b>Attendees</b></td><td width="64" valign="bottom"><div align="center"><b>19-Jun</b></div></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>AMD</b></td><td width="188" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Greg Rodgers</td><td width="64" valign="bottom"><div align="center">x</div></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Ashwin Aji</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Jan Sjodin</td><td width="64" valign="bottom"><div align="center">x</div></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Ron Lieberman</td><td width="64" valign="bottom"><div align="center">x</div></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">sameer Sahasrabuddhe</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Andrey Kasaurov</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>ANL </b></td><td width="188" valign="bottom">Hal Finkel</td><td width="64" valign="bottom"><div align="center">x</div></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Johannes Doerfert</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>IBM</b></td><td width="188" valign="bottom">Alexandre Eichenberger</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Carlo Bertolli</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Kelvin Li</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Doru</td><td width="64" valign="bottom"><div align="center">x</div></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Alexey Bataev</td><td width="64" valign="bottom"><div align="center">x</div></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>Intel</b></td><td width="188" valign="bottom">Andrey Churbanov</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Ravi Narayanaswamy</td><td width="64" valign="bottom"><div align="center">x</div></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Serguei Dmitriev</td><td width="64" valign="bottom"><div align="center">x</div></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Rajiv Deodhar</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Lorri Menard</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Terry Wilmarth</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Rao, Prem</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Hansang Bae</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">George Rokos</td><td width="64" valign="bottom"><div align="center">x</div></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>Cray</b></td><td width="188" valign="bottom">Deepak Eachempati</td><td width="64" valign="bottom"><div align="center">x</div></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>Micron</b></td><td width="188" valign="bottom">John Leidel</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>Nvidia</b></td><td width="188" valign="bottom">James Beyer</td><td width="64" valign="bottom"><div align="center">x</div></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>ORNL</b></td><td width="188" valign="bottom">Graham Lopez</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Joel Denny</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Geoffroy Vallee</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Oscar Hernandez</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>SBU/BNL</b></td><td width="188" valign="bottom">Lingda Li</td><td width="64" valign="bottom"><div align="center">x</div></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Jose Monlsave</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td><td width="188" valign="bottom">Martin Kong</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>TI</b></td><td width="188" valign="bottom">Eric Stotzer</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>U of Bristol</b></td><td width="188" valign="bottom">Mat Martineau</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>U of Delaware</b></td><td width="188" valign="bottom">Sunita Chandrasekaran</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>U of Illinois</b></td><td width="188" valign="bottom">Hashim Sharif</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>Rice</b></td><td width="188" valign="bottom">John Mellor-Crummey</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr>
<tr valign="top"><td width="129" valign="bottom"><b>LSU</b></td><td width="188" valign="bottom">Tianyi Zhang</td><td width="64" valign="bottom"><img width="1" height="1" src="cid:3__=8FBB0EB4DFDF10C48f9e8a93df938690918c8FB@" border="0" alt=""></td></tr></table><br><br><font size="2" color="#404040"><br>.........................................................................................................................................</font><font size="4" face="Wingdings"><br>¨¤</font><a href="https://meet.intel.com/ravi.narayanaswamy/DK7943NR"><u><font size="5" color="#0066CC">Join Skype Meeting</font></u></a><font size="4"> </font><a name="x_x_x_x_x_x_x_x_OutSharedNoteBorder"></a><a name="x_x_x_x_x_x_x_x_OutSharedNoteLink"></a><ul><ul><a name="x_x_x_x_x_x_x_x__InsertRtfSavedPosition"></a><a name="x_x_x_x_x_x_x_x_OutJoinLink"></a><font size="2">Trouble Joining? </font><a href="https://meet.intel.com/ravi.narayanaswamy/DK7943NR?sl=1"><u><font size="2" color="#0066CC">Try Skype Web App</font></u></a><u><font size="2"> </font></u></ul></ul><font size="4">Join by phone</font><u><font color="#0000FF"><br></font></u><a href="tel:+1(916)356-2663%20(or%20your%20local%20bridge%20access%20#)%20Choose%20bridge%205."><u><font size="2" color="#0066CC">+1(916)356-2663 (or your local bridge access #) Choose bridge 5.</font></u></a><font size="2"> (Global) English (United States) </font><u><font color="#0000FF"><br></font></u><a href="https://dial.intel.com"><u><font size="2" color="#0066CC">Find a local number</font></u></a> <br><font size="2"><br>Conference ID: 7607896966</font><u><font color="#0000FF"><br></font></u><a href="https://dial.intel.com"><u><font size="2" color="#0066CC">Forgot your dial-in PIN?</font></u></a><font size="2"> </font>|<a href="https://o15.officeredir.microsoft.com/r/rlidLync15?clid=1033&p1=5&p2=2009"><u><font size="2" color="#0066CC">Help</font></u></a><br><sub><font size="2" color="#FFFFFF"><br>[!OC([1033])!]</font></sub><font size="2" color="#404040"><br>.........................................................................................................................................</font><br></ul></ul></ul></ul></ul></ul>
<p><p><BR>
</body></html>