Bradley, You call then through a blocking MPI function, the operation is therefore completed by the time you return from the MPI call. So, short story you should be safe calling the dost_graph_create in a loop.
The segfault indicates a memory issue with some of the internals of the treematch. Do you have an example that reproduces this issue so that I can take a look and fix it ? Thanks, George. On Mon, Apr 6, 2020 at 11:31 AM Bradley Morgan via devel < devel@lists.open-mpi.org> wrote: > Hello OMPI Developers and Community, > > I am interested in investigating dynamic runtime optimization of MPI > topologies using an evolutionary approach. > > My initial testing is resulting in segfaults\sigabrts when I attempt to > iteratively create a new communicator with reordering enabled, e.g… > > [88881] Signal: Segmentation fault: 11 (11) > [88881] Signal code: Address not mapped (1) > [88881] Failing at address: 0x0 > [88881] [ 0] 0 libsystem_platform.dylib 0x00007fff69dff42d > _sigtramp + 29 > [88881] [ 1] 0 mpi_island_model_ea 0x0000000100000032 > mpi_island_model_ea + 50 > [88881] [ 2] 0 mca_topo_treematch.so 0x0000000105ddcbf9 > free_list_child + 41 > [88881] [ 3] 0 mca_topo_treematch.so 0x0000000105ddcbf9 > free_list_child + 41 > [88881] [ 4] 0 mca_topo_treematch.so 0x0000000105ddcd1f > tm_free_tree + 47 > [88881] [ 5] 0 mca_topo_treematch.so 0x0000000105dd6967 > mca_topo_treematch_dist_graph_create + 9479 > [88881] [ 6] 0 libmpi.40.dylib 0x00000001001992e0 > MPI_Dist_graph_create + 640 > [88881] [ 7] 0 mpi_island_model_ea 0x00000001000050c7 > main + 1831 > > > I see in some documentation where MPI_Dist_graph_create is not interrupt > safe, which I interpret to mean it is not really designed for iterative use > without some sort of safeguard to keep it from overlapping. > > I guess my question is, are the topology mapping functions really meant to > be called in iteration, or are they meant for single use? > > If you guys think this is something that might be possible, do you have > any suggestions for calling the topology mapping iteratively or any hints, > docs, etc. on what else might be going wrong here? > > > Thanks, > > Bradley > > > > > >