Automatically Tuning Collective Communication For One-Sided Programming Models