Optimizing Communication for CPU/GPU Nodes