<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Senja<div class=""><br class=""></div><div class="">It can be done. </div><div class=""><br class=""></div><div class="">First turn on the exch2 package by compiling with exch2 in packages.conf</div><div class="">In SIZE.h change so nPx is the number of cores you are using and nPy = 1</div><div class="">put a data.exch2 in your run directory. </div><div class="">Here is an example</div><div class="">________________________</div><div class=""># EXCH2 Package: Wrapper-2 User Choice<br class="">#--------------------<br class=""># preDefTopol :: pre-defined Topology selector:<br class=""># :: = 0 : topology defined from processing "data.exch2";<br class=""># :: = 1 : simple, single facet topology;<br class=""># :: = 2 : customized topology (w2_set_myown_facets)<br class=""># :: = 3 : 6-facet Cube (3 face-dims: nRed, nGreen, nBlue).<br class=""># dimsFacets :: facet pair of dimensions (n1x,n1y, n2x,n2y ...)<br class=""># facetEdgeLink :: Face-Edge connectivity map:<br class=""># facetEdgeLink(i,j)=XX.1 : face(j)-edge(i) (i=1,2,3,4 <==> N,S,E,W)<br class=""># is connected to Northern edge of face "XX" ; similarly,<br class=""># = XX.2 : to Southern.E, XX.3 = Eastern.E, XX.4 = Western.E of face "XX"<br class=""># blankList :: List of "blank" tiles<br class=""># W2_mapIO :: global map IO selector (-1 = old type ; 0 = 1 long line in X<br class=""># :: 1 = compact, mostly in Y dir)<br class=""># W2_printMsg :: option for information messages printing<br class=""># :: <0 : write to log file ; =0 : minimum print ; <br class=""># :: =1 : no duplicated print ; =2 : all processes do print<br class="">#--------------------<br class=""> &W2_EXCH2_PARM01<br class=""> W2_printMsg= 0,<br class=""># preDefTopol= 0,<br class=""> W2_mapIO = 1,<br class=""> dimsFacets = NX, NY,<br class=""><div class=""> &</div><div class="">________________________</div></div><div class="">where you need to replace NX and NY by your true domain size. </div><div class=""> Nx = sNx*nSx*nPx, Ny = sNy*nSy*nPy,</div><div class=""><br class=""></div><div class="">Now run a timestep. And make sure you run where you get all your STDOUT. (i.e. #undef SINGLE_DISK_IO) You can turn this back on later if you want. </div><div class=""><br class=""></div><div class="">Once you have all your STDOUT. Run these commands</div><div class=""><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal;" class="">% GET THE BLANK TILES</div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal;" class="">grep Empty STDOUT.* > trash1.txt</div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal;" class="">%CROP BEGINNG OF THIS TEXT</div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal;" class="">sed -r 's .{47} ' trash1.txt > trash2.txt</div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal;" class="">%AND FIX THE END</div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal;" class="">sed 's/ (bi,bj= 1 1 )/, /g' trash2.txt > trash3.txt</div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal;" class="">%NOW GRAB THE TILE NUMBERS</div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal;" class="">cat trash3.txt | cut -c 1-8 > trash4.txt</div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal;" class="">%MAKE ALL ONE LINE</div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal;" class="">cat trash4.txt | tr '\n' ' ' > blanks.txt</div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal;" class="">%count how many blanks</div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal;" class="">wc -l trash4.txt </div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal; min-height: 17px;" class=""><br class=""></div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal; min-height: 17px;" class="">The output of this is how many blank tiles you have. </div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal; min-height: 17px;" class="">Now copy the blank list in blanks.txt into data.exch2. </div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal; min-height: 17px;" class="">For example if you have 19 blank tiles you would write in data.exch2:</div><div style="margin: 0px; font-stretch: normal; line-height: normal; min-height: 17px;" class=""><span style="font-size: 14px;" class=""> blankList(1:19)=1,2,3,4,5,6,7,8,9,10,19,24,28,29,30,31,32,33,34 <br class=""></span><br class=""></div><div style="margin: 0px; font-stretch: normal; line-height: normal; min-height: 17px;" class="">Then you would recompile with nPx being 19 smaller. (e.g. if it was 119, its now 100. You now only need 100 cores)</div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal; min-height: 17px;" class=""><br class=""></div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal; min-height: 17px;" class="">When you now call this executable ask for this new number of cores. It will run the exact same as before, but needs less cores</div></div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal; min-height: 17px;" class=""><br class=""></div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal; min-height: 17px;" class="">Hope this helps. I may have forgotten something so don’t hesitate to let me know if something isn’t working</div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal; min-height: 17px;" class="">Matt</div><div style="margin: 0px; font-stretch: normal; font-size: 14px; line-height: normal; min-height: 17px;" class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><br class=""><div class=""><br class=""></div><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Sep 11, 2019, at 7:51 AM, Senja Walberg <<a href="mailto:senja.w@gmail.com" class="">senja.w@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I've read in some of the documentation that it might be possible to exclude processors from needing to be allocated to tiles which do not have any fluid-containing cells in them. <div class=""><br class=""></div><div class="">Does anyone know if this can be easily done or have an example which does this?</div><div class=""><br class=""></div><div class="">Regards,<div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Senja</div></div></div>
_______________________________________________<br class="">MITgcm-support mailing list<br class=""><a href="mailto:MITgcm-support@mitgcm.org" class="">MITgcm-support@mitgcm.org</a><br class="">http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support<br class=""></div></blockquote></div><br class=""></div></body></html>