1. 22 May, 2020 1 commit
    • Alexis SALZMAN's avatar
      [xGraph] add dist BFS+nodeTo API chg+use xExportStringDist · ea2ae6b7
      Alexis SALZMAN authored
      nodeAndConnectedEdgeDistInternal.h
      ==================================
      Replace IO with MPIIO by a call to xExportStringDist
      
      nodeAndConnectedEdge.h
      ======================
      Add xxVisited methods to class nodeTo. Dirty friend functions are
      not friend anymore as they now use new public API.
      
      nodeAndConnectedEdgeDist.h
      ==========================
      Add distributed breath first search (BFS) function with one unique
      source across a distributed oriented graph. This function is template on graph
      description ( but mainly use nodeTo graph API) and exchanger/functor run
      has call-back to do appropriate communication/work on each node/edge
      traversal. It aims to be rather generic.
      From a scaling point of view performance will certainly remain poor if
      the chosen source do not span on part of the graph shared by all the
      processes. Next move on that topic will be to implement many source BFS
      strategy that probably will covers more graph part and thus more
      processes. Communication will be higher but processes will have all
      something to do. And communication will be amortized (larger msg)
      
      This new function has been successfully tested with graph created by FM.
      Nevertheless a dedicated test case should be added.TODO
      
      Xfiles_dependence.dot
      =====================
      Update with FM->xGraph->xTool dependency
      ea2ae6b7
  2. 16 Mar, 2020 1 commit
    • Alexis SALZMAN's avatar
      [xGraph] turn exportDot into a parallel MPIIO export function + API change · e44f8de7
      Alexis SALZMAN authored
      exportDot is now working with MPIIO io library. If called with
      MPI-com_self or a mono process communicator it output a full undirected
      graph without parallel information. If called with many process each
      containing part of undirected graph it encapsulate each part in a
      subgraph named with the process id. If node ID is unique across process
      common nodes are unique among the representation obtain with dot but
      connection do exist in between subgraph(process).
      Function API is now reacher. User must at least give something to
      associate KEYTYPE object to a unique id. It represents the node
      id in the graph associated to the key. Optionally user may set a
      specific label to each node and a weight label to each edges.
      
      Some new methods have been added to nodeTo class (one avoid exportDot
      to becomes a friend function of the class).
      e44f8de7
  3. 04 Mar, 2020 1 commit
    • Alexis SALZMAN's avatar
      [xGraph] introduce a new xGraph library dedicated to home made basic graph algo · 24ca5345
      Alexis SALZMAN authored
      This commit introduce two small graph structures to treat specific weighted
      oriented graph:
      nodeTo graph are made of nodes that know there outgoing edges
      nodeFrom graph are made of nodes that know there incoming edges
      
      Both class are constituting a graph by using eXlibris DATAMANGER concept
      to associate to key a graph node.
      Both class hold some information on nodes and edges.
      
      Typical usage of those graph are linked to mesh traversal. For example
      if the keys (graph nodes) are vertex we can create a graph that impose
      mesh traversal through edges of this graph that can be mesh edges or
      mesh element or ...
      Or if the keys (graph nodes) are elements we can create a graph that
      impose traversal through edges of this graph that can be element
      connection, .... And this way the traversal in the mesh is done
      from mesh element to mesh element.
      
      This library is very experimental and its API is subject to changes in
      near future
      24ca5345