[Beowulf] multi-threading vs. MPI
landman at scalableinformatics.com
Tue Dec 11 07:40:57 PST 2007
Geoff Jacobs wrote:
> Please note that we are all speaking as developers on clusters. Although
> this is a valuable niche in the market, it is still only a niche. Even
> with workstations, systems still only come with a few cores. In this
> regime, threads are still relevant from a performance standpoint.
> Furthermore, threads (of whichever flavor) are a first class API in most
> operating systems. Until Joe Sixpack can buy Windows ZX (or whatever)
> with the new message passing system preloaded, the old system which is
> preinstalled will still be the development target of most ISVs.
This historical inertia is a killer. I have heard that lots of windows
ISVs had balked at doing 64 bit CCS ports due to the fact that their
code already ran on windows. This is one of the problems SGI faced with
32 bit code during the 32->64 bit transition. Many users of AMD
Opterons in 2004-2005 were completely unaware of any performance
advantage they got, effectively for free, by recompiling their code for
64 bit vs 32 bit. We still have many customers happily using 32 bit
software (pre-compiled) on 64 bit hardware and OSes, as it is a path of
With OpenMP now part of gcc (as of 4.2, and there should be a nice
little article about using this coming out soon ... cough cough) I would
expect to see a great deal more interest in using it for multi-core
programming from people with serial codes or codes that could
potentially take advantage of multiple threads.
Large cluster programming will always need an MPI or MPI-like system.
Small SMP programming might have easier to use alternatives that are
"good enough". That "good enough" factor is not one to be discounted
lightly, you do so at your own peril.
Joseph Landman, Ph.D
Founder and CEO
Scalable Informatics LLC,
email: landman at scalableinformatics.com
web : http://www.scalableinformatics.com
phone: +1 734 786 8423
fax : +1 866 888 3112
cell : +1 734 612 4615
More information about the Beowulf