Overlapping computation and communication: Barrier algorithms and ConnectX-2 CORE-Direct capabilities