Slashdot Mirror


Linux 2.6 And Hyper-Threading

David Peters writes "2CPU.com has posted an article on Hyper-Threading performance in Linux. They use Gentoo 1.4 and kernel 2.6.2 and run through several server-oriented benchmarks like Apache, MySQL and even Java server performance with Blackdown 1.4. The hardware they use in the tests is border-line ridiculous (3.2GHz Xeons, 3.2GHz P4 and P4 Prescott) and the results are actually quite interesting. It's a good read as he even takes the time to detail his system configuration all the way down to the CFLAGS used while compiling the software."

5 of 51 comments (clear)

  1. Cute comment on compiling by MerlynEmrys67 · · Score: 3, Informative
    Of course my opinion is why not use as large of a -j as you can, and distribute the problem. Take a server farm and turn your compile into ccache and distcc (look up the projects on samba.org CCache distcc)

    The first one performs semi-miracles on repetative build times where you aren't doing "incremental" builds. The second lets you distribute your compile to multiple build servers on the network (beware - there be deamons here)

    Build times went from hours to minutes - it was great

    --
    I have mod points and I am not afraid to use them
    1. Re:Cute comment on compiling by addaon · · Score: 2, Informative

      Here, if you have decent hardware.

      --

      I've had this sig for three days.
  2. Re:License software based on # of CPUs by Anonymous Coward · · Score: 2, Informative

    This is, I think, going to be more of a problem in the Windows world than the Linux world.

    There should only be the problem of under-utilization if the software doesn't support multiple processors. The software should not (if it's correctly designed) cease to function if it suddenly detects more than the number of processors it's licenced for - it should simply run on however many processors it was expecting.

    A possible work-around (if there is some multithreaded software that fails in a multiprocessor environment) in Windows NT / 2000 & XP Pro you can set a CPU affinity mask (either manually through task manager or if you launch the process through a particular API call). This is a 32-bit wide bitfield that indicates which CPUs the task is permitted to access (bit 0 = cpu 0, bit 1 = cpu 1, etc).

    Windows XP Home would be the most likely problem that anyone runs into as it only has single processor support. But it should still work. And nobody except mom & dad should be running XP Home anyway.

    FYI, Windows 2000 Pro supports 2 processors and works well with the hyperthreaded CPUs straight out of the box with no problem (this is what I'm running on the machine I'm typing on). However - if the number of CPUs changes (say, swapping out a single threaded CPU for a hyperthreading one), I believe you need to reinstall the operating system (because you'll otherwise be running the single-CPU kernel files).

  3. They need -mm by keesh · · Score: 0, Informative

    -mm kernels include fixes for the ht screwiness. Well, not fixes per se, but hacks that make the scheduler a bit smarter. Problem is, linux still sees a single HT CPU as two discrete CPUs, so there's a performance hit because of the way registers are handled.

  4. Re:License software based on # of CPUs by kayen_telva · · Score: 5, Informative

    actually, Intel recommends against using HyperThreading with Win2K (all flavors)

    Intel.com

    it will run but performance sucks