public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: Threads FAQ entry incomplete
@ 2001-06-20 17:48 Mike Kravetz
  2001-06-20 18:59 ` Rodrigo Ventura
  0 siblings, 1 reply; 6+ messages in thread
From: Mike Kravetz @ 2001-06-20 17:48 UTC (permalink / raw)
  To: linux-kernel

I would take exception with the following statements in the FAQ:

"However, the Linux scheduler is designed to work well with a small
number of running threads. Best results are obtained when the number
of running theads equals the number of processors."

I agree that the Linux scheduler is designed to work well with
a small number of threads.  However, when the number of processors
is no longer small, the Linux scheduler starts to suffer if the
number of threads equals the number of processors.  For example
consider the following data from TPC-H benchmark runs (2.4.3 kernel).

                      2-CPU          4-CPU          8-CPU
-------------------------------------------------------------
Mean runqueue         4.93 (18)      7.25 (23)      8.21 (35)
length (max)

runqueue lock         2.4%           9.6%           47.2%
contention

Mean lock hold        1.5us          2.2us          3.9us
time

Mean lock wait        2.8us          3.9us          10us
time

Note that in the 2 and 4 CPU cases, the run queue length is
aprox 2x the number of CPUs and the scheduler seems to perform
reasonably well with respect to locking.  In the 8 CPU case,
the number of tasks is aprox equal to the number of CPUs yet
scheduler performance has gone downhill.

-- 
Mike Kravetz                                 mkravetz@sequent.com
IBM Linux Technology Center

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Threads FAQ entry incomplete
  2001-06-20 17:48 Threads FAQ entry incomplete Mike Kravetz
@ 2001-06-20 18:59 ` Rodrigo Ventura
  2001-06-20 19:42   ` Charles Cazabon
  0 siblings, 1 reply; 6+ messages in thread
From: Rodrigo Ventura @ 2001-06-20 18:59 UTC (permalink / raw)
  To: linux-kernel

>>>>> "Mike" == Mike Kravetz <mkravetz@sequent.com> writes:

    Mike> Note that in the 2 and 4 CPU cases, the run queue length is
    Mike> aprox 2x the number of CPUs and the scheduler seems to
    Mike> perform reasonably well with respect to locking.  In the 8
    Mike> CPU case, the number of tasks is aprox equal to the number
    Mike> of CPUs yet scheduler performance has gone downhill.

        Obviously, since as the number of CPUs grow, you begin
experiencing the bottleneck of shared resources (bus, memory, I/O,
etc.) multiplexing. For a large number of processors, the performance
becomes very far from linear, i.e. the gain obtained from an extra CPU
becomes very minute. That's why massively parallel computers tend to
use separate motherboards for each CPU.

        BTW, I have a question: Can the availability of dual-CPU
boards for intel and amd processors, rather then tri- or quadra-CPU
boards, be explained with the fact that the performance degrades
significantly for three or more CPUs? Or is there a technological
and/or comercial reason behind? I heard somewhere that the intel holds
some patents related with many-CPU boards...

        Cheers,




-- 

*** Rodrigo Martins de Matos Ventura <yoda@isr.ist.utl.pt>
***  Web page: http://www.isr.ist.utl.pt/~yoda
***   Teaching Assistant and PhD Student at ISR:
***    Instituto de Sistemas e Robotica, Polo de Lisboa
***     Instituto Superior Tecnico, Lisboa, PORTUGAL
*** PGP fingerprint = 0119 AD13 9EEE 264A 3F10  31D3 89B3 C6C4 60C6 4585

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Threads FAQ entry incomplete
  2001-06-20 18:59 ` Rodrigo Ventura
@ 2001-06-20 19:42   ` Charles Cazabon
  2001-06-20 23:00     ` J.D. Bakker
  0 siblings, 1 reply; 6+ messages in thread
From: Charles Cazabon @ 2001-06-20 19:42 UTC (permalink / raw)
  To: linux-kernel

Rodrigo Ventura <yoda@isr.ist.utl.pt> wrote:
> 
> BTW, I have a question: Can the availability of dual-CPU boards for intel
> and amd processors, rather then tri- or quadra-CPU boards, be explained with
> the fact that the performance degrades significantly for three or more CPUs?
> Or is there a technological and/or comercial reason behind?

Commercial reasons.  Cost per motherboard/chipset goes way up as the number of
CPUs supported goes up.  For each CPU that a chipset supports, it has to add a
lot of pins/lands, and chipsets are already typically land-limited.
Motherboard trace complexity (and therefore number of layers) goes up.  Add to
that that the potential market goes down as CPUs goes up.

You can buy 4-, 8-, and 16-way motherboards for Intel CPUs (don't know about
more).  But the 16-way ones will cost as much as a house.

Charles
-- 
-----------------------------------------------------------------------
Charles Cazabon                            <linux@discworld.dyndns.org>
GPL'ed software available at:  http://www.qcc.sk.ca/~charlesc/software/
Any opinions expressed are just that -- my opinions.
-----------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Threads FAQ entry incomplete
  2001-06-20 23:00     ` J.D. Bakker
@ 2001-06-20 22:53       ` Charles Cazabon
  2001-06-21  0:50       ` D. Stimits
  1 sibling, 0 replies; 6+ messages in thread
From: Charles Cazabon @ 2001-06-20 22:53 UTC (permalink / raw)
  To: linux-kernel

J.D. Bakker <bakker@thorgal.et.tudelft.nl> wrote:
> At 13:42 -0600 20-06-2001, Charles Cazabon wrote:
> >Rodrigo Ventura <yoda@isr.ist.utl.pt> wrote:
> > > BTW, I have a question: Can the availability of dual-CPU boards for
> > > intel and amd processors, rather then tri- or quadra-CPU boards, be
> > > explained with the fact that the performance degrades significantly for
> > > three or more CPUs?  Or is there a technological and/or comercial reason
> > > behind?
> >
> >Commercial reasons.  Cost per motherboard/chipset goes way up as the number
> >of CPUs supported goes up.  For each CPU that a chipset supports, it has to
> >add a lot of pins/lands, and chipsets are already typically land-limited.
> 
> That's not quite accurate. Most modern SMP-able processors have a common
> bus, where going from 1->2 CPUs adds just a handful of extra nets (usually
> bus request, bus grant and some IRQs). The actual issues are threefold.

Low-end Intel multi-CPU chipsets are like this (typical 2-CPU configurations,
and low-end 4-CPU configurations).  Higher-end systems (8-way, etc) typically
have multiple processor busses, with only one, two, or four processors per bus.
Processor bus contention costs performance even in 2-way systems, and at 4-way
and above, it becomes a serious bottleneck.  High end chipsets do the cache
coherency and snooping control between the busses.  Other N-way chipsets
(i.e., non-Intel) have point-to-point links between each CPU and the chipset.
The new AMD 760 chipset for Athlon is like this; so are N-way Alpha chipsets.
I can't swear to other hardware.

> First, most commodity chipsets simply support no more than two CPUs at best;
> most CPUs don't support having more (or any) siblings.  Adding more is cheap
> on the ASIC level, but nobody bothers because there is no demand.

Ask ServerWorks about this.  They make 16-way Intel chipsets.  It's possible,
just not cheap.

> Third, the more CPUs a bus holds, the higher the capacitance on the bus
> lines. Higher capacitance means lower maximum bus speed, which aggravates
> point two.

Which is one of the reasons for a pont-to-point "bus" with Alpha and Athlon
CPUs.

Charles
-- 
-----------------------------------------------------------------------
Charles Cazabon                     <linux-kernel@discworld.dyndns.org>
GPL'ed software available at:  http://www.qcc.sk.ca/~charlesc/software/
My opinions are just that -- my opinions.
-----------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Threads FAQ entry incomplete
  2001-06-20 19:42   ` Charles Cazabon
@ 2001-06-20 23:00     ` J.D. Bakker
  2001-06-20 22:53       ` Charles Cazabon
  2001-06-21  0:50       ` D. Stimits
  0 siblings, 2 replies; 6+ messages in thread
From: J.D. Bakker @ 2001-06-20 23:00 UTC (permalink / raw)
  To: Charles Cazabon; +Cc: linux-kernel

At 13:42 -0600 20-06-2001, Charles Cazabon wrote:
>Rodrigo Ventura <yoda@isr.ist.utl.pt> wrote:
>  > BTW, I have a question: Can the availability of dual-CPU boards for intel
>>  and amd processors, rather then tri- or quadra-CPU boards, be explained with
>>  the fact that the performance degrades significantly for three or more CPUs?
>>  Or is there a technological and/or comercial reason behind?
>
>Commercial reasons.  Cost per motherboard/chipset goes way up as the number of
>CPUs supported goes up.  For each CPU that a chipset supports, it has to add a
>lot of pins/lands, and chipsets are already typically land-limited.

That's not quite accurate. Most modern SMP-able processors have a 
common bus, where going from 1->2 CPUs adds just a handful of extra 
nets (usually bus request, bus grant and some IRQs). The actual 
issues are threefold.

First, most commodity chipsets simply support no more than two CPUs 
at best; most CPUs don't support having more (or any) siblings. 
Adding more is cheap on the ASIC level, but nobody bothers because 
there is no demand.

Second, adding more CPUs on a shared bus decreases the bus bandwidth 
that is available per CPU. This is comparable with having Ethernet 
hubs vs switches. The really expensive multi-CPU boards have crossbar 
switches between CPUs, memory and PCI. Future stuff like RapidIO may 
mitigate this.

Third, the more CPUs a bus holds, the higher the capacitance on the 
bus lines. Higher capacitance means lower maximum bus speed, which 
aggravates point two.

>Motherboard trace complexity (and therefore number of layers) goes up.  Add to
>that that the potential market goes down as CPUs goes up.

True enough.

Regards,

JDB
[working on a SMP PowerPC design]
-- 
LART. 250 MIPS under one Watt. Free hardware design files.
http://www.lart.tudelft.nl/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Threads FAQ entry incomplete
  2001-06-20 23:00     ` J.D. Bakker
  2001-06-20 22:53       ` Charles Cazabon
@ 2001-06-21  0:50       ` D. Stimits
  1 sibling, 0 replies; 6+ messages in thread
From: D. Stimits @ 2001-06-21  0:50 UTC (permalink / raw)
  Cc: linux-kernel

"J.D. Bakker" wrote:
> 
> At 13:42 -0600 20-06-2001, Charles Cazabon wrote:
> >Rodrigo Ventura <yoda@isr.ist.utl.pt> wrote:
> >  > BTW, I have a question: Can the availability of dual-CPU boards for intel
> >>  and amd processors, rather then tri- or quadra-CPU boards, be explained with
> >>  the fact that the performance degrades significantly for three or more CPUs?
> >>  Or is there a technological and/or comercial reason behind?
> >
> >Commercial reasons.  Cost per motherboard/chipset goes way up as the number of
> >CPUs supported goes up.  For each CPU that a chipset supports, it has to add a
> >lot of pins/lands, and chipsets are already typically land-limited.
> 
> That's not quite accurate. Most modern SMP-able processors have a
> common bus, where going from 1->2 CPUs adds just a handful of extra
> nets (usually bus request, bus grant and some IRQs). The actual
> issues are threefold.

Some SMP chipset/cpu combos allow direct cache-to-cache update when a
dirty cache line is found through snooping, while the lower performance
ones don't. Wouldn't any kind of cache-to-cache direct update that
bypasses the main bus also add physical complexity (extra traces)? And
wouldn't that become more important as the number of cpu's goes up?

> 
> First, most commodity chipsets simply support no more than two CPUs
> at best; most CPUs don't support having more (or any) siblings.
> Adding more is cheap on the ASIC level, but nobody bothers because
> there is no demand.
> 
> Second, adding more CPUs on a shared bus decreases the bus bandwidth
> that is available per CPU. This is comparable with having Ethernet
> hubs vs switches. The really expensive multi-CPU boards have crossbar
> switches between CPUs, memory and PCI. Future stuff like RapidIO may
> mitigate this.
> 
> Third, the more CPUs a bus holds, the higher the capacitance on the
> bus lines. Higher capacitance means lower maximum bus speed, which
> aggravates point two.
> 
> >Motherboard trace complexity (and therefore number of layers) goes up.  Add to
> >that that the potential market goes down as CPUs goes up.
> 
> True enough.
> 
> Regards,
> 
> JDB
> [working on a SMP PowerPC design]
> --
> LART. 250 MIPS under one Watt. Free hardware design files.
> http://www.lart.tudelft.nl/
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2001-06-21  0:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-06-20 17:48 Threads FAQ entry incomplete Mike Kravetz
2001-06-20 18:59 ` Rodrigo Ventura
2001-06-20 19:42   ` Charles Cazabon
2001-06-20 23:00     ` J.D. Bakker
2001-06-20 22:53       ` Charles Cazabon
2001-06-21  0:50       ` D. Stimits

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox