<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Hi Martin, I agree that asyncio is invasive and configuration-specific and that
<div class="">what you suggest would be an improvement in terms of usability and portability.
<div class="">
<div class="">Bron Nelson has cleaned up his asyncio code somewhat compared to what</div>
<div class="">is checked in MITgcm_contrib but I have not had time to test it and the code</div>
<div class="">remains invasive and configuration-specific.</div>
</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">Definitely the usesinglecpuio flag is not very efficient as core count increases.</div>
<div class="">Way back (<a href="http://ecco2.org/manuscripts/2007/Hill_etal_07_SciProg.pdf" class="">http://ecco2.org/manuscripts/2007/Hill_etal_07_SciProg.pdf</a>)</div>
<div class="">Chris and I used the capability of MITgcm to run in mixed memory model</div>
<div class="">to force model to do I/O from 1 core per shared memory set of processors.</div>
</div>
<div class=""><br class="">
</div>
<div class="">For asyncio we reserve extra CPU cores that just do I/O.</div>
<div class="">
<div class="">So for example let’s say we run an MITgcm configuration that</div>
<div class="">requires 19023 cores and submit jobs with "mpiexec -n 20400 mitgcmuv”.</div>
<div class="">This would set aside 1377 cores just for doing I/O.  During initialization,</div>
<div class="">asyncio spreads these 1377 cores across all the available nodes that</div>
<div class="">are being used by MITgcm for computations.  Let’s say that the 20400</div>
<div class="">cores are from 1020 nodes with 20 cores each, the 1377 I/O cores</div>
<div class="">will be distributed 1 core per node for 663 nodes and 2 cores per node</div>
<div class="">for 357 nodes.</div>
<div class=""><br class="">
</div>
<div class="">Dimitris</div>
<div class="">
<div class=""><br class="">
<div>
<blockquote type="cite" class="">
<div class="">On Aug 11, 2017, at 12:26 AM, Martin Losch <<a href="mailto:Martin.Losch@awi.de" class="">Martin.Losch@awi.de</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Hi
 Dimitris,</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">one
 of the reasons why I suggested this is that the stuff in code-async seems so invasive and configuration specific to me, whereas what I suggest should work without too many changes in the code (but I am not so sure about that).</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">But,
 honestly, I don’t really understand how the "code-async” works. Do you reserve extra node(s) for this or do you reserve extra cpus on nodes that are already used by the model run? In the latter case, it is almost exactly what I had in mind and I probably should
 stay away from it, because it is too involved (with my limited understanding of this)?</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Martin</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</div>
</div>
</body>
</html>