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 <[email protected]>: > 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 >
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Search the list archives at: http://markmail.org/search/?q=ParaView Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/paraview
