multicore processing question

Adam Vande More amvandemore at gmail.com
Wed Mar 17 19:16:51 UTC 2010


On Wed, Mar 17, 2010 at 1:02 PM, Zepeda, Herbey <Herbey.Zepeda at atg.in.gov>wrote:

> Hi,
>
> I'm relatively new to FreeBSD and have had a hard time get to the right
> information relating multicore processing. I hope someone can give me some
> pointers.
>
> I have a two core processor and FreeBSD (latest stable release).
>
> Question:
>
> If I have a c program that creates child processes with fork and exec (in a
> non blocking way), will the child processes be executed by FreeBSD in
> parallel using the different cores without me having to do special
> synchronization arrangements to my program?
>

Well probably...processes are automatically on SMP kernels so a basic
example is if you have 2 cores and 2 processes which are each utilizing 100%
of cpu time, then each process would be assigned to a separate core.
However in practice executions states are much more complicated and both
processes may be assigned to a single core under certain conditions eg one
is in a sleep state.  The short story is this is all handled automatically,
and many applications run just fine without any further tweaking


> Will I need threads instead of processes?
>

Really depends on your need, but in general properly creating threaded safe
applications is significantly harder(at least to my understanding, I don't
do it).  If you need to use this route, you can check out
http://www.osnews.com/story/22152/Apple_Releases_Grand_Central_Dispatch_as_Open_Source

It's available on FreeBSD.

-- 
Adam Vande More


More information about the freebsd-questions mailing list