https://ecfd.coria-cfd.fr/index.php?title=Ecfd:ecfd_5th_edition&feed=atom&action=historyEcfd:ecfd 5th edition - Revision history2024-03-29T01:27:10ZRevision history for this page on the wikiMediaWiki 1.26.2https://ecfd.coria-cfd.fr/index.php?title=Ecfd:ecfd_5th_edition&diff=458&oldid=prevLeparoux: /* User experience - J. Leparoux, SAFRAN TECH */2022-02-06T14:18:27Z<p><span dir="auto"><span class="autocomment">User experience - J. Leparoux, SAFRAN TECH</span></span></p>
<table class='diff diff-contentalign-left'>
<tr style='vertical-align: top;' lang='en'>
<td colspan='1' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='1' style="background-color: white; color:black; text-align: center;">Revision as of 14:18, 6 February 2022</td>
</tr><tr><td colspan='2' style='text-align: center;' lang='en'><div class="mw-diff-empty">(No difference)</div>
</td></tr></table>Leparouxhttps://ecfd.coria-cfd.fr/index.php?title=Ecfd:ecfd_5th_edition&diff=457&oldid=prevLeparoux: /* User experience - J. Leparoux, SAFRAN TECH */2022-02-06T14:18:27Z<p><span dir="auto"><span class="autocomment">User experience - J. Leparoux, SAFRAN TECH</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='en'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 14:18, 6 February 2022</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l217" >Line 217:</td>
<td colspan="2" class="diff-lineno">Line 217:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>The first step has been successfully completed by developing a python tool ''y2_actuator_sets.py''. This tool will be very useful for users to setup a YALES2 wind energy simulation with a single inputfile instead of a dozen inputfiles and with printed insights allowing to users to check inputs and errors faster than before.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>The first step has been successfully completed by developing a python tool ''y2_actuator_sets.py''. This tool will be very useful for users to setup a YALES2 wind energy simulation with a single inputfile instead of a dozen inputfiles and with printed insights allowing to users to check inputs and errors faster than before.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Some works should be pursued to <del class="diffchange diffchange-inline">develop </del>monitoring tool using plotly with HTML plots.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Some works should be pursued to <ins class="diffchange diffchange-inline">improve the </ins>monitoring tool using plotly with HTML plots.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>''*BHawC : aero-servo-elastic solver used and developped at Siemens Gamesa Renewable Energy for wind turbine design and certification</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>''*BHawC : aero-servo-elastic solver used and developped at Siemens Gamesa Renewable Energy for wind turbine design and certification</div></td></tr>
</table>Leparouxhttps://ecfd.coria-cfd.fr/index.php?title=Ecfd:ecfd_5th_edition&diff=456&oldid=prevLeparoux: /* User experience - J. Leparoux, SAFRAN TECH */2022-02-06T14:17:55Z<p><span dir="auto"><span class="autocomment">User experience - J. Leparoux, SAFRAN TECH</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='en'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 14:17, 6 February 2022</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l206" >Line 206:</td>
<td colspan="2" class="diff-lineno">Line 206:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>In recent yers, Continuous Integration (CI) has become a good practice for software development allowing to detect integration errors quickly. In this context, running test cases with an automated execution is required to ensure the success of the CI strategy. CI is already deployed on about 60 tests cases of the YALES2 distribution.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>In recent yers, Continuous Integration (CI) has become a good practice for software development allowing to detect integration errors quickly. In this context, running test cases with an automated execution is required to ensure the success of the CI strategy. CI is already deployed on about 60 tests cases of the YALES2 distribution.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>During the ECFD week, a new srategy was setup based on a Docker image allowing to manage the OS environment by controlling dependencies and library versions used. Hence, a better operability is reached to execute the CI. The CI was also extended on YALES2 tools with the creation of unit tests for python tools which should be pursued.  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>During the ECFD week, a new srategy was setup based on a Docker image allowing to manage the OS environment by controlling dependencies and library versions used. Hence, a better operability is reached to execute the CI. The CI was also extended on YALES2 tools with the creation of unit tests for python tools which should be pursued.  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l216" >Line 216:</td>
<td colspan="2" class="diff-lineno">Line 215:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>The objectives of this projet were (i) develop a python tools to set all necessary ACTUATOR_SET objects (ii) provide basic visualization plots allowing to monitor simulations on-the-fly (by post-processing YALES2 temporals and BHawC results files).</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>The objectives of this projet were (i) develop a python tools to set all necessary ACTUATOR_SET objects (ii) provide basic visualization plots allowing to monitor simulations on-the-fly (by post-processing YALES2 temporals and BHawC results files).</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">The first step has been successfully completed by developing a python tool ''y2_actuator_sets.py''. This tool will be very useful for users to setup a YALES2 wind energy simulation with a single inputfile instead of a dozen inputfiles and with printed insights allowing to users to check inputs and errors faster than before.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Some works should be pursued to develop monitoring tool using plotly with HTML plots.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>''*BHawC : aero-servo-elastic solver used and developped at Siemens Gamesa Renewable Energy for wind turbine design and certification</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>''*BHawC : aero-servo-elastic solver used and developped at Siemens Gamesa Renewable Energy for wind turbine design and certification</div></td></tr>
</table>Leparouxhttps://ecfd.coria-cfd.fr/index.php?title=Ecfd:ecfd_5th_edition&diff=455&oldid=prevLeparoux: /* User experience - J. Leparoux, SAFRAN TECH */2022-02-06T13:54:19Z<p><span dir="auto"><span class="autocomment">User experience - J. Leparoux, SAFRAN TECH</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='en'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 13:54, 6 February 2022</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l205" >Line 205:</td>
<td colspan="2" class="diff-lineno">Line 205:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* '''Sub-project 3: YALES2 Tools & Gitlab CI (J. Leparoux, A. Tstetoglou, R. Mercier)'''</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* '''Sub-project 3: YALES2 Tools & Gitlab CI (J. Leparoux, A. Tstetoglou, R. Mercier)'''</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Y2 smart archive is a useful tool which gives the user more freedom when it comes storing their data. Y2 smart archive allows for automatic smart archiving and has the capability of taking user-specified maximum number of tar files and/or the maximum tar file size. The python tool conserves the original tree structure of the folder and has the ability to automatically detect the tree depth where the tar files are to be saved. During the project, y2 smart archive was tested on a windows computer. This implementation verified the ability to archive save a whole Windows computer with automatic handling of multi-platform symlinks. In the case where files may be skipped, log files are stored for reference. Current developments of the tool include automatic background launching, which will result in a reduction of required user-input hours.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">In recent yers, Continuous Integration (CI) has become a good practice for software development allowing to detect integration errors quickly. In this context, running test cases with an automated execution is required to ensure the success of the CI strategy. CI is already deployed on about 60 tests cases of the YALES2 distribution.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">During the ECFD week, a new srategy was setup based on a Docker image allowing to manage the OS environment by controlling dependencies and library versions used. Hence, a better operability is reached to execute the CI. The CI was also extended on YALES2 tools with the creation of unit tests for python tools which should be pursued. </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">An other achievement of the week refers to the improvment of Y2 smart archive tool. </ins>Y2 smart archive is a useful tool which gives the user more freedom when it comes storing their data. Y2 smart archive allows for automatic smart archiving and has the capability of taking user-specified maximum number of tar files and/or the maximum tar file size. The python tool conserves the original tree structure of the folder and has the ability to automatically detect the tree depth where the tar files are to be saved. During the project, y2 smart archive was tested on a windows computer. This implementation verified the ability to archive save a whole Windows computer with automatic handling of multi-platform symlinks. In the case where files may be skipped, log files are stored for reference. Current developments of the tool include automatic background launching, which will result in a reduction of required user-input hours.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* '''Sub-project 4: Wind energy tools (E. Muller, S. Gremmo, F. Houtin-Mongrolle, B. Duboc)'''</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* '''Sub-project 4: Wind energy tools (E. Muller, S. Gremmo, F. Houtin-Mongrolle, B. Duboc)'''</div></td></tr>
</table>Leparouxhttps://ecfd.coria-cfd.fr/index.php?title=Ecfd:ecfd_5th_edition&diff=454&oldid=prevLartigue: /* Numerics - G. Lartigue, CORIA */2022-02-03T01:24:41Z<p><span dir="auto"><span class="autocomment">Numerics - G. Lartigue, CORIA</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='en'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 01:24, 3 February 2022</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l131" >Line 131:</td>
<td colspan="2" class="diff-lineno">Line 131:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>The next steps will be: (1) keeping on identifying this bug, (2) implementing the information exchange from YALES2 to VPM and (3) synchronizing both solvers on the global communicator via MPI calls.  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>The next steps will be: (1) keeping on identifying this bug, (2) implementing the information exchange from YALES2 to VPM and (3) synchronizing both solvers on the global communicator via MPI calls.  </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">* '''Sub-Project 3: Assessment of the YALES2 compressible flow solvers (CPS,ECS,SIC) for turbomachinery applications (P. Tene, L. Bricteux, S. Lavagnoli, Y. Béchane, P. Bénez)'''</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">High propulsive efficiency calls for Ultra-High By-Pass ratio geared turbofans. A huge fan ensuring the high dilution is rotating slowly. This fan is driven by a low-pressure turbine (LPT) rotating fast (diminishing stage count and weight). Both components are linked using a gearbox. As the fan produces 80% of the thrust, the LPT that drives it is a key component to achieve efficiency. LPT operates at transonic exit Mach numbers and low-Reynolds numbers (60-80k). Within this range of operating conditions, there is a critical shortage of aerodynamic and performance measurements.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">This week we assessed the ability of the YALES2 Explicit compressible flow solver (ECS) to ensure consistent results for such applications. The first results were very promising, and proposals were made (e.g imposing total pressure as a boundary condition) to improve the development of this solver. In addition, an assessment of the different numerical schemes of this solver in terms of diffusion has also been carried out. Advances have also been made in the development of the YALES2 semi-implicit compressible solver (SIC). This solver will eventually (in the context of this application), improve the computational cost because unlike ECS, the time step here is not limited by the acoustic CFL.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* '''Sub-project 4: Avoiding the acoustic timestep restriction in two-phase flow simulations (V. Boniou, J. Paris, A. Vié, T. Schmitt, C. Tenaud, Y. Béchane)'''</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* '''Sub-project 4: Avoiding the acoustic timestep restriction in two-phase flow simulations (V. Boniou, J. Paris, A. Vié, T. Schmitt, C. Tenaud, Y. Béchane)'''</div></td></tr>
</table>Lartiguehttps://ecfd.coria-cfd.fr/index.php?title=Ecfd:ecfd_5th_edition&diff=453&oldid=prevMoureauv: /* Static and dynamic mesh adaptation - G. Balarac, LEGI */2022-02-03T00:25:52Z<p><span dir="auto"><span class="autocomment">Static and dynamic mesh adaptation - G. Balarac, LEGI</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='en'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 00:25, 3 February 2022</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l90" >Line 90:</td>
<td colspan="2" class="diff-lineno">Line 90:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* '''Sub-project 1: Anisotropic mesh adaptation in YALES2 (A. Grenouilloux, A. Stock, G. Lartigue, G. Balarac, A. Froehly, C. Dapogny, J. Leparoux)'''</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* '''Sub-project 1: Anisotropic mesh adaptation in YALES2 (A. Grenouilloux, A. Stock, G. Lartigue, G. Balarac, A. Froehly, C. Dapogny, J. Leparoux)'''</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Mesh adaptation based on isotropic meshes is now a mature tool in YALES2 based on the Mmg library. In many configurations, a significant gain in terms of computational cost can be expected through the use of anisotropic mesh. However, this requires to address several aspects: (i) the ability to generate anisotropic meshes via the coupling between YALES2 and Mmg, (ii) to define an anisotropic metric adapted to the simulated flow, and (iii) to assess the properties of the numerical methods (prediction/stability) of YALES2 on such meshes. This project has addressed the two first <del class="diffchange diffchange-inline">point </del>(see sub-project 5, in Numerics for the last one).During the workshop, a full anisotropic mesh adaptation strategy has been implemented in YALES2. Anisotropic mesh needs to prescribe a metric tensor to define the ellipsoid characterizing the anisotropic tetrahedral element. First developments were then devoted to the manipulation and the control of this metric tensor (metric intersection, graduation control, aspect ratio control, etc...). Second part of the project was devoted to the determination of an anisotropic mesh based on computed fields. The Hessian-based metric definition has been implemented for this purpose.  </div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Mesh adaptation based on isotropic meshes is now a mature tool in YALES2 based on the Mmg library<ins class="diffchange diffchange-inline">. This parallel mesh adaptation method is very effective for increasing the resolution in sensitive regions of the flow even when using billion-cell meshes</ins>. In many configurations, a significant gain in terms of computational cost can be expected through the use of anisotropic mesh. However, this requires to address several aspects: (i) the ability to generate anisotropic meshes via the coupling between YALES2 and Mmg, (ii) to define an anisotropic metric adapted to the simulated flow, and (iii) to assess the properties of the numerical methods (prediction/stability) of YALES2 on such meshes. This project has addressed the two first <ins class="diffchange diffchange-inline">points </ins>(see sub-project 5, in Numerics for the last one). During the workshop, a full anisotropic mesh adaptation strategy has been implemented in YALES2. Anisotropic mesh <ins class="diffchange diffchange-inline">adaptation </ins>needs to prescribe a metric tensor to define the ellipsoid characterizing the anisotropic tetrahedral element. First developments were then devoted to the manipulation and the control of this metric tensor (metric intersection, graduation control, aspect ratio control, etc...). Second part of the project was devoted to the determination of an anisotropic mesh based on computed fields. The Hessian-based metric definition has been implemented for this purpose<ins class="diffchange diffchange-inline">. Successfull demonstrations have been conducted for 2D and 3D meshes during the workshop paving the way to upcoming applications</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Multi-phase flows - M. Cailler, SAFRAN TECH  ===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Multi-phase flows - M. Cailler, SAFRAN TECH  ===</div></td></tr>
</table>Moureauvhttps://ecfd.coria-cfd.fr/index.php?title=Ecfd:ecfd_5th_edition&diff=452&oldid=prevMoureauv: /* Hackathon - G. Staffelbach, CERFACS */2022-02-03T00:15:40Z<p><span dir="auto"><span class="autocomment">Hackathon - G. Staffelbach, CERFACS</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='en'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 00:15, 3 February 2022</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l53" >Line 53:</td>
<td colspan="2" class="diff-lineno">Line 53:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Hackathon - G. Staffelbach, CERFACS ===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Hackathon - G. Staffelbach, CERFACS ===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* '''Participants: I. d'Ast, J. Legaux, G. Staffelbach, P. Begou, G. Lartigue, V. Moureau, A. Toure, C. Laurie, S. Delamare, C. Andrieu, C. Jourdain'''</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* '''Participants: I. d'Ast, J. Legaux, G. Staffelbach, P. Begou, G. Lartigue, V. Moureau, A. Toure, C. Laurie, S. Delamare, C. Andrieu, C. Jourdain'''</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>While hybrid CPU/GPU computing has seen growing interest in the CFD community, AMD GPU hardware is a newcomer for this application. This hackathon was the opportunity to deep dive into the AMD development environment and to prepare the arrival of AdAstra at CINES, a new super-computer which relies on AMD CPU and GPU hardware. Two flagship codes of the applied CFD community, namely YALES2 and AVBP, have been ported to the AOMP framework using ROCm 4.5 on the GRID5000 Neowise system. This machine [https://www.grid5000.fr/w/GENCI-Neowise_Usage] was donated by AMD to GENCI and INRIA to help in fighting the COVID pandemic.  </div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>While hybrid CPU/GPU computing has seen growing interest in the CFD community, AMD GPU hardware is a newcomer for this application. This hackathon was the opportunity to deep dive into the AMD development environment and to prepare the arrival of AdAstra at CINES, a new super-computer which relies on AMD CPU and GPU hardware. Two flagship codes of the applied CFD community, namely YALES2 and AVBP, have been ported to the AOMP framework using ROCm 4.5 on the GRID5000 Neowise system. This machine [https://www.grid5000.fr/w/GENCI-Neowise_Usage] was donated by AMD to GENCI and INRIA to help in fighting the COVID pandemic <ins class="diffchange diffchange-inline">and it is operated by the Grid'5000 infrastructure</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">CPU execution </del>posed no issues and we were able to focus on GPU Offloading using OpenMP.  </div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Part of the project was spent in porting the codes to the new development environment. This work </ins>posed no <ins class="diffchange diffchange-inline">real </ins>issues and <ins class="diffchange diffchange-inline">CPU execution was achieved fast so that </ins>we were able to focus on GPU Offloading using OpenMP.  </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>On the YALES2 side, <del class="diffchange diffchange-inline"> </del>a mini-app encompassing the typical YALES2 structure hierarchy and loop execution was extracted from the code to evaluate different porting strategies <del class="diffchange diffchange-inline">and on </del>the AVBP side the current OpenACC GPU offloading was translated to OpenMP focusing on the viscosity computation kernel. <del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>On the YALES2 side, a mini-app encompassing the typical YALES2 structure hierarchy and loop execution was extracted from the code to evaluate different porting strategies<ins class="diffchange diffchange-inline">. On </ins>the AVBP side<ins class="diffchange diffchange-inline">, </ins>the current OpenACC GPU offloading was translated to OpenMP focusing on the viscosity computation kernel. We learnt that the current supported standard of OpenMP in ROCm 4.5 does not allow for direct offloading of reference values inside <ins class="diffchange diffchange-inline">a </ins>derived type structure but is was possible to use aliases such as pointers or flat array copies to <ins class="diffchange diffchange-inline">offload</ins>. This should be solved with the support of OpenMP 5.0<ins class="diffchange diffchange-inline">. </ins>Another troublesome issues, was the lack of support for offloading of array vector operations  (ex : array(:) = 1.0 ) rendering the explicitation of the loops for these manadatory.  </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>We learnt that the current supported standard of OpenMP in ROCm 4.5 does not allow for direct offloading of reference values inside <del class="diffchange diffchange-inline">an </del>derived type structure but is was possible to use aliases such as pointers or flat array copies to <del class="diffchange diffchange-inline">do the job</del>. This should be solved with the support of OpenMP 5.0  </div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Another troublesome issues, was the lack of support for offloading of array vector operations  (ex : array(:) = 1.0 ) rendering the explicitation of the loops for these manadatory.  </div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Some bugs remain and it is encouraged to use the latest compiler version when working on the porting ( the release of flang 14.0.1 saved us a lot of time as we had started with 14.0.0 ).</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Some bugs remain and it is encouraged to use the latest compiler version when working on the porting (the release of flang 14.0.1 saved us a lot of time as we had started with 14.0.0). Offloading of the miniapp of YALES2 yielded a times 60 acceleration of the kernel whereas the offloading of the viscosity model in a full avbp simulation yielded an 7 times factor in performance when comparing on core to one GPU. These results are to be taken with a grain of salt but are really encouraging. For the next steps, a porting strategy for both codes will be implemented (depending on the OpenMP 5 support) and discussions are underway with CINES and other partners so as to offer the best experience to both code's communities on AdAstra at its release.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Offloading of the miniapp of YALES2 yielded a times 60 acceleration of the kernel whereas the offloading of the viscosity model in a full avbp simulation yielded an 7 times factor in performance when comparing on core to one GPU. These results are to be taken with a grain of salt but are really encouraging. <del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> </div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>For the next steps, a porting strategy for both codes will be implemented (depending on the OpenMP 5 support ) and discussions are underway with CINES and other partners so as to offer the best experience to both code's communities on AdAstra at its release.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Combustion - K. Bioche, VUB  ===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Combustion - K. Bioche, VUB  ===</div></td></tr>
</table>Moureauvhttps://ecfd.coria-cfd.fr/index.php?title=Ecfd:ecfd_5th_edition&diff=451&oldid=prevMoureauv: /* Hackathon - G. Staffelbach, CERFACS */2022-02-03T00:12:02Z<p><span dir="auto"><span class="autocomment">Hackathon - G. Staffelbach, CERFACS</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='en'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 00:12, 3 February 2022</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l53" >Line 53:</td>
<td colspan="2" class="diff-lineno">Line 53:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Hackathon - G. Staffelbach, CERFACS ===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Hackathon - G. Staffelbach, CERFACS ===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* '''Participants: I. d'Ast, J. Legaux, G. Staffelbach, P. Begou, G. Lartigue, V. Moureau, A. Toure, C. Laurie, S. Delamare, C. Andrieu, C. Jourdain'''</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* '''Participants: I. d'Ast, J. Legaux, G. Staffelbach, P. Begou, G. Lartigue, V. Moureau, A. Toure, C. Laurie, S. Delamare, C. Andrieu, C. Jourdain'''</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">AMD </del>GPU <del class="diffchange diffchange-inline">hardware is still relatively unknown </del>in <del class="diffchange diffchange-inline">our </del>CFD community. This hackathon was the opportunity to deep dive into the AMD <del class="diffchange diffchange-inline">dev </del>environment to prepare the arrival of AdAstra at CINES. <del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">While hybrid CPU/</ins>GPU <ins class="diffchange diffchange-inline">computing has seen growing interest </ins>in <ins class="diffchange diffchange-inline">the </ins>CFD community<ins class="diffchange diffchange-inline">, AMD GPU hardware is a newcomer for this application</ins>. This hackathon was the opportunity to deep dive into the AMD <ins class="diffchange diffchange-inline">development </ins>environment <ins class="diffchange diffchange-inline">and </ins>to prepare the arrival of AdAstra at CINES<ins class="diffchange diffchange-inline">, a new super-computer which relies on AMD CPU and GPU hardware</ins>. <ins class="diffchange diffchange-inline">Two flagship codes of the applied CFD community, namely YALES2 </ins>and AVBP<ins class="diffchange diffchange-inline">, </ins>have been ported to the AOMP framework using ROCm 4.5 on the GRID5000 Neowise system. <ins class="diffchange diffchange-inline">This machine [https://www.grid5000.fr/w/GENCI-Neowise_Usage] was donated by AMD to GENCI and INRIA to help in fighting the COVID pandemic. </ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">Both  YALES </del>and AVBP have been ported to the AOMP framework using ROCm 4.5 on the GRID5000 Neowise system. <del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>CPU execution posed no issues and we were able to focus on GPU Offloading using OpenMP.  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>CPU execution posed no issues and we were able to focus on GPU Offloading using OpenMP.  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>On the YALES2 side,  a mini-app encompassing the typical YALES2 structure hierarchy and loop execution was extracted from the code to evaluate different porting strategies and on the AVBP side the current OpenACC GPU offloading was translated to OpenMP focusing on the viscosity computation kernel.   </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>On the YALES2 side,  a mini-app encompassing the typical YALES2 structure hierarchy and loop execution was extracted from the code to evaluate different porting strategies and on the AVBP side the current OpenACC GPU offloading was translated to OpenMP focusing on the viscosity computation kernel.   </div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l63" >Line 63:</td>
<td colspan="2" class="diff-lineno">Line 63:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Offloading of the miniapp of YALES2 yielded a times 60 acceleration of the kernel whereas the offloading of the viscosity model in a full avbp simulation yielded an 7 times factor in performance when comparing on core to one GPU. These results are to be taken with a grain of salt but are really encouraging.   </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Offloading of the miniapp of YALES2 yielded a times 60 acceleration of the kernel whereas the offloading of the viscosity model in a full avbp simulation yielded an 7 times factor in performance when comparing on core to one GPU. These results are to be taken with a grain of salt but are really encouraging.   </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>For the next steps, a porting strategy for both codes will be implemented (depending on the OpenMP 5 support ) and discussions are underway with CINES and other partners so as to offer the best experience to both code's communities on AdAstra at its release. <del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>For the next steps, a porting strategy for both codes will be implemented (depending on the OpenMP 5 support ) and discussions are underway with CINES and other partners so as to offer the best experience to both code's communities on AdAstra at its release.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Combustion - K. Bioche, VUB  ===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Combustion - K. Bioche, VUB  ===</div></td></tr>
</table>Moureauvhttps://ecfd.coria-cfd.fr/index.php?title=Ecfd:ecfd_5th_edition&diff=450&oldid=prevMoureauv at 00:06, 3 February 20222022-02-03T00:06:41Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='en'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 00:06, 3 February 2022</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l48" >Line 48:</td>
<td colspan="2" class="diff-lineno">Line 48:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>These mini-workshops may change and cover more or less topics. This page will be adapted according to your feedback.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>These mini-workshops may change and cover more or less topics. This page will be adapted according to your feedback.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">== Projects ==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">=== Hackathon - G. Staffelbach, CERFACS ===</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">* '''Participants: I. d'Ast, J. Legaux, G. Staffelbach, P. Begou, G. Lartigue, V. Moureau, A. Toure, C. Laurie, S. Delamare, C. Andrieu, C. Jourdain'''</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">AMD GPU hardware is still relatively unknown in our CFD community. This hackathon was the opportunity to deep dive into the AMD dev environment to prepare the arrival of AdAstra at CINES.  </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Both  YALES and AVBP have been ported to the AOMP framework using ROCm 4.5 on the GRID5000 Neowise system.  </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">CPU execution posed no issues and we were able to focus on GPU Offloading using OpenMP. </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">On the YALES2 side,  a mini-app encompassing the typical YALES2 structure hierarchy and loop execution was extracted from the code to evaluate different porting strategies and on the AVBP side the current OpenACC GPU offloading was translated to OpenMP focusing on the viscosity computation kernel.  </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">We learnt that the current supported standard of OpenMP in ROCm 4.5 does not allow for direct offloading of reference values inside an derived type structure but is was possible to use aliases such as pointers or flat array copies to do the job. This should be solved with the support of OpenMP 5.0 </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Another troublesome issues, was the lack of support for offloading of array vector operations  (ex : array(:) = 1.0 ) rendering the explicitation of the loops for these manadatory. </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Some bugs remain and it is encouraged to use the latest compiler version when working on the porting ( the release of flang 14.0.1 saved us a lot of time as we had started with 14.0.0 ).</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Offloading of the miniapp of YALES2 yielded a times 60 acceleration of the kernel whereas the offloading of the viscosity model in a full avbp simulation yielded an 7 times factor in performance when comparing on core to one GPU. These results are to be taken with a grain of salt but are really encouraging.  </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">For the next steps, a porting strategy for both codes will be implemented (depending on the OpenMP 5 support ) and discussions are underway with CINES and other partners so as to offer the best experience to both code's communities on AdAstra at its release.  </ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Combustion - K. Bioche, VUB  ===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Combustion - K. Bioche, VUB  ===</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l199" >Line 199:</td>
<td colspan="2" class="diff-lineno">Line 215:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>''*BHawC : aero-servo-elastic solver used and developped at Siemens Gamesa Renewable Energy for wind turbine design and certification</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>''*BHawC : aero-servo-elastic solver used and developped at Siemens Gamesa Renewable Energy for wind turbine design and certification</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>''</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>''</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">=== Hackathon - G. Staffelbach, CERFACS ===</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">* '''Participants: I. d'Ast, J. Legaux, G. Staffelbach, P. Begou, G. Lartigue, V. Moureau, A. Toure, C. Laurie, S. Delamare, C. Andrieu, C. Jourdain'''</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">AMD GPU hardware is still relatively unknown in our CFD community. This hackathon was the opportunity to deep dive into the AMD dev environment to prepare the arrival of AdAstra at CINES.  </del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">Both  YALES and AVBP have been ported to the AOMP framework using ROCm 4.5 on the GRID5000 Neowise system.  </del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">CPU execution posed no issues and we were able to focus on GPU Offloading using OpenMP. </del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">On the YALES2 side,  a mini-app encompassing the typical YALES2 structure hierarchy and loop execution was extracted from the code to evaluate different porting strategies and on the AVBP side the current OpenACC GPU offloading was translated to OpenMP focusing on the viscosity computation kernel.  </del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">We learnt that the current supported standard of OpenMP in ROCm 4.5 does not allow for direct offloading of reference values inside an derived type structure but is was possible to use aliases such as pointers or flat array copies to do the job. This should be solved with the support of OpenMP 5.0 </del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">Another troublesome issues, was the lack of support for offloading of array vector operations  (ex : array(:) = 1.0 ) rendering the explicitation of the loops for these manadatory. </del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">Some bugs remain and it is encouraged to use the latest compiler version when working on the porting ( the release of flang 14.0.1 saved us a lot of time as we had started with 14.0.0 ).</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">Offloading of the miniapp of YALES2 yielded a times 60 acceleration of the kernel whereas the offloading of the viscosity model in a full avbp simulation yielded an 7 times factor in performance when comparing on core to one GPU. These results are to be taken with a grain of salt but are really encouraging.  </del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">For the next steps, a porting strategy for both codes will be implemented (depending on the OpenMP 5 support ) and discussions are underway with CINES and other partners so as to offer the best experience to both code's communities on AdAstra at its release.  </del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><!--</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><!--</div></td></tr>
</table>Moureauvhttps://ecfd.coria-cfd.fr/index.php?title=Ecfd:ecfd_5th_edition&diff=449&oldid=prevBalarac: /* Thematics / Mini-workshops */2022-02-02T21:56:11Z<p><span dir="auto"><span class="autocomment">Thematics / Mini-workshops</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='en'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 21:56, 2 February 2022</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l77" >Line 77:</td>
<td colspan="2" class="diff-lineno">Line 77:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Static and dynamic mesh adaptation - G. Balarac, LEGI ===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Static and dynamic mesh adaptation - G. Balarac, LEGI ===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">* '''Sub-project 1: Anisotropic mesh adaptation in YALES2 (A. Grenouilloux, A. Stock, G. Lartigue, G. Balarac, A. Froehly, C. Dapogny, J. Leparoux)'''</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Mesh adaptation based on isotropic meshes is now a mature tool in YALES2 based on the Mmg library. In many configurations, a significant gain in terms of computational cost can be expected through the use of anisotropic mesh. However, this requires to address several aspects: (i) the ability to generate anisotropic meshes via the coupling between YALES2 and Mmg, (ii) to define an anisotropic metric adapted to the simulated flow, and (iii) to assess the properties of the numerical methods (prediction/stability) of YALES2 on such meshes. This project has addressed the two first point (see sub-project 5, in Numerics for the last one).During the workshop, a full anisotropic mesh adaptation strategy has been implemented in YALES2. Anisotropic mesh needs to prescribe a metric tensor to define the ellipsoid characterizing the anisotropic tetrahedral element. First developments were then devoted to the manipulation and the control of this metric tensor (metric intersection, graduation control, aspect ratio control, etc...). Second part of the project was devoted to the determination of an anisotropic mesh based on computed fields. The Hessian-based metric definition has been implemented for this purpose. </ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Multi-phase flows - M. Cailler, SAFRAN TECH  ===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Multi-phase flows - M. Cailler, SAFRAN TECH  ===</div></td></tr>
</table>Balarac