[ydl-gen] Linux yellow dog manual for dummies

Rob Sanders rarob at travelinglightfarm.net
Fri Jan 15 10:25:36 JST 2010


Some of the code forked, but only during the setup.  Once everything  
was 'running' each of the processes were persistent, communicating  
via shared memory with posix semaphores for keeping everyone in  
sync.  We had some problems with Solaris 9 or 10 where the shared  
memory overhead was killing performance.  Worked for a bit with the  
Sun folks and never did get it resolved.  If the process was 'self- 
contained' (ie - not sharing data with other processes) then OS X  
(remember, 10.3) held its own against Linux on the same hardware.

-Rob

On Jan 14, 2010, at 8:03 PM, Robert Spykerman wrote:

> Eh.. I must have missed this thread. Bit late but I think I may know
> what is up and perhaps it is actually due to the kernel. forks
> possibly given the way Rob described the code he was running.
>
> On Sun, Dec 27, 2009 at 7:46 AM, Warren Nagourney
> <warren at phys.washington.edu> wrote:
>
>> That's very interesting, Rob. Were the apps compiled using the same
>> compilers (with the same degree of optimization) in both cases?  
>> Were the
>> time differences actual CPU time of just elapsed time?
>
> ... snip...
>
>> Another difference might be the Mach kernel that OS X uses. This  
>> hasn't been
>> talked about much, but there was a time when an OS with a  
>> monolithic kernel
>> allowed things like context switches to take place much more quickly.
>> Supposedly, the microkernel has been improved, but it is not clear  
>> how much.
>
> Actually, I was once looking into Darwin/XNU. I had to make a few
> syscalls (one of which was fork) to port something to x86 OSX. One guy
> at Apple in no uncertain terms told me what I was doing was not the
> right thing to do even though one would typically get away with it in
> linux (and I can understand why - "We reserve the right to change the
> syscalls etc..." Same thing applies in linux although it has remained
> remarkably constant there).
>
> One of the things I discovered during that brief foray into XNU was
> that forks are MUCH slower in OSX than linux and I was I don't have
> figures but there's quite a bit of mention made about that on
>
>>>> On Dec 26, 2009, at 8:09 AM, Rob Sanders wrote:
>>>>
>>>>> I haven't done much with YDL in some time as I've changed jobs,  
>>>>> but I'd
>>>>> just like to chime in that several years ago that the PPC  
>>>>> Linux's ( YDL for
>>>>> Mac, full RedHat/SuSE on some IBM OpenPower720 hardware) was  
>>>>> running rings
>>>>> around the equivalent x86 -or- Alpha based platforms we were  
>>>>> doing some work
>>>>> on.  Tried to get my bosses & customers more interested in it  
>>>>> and hit the
>>>>> wall of 'but it isn't x86'.  <sigh>.  At the time, a direct  
>>>>> comparison of
>>>>> the *same* base code on a Mac XServe G5 running on YDL4 vice OS  
>>>>> X 10.3 had
>>>>> the YDL code twice as fast as the OS X code.  Lots of double  
>>>>> precision
>>>>> floating point math, and multiple processes (not threads)  
>>>>> communicating via
>>>>> shared memory.  We would routinely max out any box we were  
>>>>> running on.
>
> That being the case if Rob Sanders's code was indeed forking a lot,
> some of the time could be accounted for here. Maybe doing stuff with
> processes in general are slower on OSX .. that far to generalize is
> probably premature without proper testing.
>
> Oh and XNU is really not a microkernel. Apple may say 'kind of' but to
> me, really if most of the stuff runs in the kernel in supervisor mode,
> it's a monolithic kernel, no matter what its hyped at, and if it
> doesn't then it isn't.
>
> Robert Spykerman
>
> -- 
> chown -R us ./base
> _______________________________________________
> yellowdog-general mailing list - yellowdog-general at lists.fixstars.com
> Unsuscribe info: http://lists.fixstars.com/mailman/listinfo/ 
> yellowdog-general
> HINT: to Google archives, try  '&lt;keywords> site:us.fixstars.com'



More information about the yellowdog-general mailing list