Andrea:
From the documentation I found the flow for the creation of an application code 
is the following:
1. Create a Network and register components
2. Set network size and layout
3. Set components and number of variables for nodes/edges
4. Set up the network
5. Distribute the network

Following that flow, from point 1 to point 4 the Network is "owned" only by the 
0 rank processor while after point 5 the network is partitioned and "owned" by 
the n processors involved in the computation (according to the partitioner 
used).

Correct. Currently, DMNetwork only supports sequential setup of network. I just 
started parallelizing it. I'll let you know when I'm done.

I was trying to let all the n processors involved read a portion of the network 
in such a way that the flow listed before will be a multiprocessor process and 
not restricted only to the rank 0 processor (parallel input data). In this way 
after point 4 I will have a distributed network and I don't need to call 
DMNetworkDistribute(). Unfortunately the documentation I found doesn't explain 
how to do that, so I would like to ask you if it is feasible and if you have 
some examples or documentation that you can share for this purpose.

It is not supported yet.  Internal works are needed. You may follow my 
development branch
https://bitbucket.org/petsc/petsc/branch/hzhang/pdmnetwork-setup

If you have idea/suggestions, let us know.
Hong

Reply via email to