Thread[] t = new Thread[coll.size()];
for (int i = 0; i < t.length; ++i) {
final int rank = i;
t[i] = new Thread(new Runnable() {
public void run() {
Communicator comm = coll.createCommunicator(rank);
comm.allReduce(send[rank], recv[rank], Reductions.sum());
}
});
t[i].start();
}