[Paraview-developers] Error in sharing vtkArrayData across Paraview ranks

Cory Quammen cory.quammen at kitware.com
Fri Sep 18 17:16:47 EDT 2015


Hi Prashant,

Indeed, transmitting vtkArrayData is not currently supported in
vtkMultiProcessController. It looks like it could be supported with some
modifications to VTK, but I'm not aware of anyone working on it right now.

If you wanted to contribute support for communicating this type, you can
look at modifying vtkCommunicator.cxx by adding the data set type
VTK_ARRAY_DATA to the switch statements in

vtkCommunicator::Send(vtkDataObject* data, int remoteHandle, int tag)

and

vtkCommunicator::ReceiveDataObject(vtkDataObject* data, int remoteHandle,
int tag, int dataType)

and then modify vtkGenericDataObjectWriter.cxx to instantiate a
vtkArrayDataWriter in

void vtkGenericDataObjectWriter::WriteData()

when the input type is VTK_ARRAY_DATA.

If you can get that to work satisfactorily in your plugin, I would be happy
to review any patch you might push to VTK. See [1] for details how to
submit a patch.

Thanks,
Cory

[1] https://gitlab.kitware.com/vtk/vtk/blob/master/CONTRIBUTING.md

On Wed, Sep 16, 2015 at 5:32 AM, Prashant V <prashant.v at quest-global.com>
wrote:

> Hi,
>
> I have developed a Paraview source plugin. While running Paraview in
> parallel mode, I am trying to share a vtkArrayData from root process to
> other processes using vtkMPI send-receive. However, I am getting errors:
> 'Can not send vtkArrayData' and 'Can not receive vtkArrayData'. Is it that
> vtkArrayData is not allowed using send-receive? Is there any other
> alternative to share vtkArrayData across processes? Thanks.
>
> Below is code snippet:
>
> vtkMultiProcessController* Controller; // defined in header file
>
> Code in cxx:
>
> this->Controller = vtkMultiProcessController::GetGlobalController();
> if(this->Controller)
> {
>      this->Controller->Register(this);
> }
>
> vtkSmartPointer<vtkArrayData> masterArray;
>
> if(proc == 0) //root process
> {
>     masterArray =  from_some_method();
>     for(int p=1; p < procCount; ++p)
>     {
>          this->Controller->Send(masterArray, p, 9999);
>     }
> }
> else
> {
>     this->Controller->Receive(masterArray, 0, 9999);
> }
>
> Regards,
> Prashant
> ---Disclaimer------------------------------ This e-mail contains
> PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely for the use of the
> addressee(s). If you are not the intended recipient, please notify the
> sender by e-mail and delete the original message. Opinions, conclusions and
> other information in this transmission that do not relate to the official
> business of QuEST Global and/or its subsidiaries, shall be understood as
> neither given nor endorsed by it. Any statements made herein that are
> tantamount to contractual obligations, promises, claims or commitments
> shall not be binding on the Company unless followed by written confirmation
> by an authorized signatory of the Company.
> -----------------------------------------------------------------------------------
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Search the list archives at:
> http://markmail.org/search/?q=Paraview-developers
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/paraview-developers
>
>


-- 
Cory Quammen
R&D Engineer
Kitware, Inc.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview-developers/attachments/20150918/27fae5e9/attachment.html>


More information about the Paraview-developers mailing list