CVS difference for ai22s/ai22-0096-1.html

Differences between 1.2 and version 1.3
Log of other versions for file ai22s/ai22-0096-1.html

--- ai22s/ai22-0096-1.html	2024/02/16 03:06:43	1.2
+++ ai22s/ai22-0096-1.html	2024/04/25 08:08:05	1.3
@@ -1,33 +1,35 @@
-<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0096-1/01</title>
+<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0096-1/02</title>
 <style type="text/css">
-ol.lst-kix_ti4477hvp6vi-2.start{counter-reset:lst-ctn-kix_ti4477hvp6vi-2 0}
-ol.lst-kix_ti4477hvp6vi-0.start{counter-reset:lst-ctn-kix_ti4477hvp6vi-0 0}
-.lst-kix_ti4477hvp6vi-8>li{counter-increment:lst-ctn-kix_ti4477hvp6vi-8}
-ol.lst-kix_ti4477hvp6vi-5.start{counter-reset:lst-ctn-kix_ti4477hvp6vi-5 0}
-ol.lst-kix_ti4477hvp6vi-4.start{counter-reset:lst-ctn-kix_ti4477hvp6vi-4 0}
-.lst-kix_ti4477hvp6vi-5>li{counter-increment:lst-ctn-kix_ti4477hvp6vi-5}
-.lst-kix_ti4477hvp6vi-2>li{counter-increment:lst-ctn-kix_ti4477hvp6vi-2}
-ol.lst-kix_ti4477hvp6vi-7.start{counter-reset:lst-ctn-kix_ti4477hvp6vi-7 0}
-.lst-kix_ti4477hvp6vi-6>li{counter-increment:lst-ctn-kix_ti4477hvp6vi-6}
-ol.lst-kix_ti4477hvp6vi-1.start{counter-reset:lst-ctn-kix_ti4477hvp6vi-1 0}
-ol.lst-kix_ti4477hvp6vi-8.start{counter-reset:lst-ctn-kix_ti4477hvp6vi-8 0}
-.lst-kix_ti4477hvp6vi-0>li{counter-increment:lst-ctn-kix_ti4477hvp6vi-0}
-ol.lst-kix_ti4477hvp6vi-6.start{counter-reset:lst-ctn-kix_ti4477hvp6vi-6 0}
-.lst-kix_ti4477hvp6vi-3>li{counter-increment:lst-ctn-kix_ti4477hvp6vi-3}
-.lst-kix_ti4477hvp6vi-1>li{counter-increment:lst-ctn-kix_ti4477hvp6vi-1}
-.lst-kix_ti4477hvp6vi-4>li{counter-increment:lst-ctn-kix_ti4477hvp6vi-4}
-ol.lst-kix_ti4477hvp6vi-3.start{counter-reset:lst-ctn-kix_ti4477hvp6vi-3 0}
-.lst-kix_ti4477hvp6vi-7>li{counter-increment:lst-ctn-kix_ti4477hvp6vi-7}
+.lst-kix_3oyad0iddbo6-0>li{counter-increment:lst-ctn-kix_3oyad0iddbo6-0}
+ol.lst-kix_3oyad0iddbo6-8.start{counter-reset:lst-ctn-kix_3oyad0iddbo6-8 0}
+ol.lst-kix_3oyad0iddbo6-3.start{counter-reset:lst-ctn-kix_3oyad0iddbo6-3 0}
+ol.lst-kix_3oyad0iddbo6-2.start{counter-reset:lst-ctn-kix_3oyad0iddbo6-2 0}
+.lst-kix_3oyad0iddbo6-3>li{counter-increment:lst-ctn-kix_3oyad0iddbo6-3}
+ol.lst-kix_3oyad0iddbo6-5.start{counter-reset:lst-ctn-kix_3oyad0iddbo6-5 0}
+.lst-kix_3oyad0iddbo6-6>li{counter-increment:lst-ctn-kix_3oyad0iddbo6-6}
+ol.lst-kix_3oyad0iddbo6-7.start{counter-reset:lst-ctn-kix_3oyad0iddbo6-7 0}
+.lst-kix_3oyad0iddbo6-8>li{counter-increment:lst-ctn-kix_3oyad0iddbo6-8}
+ol.lst-kix_3oyad0iddbo6-0.start{counter-reset:lst-ctn-kix_3oyad0iddbo6-0 0}
+.lst-kix_3oyad0iddbo6-5>li{counter-increment:lst-ctn-kix_3oyad0iddbo6-5}
+.lst-kix_3oyad0iddbo6-2>li{counter-increment:lst-ctn-kix_3oyad0iddbo6-2}
+.lst-kix_3oyad0iddbo6-7>li{counter-increment:lst-ctn-kix_3oyad0iddbo6-7}
+ol.lst-kix_3oyad0iddbo6-4.start{counter-reset:lst-ctn-kix_3oyad0iddbo6-4 0}
+.lst-kix_3oyad0iddbo6-4>li{counter-increment:lst-ctn-kix_3oyad0iddbo6-4}
+ol.lst-kix_3oyad0iddbo6-6.start{counter-reset:lst-ctn-kix_3oyad0iddbo6-6 0}
+.lst-kix_3oyad0iddbo6-1>li{counter-increment:lst-ctn-kix_3oyad0iddbo6-1}
+ol.lst-kix_3oyad0iddbo6-1.start{counter-reset:lst-ctn-kix_3oyad0iddbo6-1 0}
 table td,table th{padding:0}
-.c24{color:inherit;text-decoration:inherit}
+.c10{color:inherit;text-decoration:inherit}
 BODY.body{background-color:#ffffff; max-width:540pt; padding:36pt 36pt 36pt 36pt}
 P.anum{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:26pt; padding-bottom:3pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:
400; text-decoration:none; vertical-align:baseline; font-style:normal}
 P.head{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:14pt; padding-bottom:0pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:
400; text-decoration:none; vertical-align:baseline; font-style:normal}
 H2.head{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:12pt; color:#000000; font-size:14pt; padding-bottom:6pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; page-break-after:avoid; orphans:2; widows:2; tex
t-align:left; font-weight:400; text-decoration:none; vertical-align:baseline; font-style:normal}
+P.inst{margin-bottom:0; margin-top:0; margin-left:18pt; margin-right:0; padding-top:9pt; color:#000000; font-size:12pt; padding-bottom:6pt; font-family:"Arial","Liberation Sans",sans-serif;line-height:1.15; orphans:2; widows:2; text-align:left; font-weigh
t:400; text-decoration:none; vertical-align:baseline; font-style:normal}
+P.word{margin-bottom:0; margin-top:0; margin-left:36pt; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:3pt; font-family:"Times New Roman","Times",serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:40
0; text-decoration:none; vertical-align:baseline; font-style:normal}
 P.codb{margin-bottom:0; margin-top:0; margin-left:12pt; margin-right:0; padding-left:4pt; padding-top:4pt; color:#000000; font-size:10pt; padding-bottom:4pt; font-family:"Courier New",monospace; line-height:1.15; text-align:left; background-color:#f0f0f0;
 font-weight:400; text-decoration:none; vertical-align:baseline; font-style:normal}
 P.text{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:0pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; text-align:left; font-weight:400; text-decoration:
none; vertical-align:baseline; font-style:normal}
 P.txts{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:11pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; text-align:left; font-weight:400; text-decoration
:none; vertical-align:baseline; font-style:normal}
-UL.blts{margin-bottom:0; margin-top:0; margin-left:12pt; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:12pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15;text-align:left; font-weight:400; text-decorat
ion:none; vertical-align:baseline; font-style:normal; list-style: disc outside}
+OL.nums{margin-bottom:0; margin-top:0; margin-left:12pt; margin-right:0; padding-top:0pt; color:#000000; font-size:11pt; padding-bottom:12pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15;text-align:left; font-weight:400; text-decorat
ion:none; vertical-align:baseline; font-style:normal; list-style: decimal outside}
 P.from{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:10pt; padding-bottom:0pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:
400; text-decoration:none; vertical-align:baseline; font-style:none}
 P.time{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:9pt; padding-bottom:9pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:4
00; text-decoration:none; vertical-align:baseline; font-style:italic}
 SPAN.name{font-family:"Lucida Calligraphy",cursive; font-style:normal}
@@ -39,16 +41,19 @@
 </style>
 </head><body class="body"><p class="anum">AI22-0096-1</p>
 <p class="head">!standard 5.5(2/3) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 24-02-13 &nbsp;AI22-0096-1/01</p>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 24-04-22 &nbsp;AI22-0096-1/02</p>
 <p class="head">!standard 5.5.2(5/4)</p>
 <p class="head">!standard 5.5.2(7/3)</p>
-<p class="head">!class Amendment 24-02-13</p>
+<p class="head">!class Ramification 24-02-13</p>
 <p class="head">!status work item 24-02-13</p>
 <p class="head">!status received 24-02-13</p>
 <p class="head">!priority Medium</p>
 <p class="head">!difficulty Medium</p>
 <p class="head">!subject Ada and OpenMP</p>
 <h2 class="head">!summary</h2>
+<p class="txts">An AARM Implementation Note is created to reference this technical report on Ada 22
+and OpenMP.</p>
+
 <p class="text">This technical report outlines a &quot;plug-in&quot; approach to supporting
 lightweight threading. &nbsp;The notion of user-defined &quot;generalized&quot; aspects has been
 proposed (in another AI) as a way to provide tuning parameters to a plug-in, without the compiler
@@ -59,11 +64,14 @@
 these frameworks are already in industrial usage, it would be useful if Ada (particularly the new
 parallelism features) could use them.</p>
 <h2 class="head">!recommendation</h2>
-<p class="txts">The following proposal is just one possible way to map Ada 2022 parallelism
-features to OpenMP. &nbsp;The author believes it is a good approach, and matches what the IRTAW and
-other OpenMP experts such as Luis Miguel Pinho recommend. Be that as it may, it is not appropriate
-to mandate it as part of the Ada standard, but it is hopefully useful as an example that has been
-prototyped extensively and has been shown to provide useful speedups.</p>
+<p class="txts">We suggest adding an AARM implementation note to refer to this technical
+report.</p>
+
+<p class="txts">The proposal outlined in this technical report is just one possible way to map Ada
+2022 parallelism features to OpenMP. &nbsp;The author believes it is a good approach, and matches
+what the IRTAW and other OpenMP experts such as Luis Miguel Pinho recommend. Be that as it may, it
+is not appropriate to mandate it as part of the Ada standard, but it is hopefully useful as an
+example that has been prototyped extensively and has been shown to provide useful speedups.</p>
 
 <p class="txts">For the mapping to OpenMP, we are recommending a layered mapping to OpenMP (or
 other light-weight-threading (LWT) scheduler), where upon seeing the syntax for a parallel
@@ -90,14 +98,14 @@
 intended to be called directly by the user, in particular those that are part of the
 &quot;official&quot; OpenMP API, such as &quot;omp_get_thread_num&quot; or
 &quot;omp_get_team_size&quot; (for the full API, see the Runtime Library Routines section in
-<span class="g6p"><a class="c24" href="https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5.0.">https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5.0.
+<span class="g6p"><a class="c10" href="https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5.0.">https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5.0.
 pdf</a></span>). We also have proposed that record extensions of &quot;Ada.Aspects&quot; (suggested
 name) could be used to pass in options to parallel constructs, in a kind of generalized
-&quot;aspect specification.&quot; (See AI12-0355-1.)</p>
+&quot;aspect specification.&quot; ([Reference a GitHub issue here]See AI12-0355-1.)</p>
 
 <p class="txts">A prototype implementation of this structure is available on GitHub, at:</p>
 
-<p class="utc"><a class="c24" href="https://github.com/parasail-lang/parasail/tree/main/lwt">https://github.com/parasail-lang/parasail/tree/main/lwt</a></p>
+<p class="utc"><a class="c10" href="https://github.com/parasail-lang/parasail/tree/main/lwt">https://github.com/parasail-lang/parasail/tree/main/lwt</a></p>
 <h4 class="v52">Interaction with Ada tasks</h4>
 <p class="txts">We propose that each Ada task defines its own parallelism region, if any,
 recognizing that many Ada tasks will need no parallelism, and might continue to serve special roles
@@ -168,7 +176,7 @@
 &quot;GOMP&quot; implementation indicates the same approach in:</p>
 
 <p class="txts">&nbsp;
-&nbsp;<span class="g6p"><a class="c24" href="https://gcc.gnu.org/onlinedocs/libgomp/Implementing-SECTIONS-construct.html">https://gcc.gnu.org/onlinedocs/libgomp/Implementing-SECTIONS-construct.html</a></span></p>
+&nbsp;<span class="g6p"><a class="c10" href="https://gcc.gnu.org/onlinedocs/libgomp/Implementing-SECTIONS-construct.html">https://gcc.gnu.org/onlinedocs/libgomp/Implementing-SECTIONS-construct.html</a></span></p>
 
 <p class="txts">We suggest the same approach for Ada. Here is an example expansion:</p>
 
@@ -420,16 +428,16 @@
 potentially conflicting uses of variables visible across a parallel construct that are controlled
 by a &quot;Conflict_Check_Policy&quot;:</p>
 
-<p class="m2f"><a class="c24" href="http://www.ada-auth.org/standards/2022aarm/html/AA-9-10-1.html">http://www.ada-auth.org/standards/2022aarm/html/AA-9-10-1.html</a></p>
+<p class="m2f"><a class="c10" href="http://www.ada-auth.org/standards/2022aarm/html/AA-9-10-1.html">http://www.ada-auth.org/standards/2022aarm/html/AA-9-10-1.html</a></p>
 
 <p class="txts">There are three levels:</p>
 
-<ul class="blts"><li>No checks (&quot;No_Conflict_Checks&quot;);</li>
+<ol class="nums"><li>No checks (&quot;No_Conflict_Checks&quot;);</li>
 <li>Shared-object checks (&quot;Known_Conflict_Checks&quot;); This is based on the &quot;known to
 denote the same object&quot; check performed on OUT parameters of functions.</li>
 <li>Synchronized-object checks (&quot;All_Conflict_Checks&quot;). This check is based on
 disallowing any uplevel references to non-synchronized objects.</li>
-</ul>
+</ol>
 
 <p class="txts">Also, there are separate policies for tasking (which defaults to &quot;No
 checks&quot;) and for parallel constructs (which defaults to &quot;Synchronized-object
@@ -530,8 +538,10 @@
 <p class="text">C# has lightweight threading based on System.Threading.Tasks, which includes both
 loop-oriented capabilities and ad-hoc light-weight task creation.</p>
 <h2 class="head">!wording</h2>
-<p class="text">[None proposed, except perhaps for an AARM Implementation note referring to this
-technical report.]</p>
+<p class="inst">Add after 9(1/5):</p>
+<p class="word">AARM Implementation Note: One approach to supporting the scheduling of tasks and
+their logical threads of control, including within the infrastructure provided by OpenMP, is
+provided in the technical report represented by AI22-0096-1 Tech Report on Ada and OpenMP.</p>
 <h2 class="head">!discussion</h2>
 <p class="txts">The OpenMP session at ARG meeting #62 showed that implementing the proposed
 parallel constructs of Ada on top of OpenMP is feasible. In many of the semantic choices, OpenMP
@@ -659,6 +669,8 @@
 <p class="txts">OK, thanks.</p>
 
 <p class="txts">****************************************************************</p>
+
+
 
 
 

Questions? Ask the ACAA Technical Agent