SMP vs. Beowulf?

William R. Pearson wrp at
Thu Dec 2 15:18:22 EST 1999

We have not looked into SMP vs Beowulf exhaustively, but we have quite
a bit of experience.

(1) SMP is far easier to configure and run than PVM (or MPI or
    others). You just run the program; if its threaded SMP, it runs
    faster.  SMP programs are also much easier to develop and debug.

(2) Our current PVM implementation is not as CPU efficient as spawning
    a bunch of threaded fasta33_t runs when the algorithm is fast.
    For Smith-Waterman, which is compute bound, they are equally
    efficient.  In line with point (1), I think it is easier to
    improve the performance of an SMP program.  I don't think this is
    an inherent shortcoming of PVM, but reflect the fact that our PVM
    implementaion (and very primitive scheduling system) was build
    when machines and interconnections were much slower.

(3) However, we have not yet found a version of Linux Pthreads that
    works 100% of the time.  With the kernal and C-libraries that we
    use, we see failures which are almost certainly caused by Linux
    Pthreads.  (We never see them in any other environment, and we
    don't see them unthreaded.)  Linux PVM is very reliable.

So we use both.  We use PVM for genome-vs-genome Smith-Waterman
searches, and we use SMP threaded versions for our WWW
server. Starting up PVM (or any other system that spawns large numbers
of jobs on other machines) has a high overhead, which isn't worth the
cost when the search will be done in a few minutes - we don't see
nearly as much overhead with SMP machines.  But large SMP machines are
considerably more expensive.  A cost-effective solution is a WWW
server that sends its searches to a bank of 1-CPU or 2-CPU machines.

Bill Pearson

More information about the Bio-soft mailing list