[Beowulf] automount on high ports

Perry E. Metzger perry at piermont.com
Wed Jul 2 09:33:06 PDT 2008


"Robert G. Brown" <rgb at phy.duke.edu> writes:
> On Wed, 2 Jul 2008, Perry E. Metzger wrote:
>> By the way, you can now design daemons to handle tens of thousands of
>> simultaneous connections with clean event driven design on a modern
>> multiprocessor with plenty of memory. This is way off topic, though.
>
> Not on a cluster list.

Well, it actually kind of is. Typically, a box in an HPC cluster is
running stuff that's compute bound and who's primary job isn't serving
vast numbers of teeny high latency requests. That's much more what a
web server does. However...

> I've written forking daemons (which is why I should have known, or
> remembered, about the four-tuple thing:-) because they are an essential
> component of IPCs in a network-based cluster or cluster distributed
> apps.

One is best off *not* forking, actually. There's a good site on
concurrency management for high performance servers. It is a bit old
now but covers the topic well: http://www.kegel.com/c10k.html

Myself, I'm a believer in event driven code. One thread, one core. All
other concurrency management should be handled by events, not by
multiple threads. Thread context switching is very very expensive, and
threads are very expensive. Doing event driven programming wins
overwhelmingly in such contexts.  It is hard to impossible, on a
modern machine, to handle tens of thousands of connections with
forking or threads, but it is easy with events.

I'm a fan of Niels Provos' "libevent" for such purposes. There are a
lot of other libraries that plug in to it well, too.

-- 
Perry E. Metzger		perry at piermont.com



More information about the Beowulf mailing list