One of the most daunting tasks a Data Center manager can face is a large scale hardware relocation. While today’s technology often allows you to avoid physical moves – you bring new hardware online at your destination, migrate applications there and then decommission the old gear – sometimes you still have to roll up your sleeves and do some heavy lifting.
MPI implementations are large, complex beasts. By definition, they span many different layers ranging from the user-level implementation all the way down to sending 1s and 0s across a physical network medium.
However, not all MPI implementations actually “own” the code at every level. Consider: a TCP-based MPI implementation only “owns” the user-level middleware. It cannot see or change anything in the TCP stack (or below). Such an implementation is limited to optimizations at the user space level.
That being said, there certainly are many optimizations possible at the user level. In fact, user space is probably where the largest number of optimizations are typically possible. Indeed, nothing can save your MPI_BCAST performance if you’re using a lousy broadcast algorithm.
However, lower-layer optimizations are just as important, and can deliver many things that simply cannot be effected from user space.
How long do you expect your electronic gadgets to work for you? Not necessarily how long will devices last before simply breaking, but for what length of time will they usefully perform the functions that you obtained them for?
With technological advances coming faster and faster nowadays -- and older systems therefore becoming obsolete quicker and quicker - plus a growing number of devices that have to keep pace with other online systems in order to remain useful, the useful lifespan of our gadgets seems to be shrinking.
A glance around my home office provides a snapshot of how long much of my electronic paraphernalia has been in operation Read More »