Proposal: Refactor vtkMultiProcessController
Multiprocess controller is great for abstracting MPI/Socket communication in VTK filters. The implementation, however, is dated and should be modernized to make it easier to debug and extend.
move to a
Common/module. Filters should start using parallel communicators without hindrance.
- make dependency of IO/Legacy optional. Exchanging of data-object should raise compile-time errors unless IO/Legacy was dependend on. Thus, delay dependency on IO modules until the code that starts exchanging data objects.
- separate RPC/RMI and communication APIs. It's unclear why they need to be in the same class.
- make it possible to serialize custom types with ease.
use templates to preserve element type all the way to
MPI_...call. Currently, we cast to void* and call some generic method that does the MPI call.