[Paraview] Can a collaborative client share a pipeline without creating a view itself?

Peter Debuchev peterdebuchev at gmail.com
Fri Jun 17 05:08:55 EDT 2016


Dear Utkarsh,
thank you for these very clear explanations and for offering to fix the
issue with loading the initial collaboration state. Although I had
understood that data sources can only be created by the master, it wasn't
obvious to me that the same holds for views. I think I have a better
understanding now.

Concerning the master-slave differentiation I will have some questions in
the near future. Maybe you can quickly answer some thoughts on this topic
so that I don't follow the wrong path. I would like to implement "real"
collaboration where the master can allow selected clients to change the
rendering pipeline themselves. I don't see a contradiction why noone
besides the master should modify the pipeline if the state is properly
synchronized among all participants, do you?
I can imagine two or three options how to achieve this more open
collaboration without changing too much of the paraview design:
1) Let the master promote any slave to "temporary" master on request and
expect the temporary master to promote the original master again after
finishing the pipeline modification. Pro: easy implementation, Con:
problematic if original master is not promoted again for any reason.
2) Let the master modify the pipeline on behalf of slave requests. Slaves
would stream their requests to the master who actually performs the
requested changes. Pro: clean solution, Con: more complex implementation
3) Weaken the master-slave differentiation in a way that every participant
gets certain rights for modifications. Con: probably too many side effects
Can you recommend ad hoc, whether any of the approaches sound reasonable or
something similar is maybe already implemented?

Finally, I believe that I will have to dive into message passing between
paraview clients, soon. Not exactly talking about MPI, but rather in the
style of the collaboration messages that ParaView sends around, although I
am not familiar with any of the details. I would need something like "Hey
Master, please add this source X to the pipeline, append filter Y. And
notify me when you're done."
Do you happen to remember some blog post, tutorial or documentation that
gives any introduction how this can be done using ParaView classes?

Thanks a lot
Peter


2016-06-16 21:41 GMT+02:00 Utkarsh Ayachit <utkarsh.ayachit at kitware.com>:

> Peter,
>
> In ParaView's collaboration support there's the notion of a master and
> everyone else. The first client that connects to the pvserver is the
> "master" by default. The master is the only one that should create new
> proxies. This doesn't preclude the other clients from not creating new
> proxies, but if they do, things start acting funny. Also all client
> have exactly the same views as the proxy. They can be showing a
> different camera, but not have different number of views or types of
> views etc.
>
> > If I compile the example with "USEVIEW" defined in the beginning,
> > a) Starting in the order pvserver->example->ParaView, ParaView reports
> "This
> > code may not work in multi-clients mode. Could not locate server on which
> > the source is being added." and shows the sphere in the renderer, but
> not in
> > the pipeline panel.
>
> There seems to be a bug where the ParaView client has trouble loading
> existing state from another client. It seems to work as expected if
> the "master" starts creating sphere etc. after the other client has
> connected.
>
> > c) Starting in the order pvserver->example->ParaView, ParaView reports
> > "Could not locate server on which the source is being added." and shows
> > nothing.
>
> Same issue as (a).
>
> > d) Starting in the order pvserver->ParaView->example, ParaView shows
> "Sph1"
> > in the pipeline panel, but nothing in the renderer.
>
> In this case your non-master example has created a view which is not
> supported.
>
> > Why does the Sphere not show up in ParaView's pipeline panel in case a)?
>
> A bug in loading initial collaboration state.
>
> > Why does the Sphere show up in ParaView's pipeline panel, but not in the
> > renderer in case d)?
>
> You're showing sphere in a view not known to master.
>
> > And what does "This code may not work in multi-clients mode" and "Could
> not
> > locate server on which the source is being added" exactly wnat to tell
> me?
>
> Proxies are being created before the session was "ready for use". Like
> I said, collaboration isn't being used actively in production so such
> issues are expected. Since I don't have active projects funding this,
> I will try to track down the bug exposed by (a) and give you a fix
> over the weekend if I can.
>
> Utkarsh
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview/attachments/20160617/c77d8b2b/attachment-0001.html>


More information about the ParaView mailing list