<div dir="ltr"><div class="gmail_default" style="font-family:comic sans ms,sans-serif;color:#38761d">You can also use the <a href="https://github.com/NCAR/ParallelIO">PIO</a> library to make these settings runtime tuneable. </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jun 15, 2018 at 8:55 AM, Latham, Robert J. <span dir="ltr"><<a href="mailto:robl@mcs.anl.gov" target="_blank">robl@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Fri, 2018-06-15 at 10:58 +0200, Patrick Marsaleix wrote:<br>
> Hello<br>
> <br>
> I use pnetcdf. In my program, all the cores perform the same<br>
> operations simultaneously, for example<br>
> <br>
> status=nfmpi_put_vara_real_<wbr>all(ncid,varid,start,edge,<wbr>anyvar3d)<br>
> <br>
> I wish now that some cores do not perform this operation (or<br>
> transforms it as a virtual operation), but in my program this results<br>
> in immobilizing the mpi process. Is there a way to do it?<br>
<br>
</span>You have a few options. Here are my suggestions in decending order of<br>
"goodness" (best idea first):<br>
<br>
- Every process in the communicator must call the routine, but not<br>
every process needs to contribute I/O. The processes that you do not<br>
wish to do anything should pass an 'edge' array of all zeros.<br>
<br>
- Instead of COMM_WORLD, create a sub-communicator containing only the<br>
participating processes.<br>
<br>
- Wrap the call with begin_indep / end_indep -- you will likely see<br>
very poor performance, but it won't hang.<br>
<br>
==rob<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div><div>Jim Edwards<br><br></div><font size="1">CESM Software Engineer<br></font></div><font size="1">National Center for Atmospheric Research<br></font></div><font size="1">Boulder, CO</font> <br></div></div>
</div>