Scalable collective message-passing algorithms