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

From: Daniel M. Eischen <eischen_at_vigrid.com>
Date: Sun, 02 May 2004 00:37:53 -0400
Alexandre Sunny Kovalenko wrote:
> On Sat, 1 May 2004 14:49:47 -0400 (EDT)
> Daniel Eischen <eischen_at_vigrid.com> wrote:
> 
> 
>>On Sat, 1 May 2004, Alexandre Sunny Kovalenko wrote:
>>
>>
>>>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?
>>>>
>>>
>>>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).
>>
>>Are you using system or process scope threads?
>>
>>-- 
>>Dan Eischen
>
> Sorry, should have mentioned that too. For -lthr PTHREAD_SCOPE_PROCESS is only 
> available option. For -lpthread I have tried both, and results do not differ
> much, which is what I expect on the machine that runs nothing else (unless
> I do not understand PTHREAD_SCOPE_ option).

You need to use PTHREAD_SCOPE_SYSTEM in order to get another
scheduling quantum (kse group) for each thread under libpthread.
There's no way yet to tell the kernel which CPU should get
each thread, so they may be scheduled on the same CPU.

What scheduler are you using?

-- 
Dan Eischen
Received on Sat May 01 2004 - 19:45:09 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:52 UTC