<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: Times New Roman; font-size: 12pt; color: #000000'>Thank you,<br>I am forwarding the message to the group<br><br><hr id="zwchr"><b>From: </b>"Kirill Terehov" <kirill.terehov@gmail.com><br><b>To: </b>"Iulian Grindeanu" <iulian@mcs.anl.gov><br><b>Sent: </b>Wednesday, April 18, 2012 6:29:24 AM<br><b>Subject: </b>Re: [MOAB-dev] exchanging sets of entities between processors in parallel<br><br><br><div><div>On Apr 17, 2012, at 7:35 PM, Iulian Grindeanu wrote:</div><br class="Apple-interchange-newline"><blockquote><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; "><div><div style="font-family: 'Times New Roman'; font-size: 12pt; color: rgb(0, 0, 0); "><br><br><hr id="zwchr"><blockquote style="border-left-width: 2px; border-left-style: solid; border-left-color: rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; position: static; z-index: auto; ">Yes, I've made it public<div><br><div id="DWT201"><div>One of the goals is to make adaptively refined mesh based on octree with repartitioning</div><div>The code I've sent to you can do initial partitioning on the same run, but can't do repartitioning</div><div><br></div><div><br></div><br></div></div></blockquote>OK, I see.<br>This is a nice problem, but I am not sure anybody did it yet using MOAB. I think we would be happy if you want to contribute your ideas. Most of the parallel communication is done in the ParallelComm class.<span class="Apple-converted-space"> </span><br><br>mesh refinement/coarsening in parallel is a difficult problem; do you rebalance or you start with a new partitioning? I don't even know if you can rebalance in parmetis. (I mean, can you start from an existing graph, modify it, and partition again, with minimal "changes"?)<span class="Apple-converted-space"> </span><br></div></div></span></span></blockquote><div><br></div><div><br></div><div>Parmetis can do what you say, there is a function for that (ParMETIS_V3_AdaptiveRepart)</div><div>But when I try to do that with moab, something goes wrong</div><div><br></div><div><br></div><div>I have also faced several issues and want to share it with you</div><div><br></div><div>1) While installing moab on <span class="Apple-style-span" style="font-family: sans-serif; ">SUSE Linux Enterprise Server 10 I've got following error:</span></div><div><font class="Apple-style-span" face="sans-serif"><br></font></div><div><div><font class="Apple-style-span" face="sans-serif">SparseTag.cpp(377): error: no default constructor exists for class "Internal::hashtable_const_iterator<std::pair<const moab::EntityHandle={size_t={unsigned long}}, void *>, false, false>"</font></div><div><font class="Apple-style-span" face="sans-serif"> SparseTag::MapType::const_iterator iter;</font></div><div><font class="Apple-style-span" face="sans-serif"> ^</font></div><div><font class="Apple-style-span" face="sans-serif"> detected during instantiation of "void moab::get_tagged(const moab::SparseTag::MapType &, Container &, moab::EntityType, const moab::Range *) [with Container=moab::Range]" at line 433</font></div></div><div><br></div><div>it was intel compiler 11.1 20101201, i've got same error with g++ 4.1.0</div><div>the problem seems to come from unordered_map class on this platform</div><div>i've successfully installed moab by removing check for this class inside configure script</div><div>probably there should be an option to omit this check or more tests for usability of this class inside configure</div><div><br></div><div>2) I attach a simple example when moab hangs inside exchange_ghost_cells</div><div>attachments are:</div><div>a. an initial mesh nmesh-0.vtk</div><div>b. mesh out.mhdf prepared by mbpart with command ./mbpart -p partgeomkway 6 nmesh-0.vtk out.mhdf</div><div>c. simple code bug.cpp that can be compiled by </div><div>mpicxx bug.cpp -lMOAB -lnetcdf</div><div>and run by</div><div>mpiexec -np 6 ./a.out out.mhdf</div><div><br></div><div>it fails to pass exchange_ghost_cells</div><div><br></div><div>I'll try to replace code for message passing inside this function</div><div>If I'll have a success I'll share it with you</div><div><br></div><br><blockquote><span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px; "><div><div style="font-family: 'Times New Roman'; font-size: 12pt; color: rgb(0, 0, 0); "><br>I will look at your code more, but I don't think I can be of much help, sorry about that.<span class="Apple-converted-space"> </span><br><br>Iulian<br><br><blockquote style="border-left-width: 2px; border-left-style: solid; border-left-color: rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; "><div></div></blockquote></div></div></span></blockquote></div><br><br><br></div></body></html>