Optimizing Latency in Beowulf Clusters