gigabit-clowns / xmipp4-core

Core library of xmipp4
https://gigabit-clowns.github.io/xmipp4-core/
GNU General Public License v3.0
3 stars 0 forks source link

Created host communications interface #58

Closed oierlauzi closed 1 month ago

oierlauzi commented 1 month ago

Host communications interface can be used for inter-process and/or inter-node communications. It mimics MPI's interface without being tied to it and adapting it to a more C++-like style.

This interface is only suited for host-host communications and not for device-device. In the future, a device_communicator interface will be added to achieve the later task. The reason behind this separation is that device communication APIs (e.g nccl or rccl) rely on a host communicator (e.g. MPI) for initialization. In addition, there are cases in which plain variables need to be shared across peers without any fancy in-device buffer abstraction.

Thus, the purpose of the host communicator interface is to coordinate nodes and help device communicators

Once this PR is merged, we can start creating the MPI plugin

The TODO in this PR needs to be modified once it has been merged with https://github.com/gigabit-clowns/xmipp4-core/pull/56

oierlauzi commented 1 month ago

@Ratolon IDEM as in the other PR