1 process, 2 threads, how many cpus?
julian at elischer.org
Mon Nov 28 04:10:53 GMT 2005
Nicolas Blais wrote:
>As I was looking around the net for some information on pthreading in FreeBSD,
>I came across something that got my attention:
>"The native user threads cannot concurrently run more than one thread on
>separate processors at one time. If you are running a single process with
>multiple CPU-intensive threads in hopes of utilizing multiple processors, you
>must use Linuxthreads to get this performance."
>Is this still applicable now (FreeBSD 5.4/6/CURRENT)?
>I'm writing a software that runs 1 process and multiple threads (with pthread)
>that performs calculations and I was wondering if on a SMP system the threads
>will run on an independant cpu. It would be quite pointless to have all
>threads of the same process sharing a single cpu.
>Also, no matter how many threads I create within a process, 'top' only reports
>2 threads. The following 'top' run reports my software ('aite') as using 2
>threads (when it actually created 4):
so, what version of FreeBSD are you running?
how many processors do you have?
which threading library are you using?
With libpthread you only create as amny kernel threads as you need at
threads suspended in userland do not have associated kernel threads.
>CPU states: 99.2% user, 0.0% nice, 0.8% system, 0.0% interrupt, 0.0% idle
>Mem: 257M Active, 1422M Inact, 189M Wired, 85M Cache, 112M Buf, 49M Free
>Swap: 2000M Total, 2000M Free
> PID USERNAME THR PRI NICE SIZE RES STATE TIME WCPU COMMAND
>89728 nicblais 2 20 0 4420K 2384K ksesig 0:18 77.44% aite
>Any insight appreciated,
More information about the freebsd-threads