Manifold
Fast batch message passing between nodes for Erlang/Elixir
...Send calls cost about 70 µs/op so doing them in a loop eventually gets too expensive. Manifold distributes the work of sending messages to the remote nodes of the PIDs, which guarantees that the sending processes at most only calls send/2 equal to the number of involved remote nodes. Manifold does this by first grouping PIDs by their remote node and then sending to Manifold.Partitioner on each of those nodes. The partitioner then consistently hashes the PIDs using :erlang.phash2/2, groups them by the number of cores, sends to child workers, and finally those workers send to the actual PIDs. ...