Is it possible to make -lpthread program to use 100% CPU?

Alexandre Sunny Kovalenko Alex.Kovalenko at verizon.net
Sat May 1 10:27:27 PDT 2004


On Thu, 29 Apr 2004 17:16:21 +0200
Ivan Voras <ivoras at fer.hr> wrote:

> Alexandre Sunny Kovalenko wrote:
> 
> > Alternatively, if there is a need to test a patch or time a program 
> > in this environment, it could easily be accomplished -- it is a non-
> > production box.
> 
> Could you turn off Hyperthreading and report any changes?
> 
> 
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"

I have updated my system to the latest CTM mailing on Friday (4/30) morning (EST).
This includes version 1.176 of kern_thread.c.

I have turned off hyperthreading and got result, which muddles me rather -- try
as I might, with -lpthread I could not get past 50% CPU utilization (as reported 
by 'top') and  number of computations per second matching that (number is very 
close to that  for running single-threaded). Top report with thread view enabled
shows that both KSE are bound to CPU 0 (if I am interpreting C column properly).

Program, built with -lthr, maxed CPU for two threads and more with consistent 
increase in number of computations.

Machine is dual 2.4GHz Xeon, HT capable.

When I have enabled Hyperthreading again, the main impact of the update seems to 
be that 'top' reports 100% CPU utilization with either -lthr or -lpthread for 
four and more threads, however number of computations per second for program
built with -lpthread is about 30% lower then same for program built with -lthr
(~270,000 for -lpthread vs. ~370,000 for -lthr). Results are consistent across
short runs (~1 minute per run) and long runs (~1 hr per run).

Any suggestions, including RTFM (with pointer to FM) would be appreciated greatly.

Again, if someone needs something tested on this box, let me know.

Oh, yes -- last round of tests was round with SCHED_ULE only.

-- 
Alexandre "Sunny" Kovalenko.


More information about the freebsd-current mailing list