Universal Execution of Parallel Processes: Penetrating NATs over the Grid

Abstract

Today, clusters are very important computing resources and many computing centers manage their clusters in private networks. But parallel programs may not work in private clusters. Because hosts in private clusters are not globally reachable, hosts behind different private clusters cannot be reached directly in order to communicate. It will certainly be a huge loss of resources if private clusters are excluded from the computing due to this reason. There has been much research on this issue, but most of them concentrate on user-level relaying because it is a general and easily-implementable solution. However, even well-implemented, user-level solutions result in much longer communication latency than kernel-level solutions. This paper adopted a novel kernel-level solution and applied it to MPICH-G2. Our scheme is generally applicable, simple and efficient. The experimental results show that our scheme incurs very little overhead except when small messages are transmitted. That is, it supports a more universal computing environment by including private clusters with remarkably little overhead.