[FoRK] Multicore, async segmented sequential models

Dave Long dave.long at bluewin.ch
Thu May 9 03:11:35 PDT 2013

>> Ideally, the kernel would package multiple requests and IO events  
>> on multiple connections into a message stream that could be  
>> processed in far fewer IOs,
> The way I've usually seen it done is that a single thread handles  
> the network I/O, batching up and offloading any "heavy" work to  
> other dedicated cores which only see packed message buffers. ...
> The asymmetry of core specialization means you never see all of the  
> cores running at 100% but the measured throughput is often much  
> higher than when you try to balance load to achieve 100%  
> utilization on all cores.

Our agricultural ancestors also had these kinds of problems, and  
arrived at similar solutions.  The haystack might have been[0]  
invented by someone who had the brilliant idea of interposing a buffer 
[1] between the "gather hay" process (extensive, most easily done by  
animals with thumbs) and the "transport hay to the barn" process  
(intensive, most easily done by animals which can live on said  
hay) .  Hay bales are the later, packetized, version (and round bales  
the outcome when mechanization permits fewer operations)  The  
whippletree was invented by someone who had the brilliant idea that a  
tree structure not only recursively solves the problem of load  
distribution, but, with proper adjustment, also allows the  
flexibility of hitching a heterogenous collection of draught animals  
to the hay wagon.


[0] on the other hand, the haystack could easily have come first,  
with the barn coming later (as those in less clement climates noticed  
that brawny buildings beat wimpy haystacks)
[1] minimizing waiting by decerealization?

More information about the FoRK mailing list