A Self-adaptive network architecture for InfiniBand based HPC clouds