[MOAB-dev] exchanging sets of entities between processors in parallel
Kirill Terehov
kirill.terehov at gmail.com
Fri Apr 13 06:01:31 CDT 2012
Hello,
I'm trying to implement distribution of entities between multiple processors based on parmetis graph partitioning in parallel.
I've used moab #4.5.0 and #4.6.0pre
I've tested different approaches for exchanging entities which are
1. exchange_owned_meshs - hangs in cycle while(incoming2)
2. send_entities / recv_entities - works if # of processors is 2 otherwise hangs
3. pack_buffer / unpack_buffer
3rd one work if i don't set "store_remote_handles" flag, because otherwise it stops on following assertion while unpacking new entities:
Assertion failed: (new_ents[ind] == from_vec[i]), function get_remote_handles, file ParallelComm.cpp, line 1728.
so if i don't use store_remote_handles I obtain final distribution.
it works well if load mesh on one processor and distribute
it across many processors.
But if i load already distributed mesh, program fails on resolve_shared_ents with following errors:
Invalid entity handle: Vertex 21
Failed to get pstatus flag.
Couldn't filter on owner.
get_sent_ents failed.
Trouble resolving shared entity remote handles.
cannot resolve ents
Which is strange, because after distribution i set for all entities of all dimensions zeros for pstatus_tag, zeros for sharedh_tag and -1 for sharedp_tag
Could you help me with that problem?
More information about the moab-dev
mailing list