<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 Dan,<div class=""><br class=""></div><div class="">I don’t know if it is relevant to your problem but have you looked into the flood-fill algorithm? I haven’t used a parallel version as canned serial ones </div><div class="">(e.g., imfill in Matlab and flood_fill in python) were more than sufficient for the fairly large satellite images I was analyzing (and there are even more </div><div class="">efficient implementations <a href="https://gmd.copernicus.org/articles/9/4451/2016/" class="">available</a>). But if you really need to do this on-the-fly in MITgcm, rather than offline, I know that parallel implementations do </div><div class="">exist (e.g., <a href="https://www.sciencedirect.com/science/article/pii/S0021999118306557" class="">this</a> and <a href="https://deepai.org/publication/scan-flood-fill-scaff-an-efficient-automatic-precise-region-filling-algorithm-for-complicated-regions" class="">this</a>). </div><div class=""><br class=""></div><div class="">Best,</div><div class=""><br class=""></div><div class="">Samar</div><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Feb 9, 2022, at 3:16 PM, Daniel Goldberg <<a href="mailto:dan.goldberg@ed.ac.uk" class="">dan.goldberg@ed.ac.uk</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">thanks JM! i have talked to others who have tackled this issue as you describe.. but I do struggle to think through how to transform the simplest algorithm <a href="https://people.sc.fsu.edu/~jburkardt/f77_src/image_components/components.f" class="">i know of</a> into one that would work with EXCH, so i will proceed with gathering first and broadcasting, which might be very slow -- i will see!</div><br class=""><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 9, 2022 at 3:03 PM Jean-Michel Campin <<a href="mailto:jmc@mit.edu" class="">jmc@mit.edu</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">This email was sent to you by someone outside the University.<br class="">
You should only click on links or attachments if you are certain that the email is genuine and the content is safe.<br class="">
<br class="">
Hi Dan,<br class="">
<br class="">
I think you could collect the full (global) 2-D field on 1 proc and work with<br class="">
this. But you should be able also to design the algorithm that works on each tile<br class="">
and then, with a couple of EXCH calls, finish the work at the global level.<br class="">
But this second solution probably requires more careful coding.<br class="">
<br class="">
On the side (I don't think it's that relevant here), in term of global<br class="">
communication, I added (~ 10.y ago) a function to do a cummulative sum (cumulsum_z_tile.F).<br class="">
in case there is some similarity with your problem.<br class="">
<br class="">
Cheers,<br class="">
Jean-Michel<br class="">
<br class="">
On Wed, Feb 09, 2022 at 09:11:11AM +0000, Daniel Goldberg wrote:<br class="">
> thanks very much martin. this should be possible to use directly.<br class="">
><br class="">
> best<br class="">
> dan<br class="">
><br class="">
> On Wed, Feb 9, 2022 at 8:01 AM Martin Losch <<a href="mailto:Martin.Losch@awi.de" target="_blank" class="">Martin.Losch@awi.de</a>> wrote:<br class="">
> ><br class="">
> > Hi Dan,<br class="">
> ><br class="">
> > I am not aware of any implementation of that within the MITgcm.<br class="">
> ><br class="">
> > There are gather and scatter routines in eesupp/src, e.g. gather_2d_r8.F<br class="">
> ><br class="">
> > Martin<br class="">
> ><br class="">
> > > On 7. Feb 2022, at 14:25, Daniel Goldberg <<a href="mailto:dan.goldberg@ed.ac.uk" target="_blank" class="">dan.goldberg@ed.ac.uk</a>> wrote:<br class="">
> > ><br class="">
> > > Hello -<br class="">
> > ><br class="">
> > > I am curious if any part of model/src or a package implements an<br class="">
> > > algorithm to identify connected regions of a 2D (or 3D) array?<br class="">
> > ><br class="">
> > > If not, i feel this might be best solved in serial, and am wondering<br class="">
> > > if there are utilities to gather processor tiles to a single 2D array<br class="">
> > > (and broadcast such an array to tiles) that should be used or are<br class="">
> > > ideal to use. I am aware that something like this must be done with<br class="">
> > > useSingleCpuIO but am not sure if this is the best template to follow.<br class="">
> > ><br class="">
> > > Many thanks<br class="">
> > > Dan<br class="">
> > ><br class="">
> > > --<br class="">
> > > Daniel Goldberg, PhD (he/him)<br class="">
> > > Reader in Glaciology<br class="">
> > > School of Geosciences, University of Edinburgh<br class="">
> > > Geography Building, Drummond Street, Edinburgh EH8 9XP<br class="">
> > ><br class="">
> > ><br class="">
> > > em: <a href="mailto:dan.goldberg@ed.ac.uk" target="_blank" class="">dan.goldberg@ed.ac.uk</a><br class="">
> > > web: <a href="https://www.geos.ed.ac.uk/homes/dgoldber" rel="noreferrer" target="_blank" class="">https://www.geos.ed.ac.uk/homes/dgoldber</a><br class="">
> > > The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. Is e buidheann carthannais a th??? ann an Oilthigh Dhùn Èideann, clàraichte an Alba, àireamh clàraidh SC005336.<br class="">
> > > _______________________________________________<br class="">
> > > MITgcm-support mailing list<br class="">
> > > <a href="mailto:MITgcm-support@mitgcm.org" target="_blank" class="">MITgcm-support@mitgcm.org</a><br class="">
> > > <a href="http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support" rel="noreferrer" target="_blank" class="">http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support</a><br class="">
> ><br class="">
> > _______________________________________________<br class="">
> > MITgcm-support mailing list<br class="">
> > <a href="mailto:MITgcm-support@mitgcm.org" target="_blank" class="">MITgcm-support@mitgcm.org</a><br class="">
> > <a href="http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support" rel="noreferrer" target="_blank" class="">http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support</a><br class="">
> _______________________________________________<br class="">
> MITgcm-support mailing list<br class="">
> <a href="mailto:MITgcm-support@mitgcm.org" target="_blank" class="">MITgcm-support@mitgcm.org</a><br class="">
> <a href="http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support" rel="noreferrer" target="_blank" class="">http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support</a><br class="">
_______________________________________________<br class="">
MITgcm-support mailing list<br class="">
<a href="mailto:MITgcm-support@mitgcm.org" target="_blank" class="">MITgcm-support@mitgcm.org</a><br class="">
<a href="http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support" rel="noreferrer" target="_blank" class="">http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support</a><br class="">
</blockquote></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>