Page 2 of 2 FirstFirst 12
Results 26 to 40 of 40
  1. #26
    Join Date
    Jun 2001
    Location
    Earth
    Posts
    1,259
    As far as I know, windows does not recognize or take advantage of the hyperthreading. For now only *nix systems do.

    Frank
    Umbra Hosting
    cPanel | Softaculous | CloudLinux | R1Soft | Ksplice
    Web Hosting, Reseller Hosting, VPS, Dedicated Servers, Colocation
    UmbraHosting.com

  2. #27
    Intel Xeon anyday.

    AMD in a server environment, especially is 1U cases, is pretty much asking for it IMHO.
    Alvin Slocombe
    E-Insites - "Web services, simplified."

  3. #28
    Xeons also have a LOT more cache. This increases speed quite dramatically (like the Williamette to Thoroughbred, or the P4 Celeron to the Williamette).

    AMD in a server environment isn't too viable at the moment. AMD have yet to prove stability, and based on my experience with a Dual Athlon MP Workstation, they have a fair bit to go yet.

    Oh, and apparently the P4 does support dual processors, it has the pins, and it has the code. But, Intel won't let any manufacturer a) Produce a motherboard with 2 478-pin sockets, b) Produce a chipset compatible with both the P4 and dual CPUs at the same time.

  4. #29
    Join Date
    Mar 2002
    Location
    Westbury, LI NY
    Posts
    1,705
    Originally posted by ffeingol
    As far as I know, windows does not recognize or take advantage of the hyperthreading. For now only *nix systems do.
    Both Win2k and WinXP (and I think NT4 if you tinker enough) will be able to use SMT (hyperthreading is a term inveneted by Intel's marketing department). Both Win2k and XP Professional support up to two CPUs. The difference is Windows XP has native support for differentainting between logical and physical CPUs. It limits itself to two physical processors, while Windows 2k limits itself to two processors. You will need to get a higher level of Win 2k or go with XP (and its storage issues and fischer price theme) to use dual Xeons as 2k cannot tell its only two processors.


    This C program will tell you waht you need to nkow (on a window system) in reguards to your CPUs:
    Code:
    //-------------------------------------------------------------------
    //
    // Copyright C 2001, Intel Corporation . Other brands and names may be claimed as the property of others. 
    //
    //
    // CPU Counting Utility
    // Date : 10/30/2001
    // Version: 1.4
    // 
    //
    //
    // File Name: CPUCount.cpp
    //
    // Note: 1) LogicalNum = Number of logical processors per PHYSICALPROCESSOR. If you want to count
    // the total number of logical processors, multiply this number
    with the total number of 
    // physical processors (PhysicalNum)
    //
    // 2) To detect whether hyper-threading is enabled or not is to see how many logical ID exist 
    // per single physical ID in APIC
    //
    // 3) For systems that don't support hyper-threading like AMD or
    PIII and below. the variable
    // LogicalNum will be set to 1 (which means number of logical
    processors equals to number of
    // physical processors.)
    // 
    // 4) Hyper-threading cannot be detected when application cannot
    access all processors in 
    // the system. The number of physical processors will be set to
    255. Make sure to enable ALL 
    // physical processors at startup of windows, and applications
    calling this function, CPUCount,
    // are NOT restricted to run on any particular logical or physical
    processors(can run on ALL
    // processors.)
    // 
    // 5) Windows currently can handle up to 32 processors. 
    //
    //
    //----------------------------------------------------------------------
    ---------------------------
    
    
    #define HT_BIT 0x10000000 // EDX[28] Bit 28 is set if
    HT is supported
    #define FAMILY_ID 0x0F00 // EAX[11:8] Bit 8-11 contains
    family processor ID.
    #define PENTIUM4_ID 0x0F00 
    #define EXT_FAMILY_ID 0x0F00000 // EAX[23:20] Bit 20-23
    contains extended family processor ID
    #define NUM_LOGICAL_BITS 0x00FF0000 // EBX[23:16] Bit 16-23 in ebx
    contains the number of logical
    // processors per physical
    processor when execute cpuid with 
    // eax set to 1
    
    #define INITIAL_APIC_ID_BITS 0xFF000000 // EBX[31:24] Bits 24-31 (8
    bits) return the 8-bit unique 
    // initial APIC ID for the
    processor this code is running on.
    // Default value = 0xff if HT
    is not supported
    
    
    // Status Flag
    #define HT_NOT_CAPABLE 0
    #define HT_ENABLED 1
    #define HT_DISABLED 2
    #define HT_SUPPORTED_NOT_ENABLED 3
    #define HT_CANNOT_DETECT 4
    
    unsigned int HTSupported(void);
    unsigned char LogicalProcPerPhysicalProc(void);
    unsigned char GetAPIC_ID(void);
    unsigned char CPUCount(unsigned char *,
    unsigned char *);
    
    
    #include 
    #include 
    
    
    
    void main(void)
    {
    
    unsigned char LogicalNum = 0, // Number of logical CPU per ONE
    PHYSICAL CPU
    PhysicalNum = 0, // Total number of physical
    processor
    
    HTStatusFlag = 0; 
    
    
    printf("CPU Counting Utility\n");
    printf("Version 1.4\n");
    printf("Copyright (C) 2001 Intel Corporation. All Rights
    Reserved\n\n");
    
    HTStatusFlag = CPUCount(&LogicalNum, &PhysicalNum);
    
    switch(HTStatusFlag)
    {
    case HT_NOT_CAPABLE:
    printf("Hyper-threading technology not capable\n");
    break;
    
    case HT_DISABLED:
    printf("Hyper-threading technology disabled\n");
    break;
    
    case HT_ENABLED:
    printf("Hyper-threading technology enabled\n");
    break;
    
    case HT_SUPPORTED_NOT_ENABLED:
    printf("Hyper-threading technology capable but not
    enabled\n");
    break;
    
    case HT_CANNOT_DETECT:
    printf("Hyper-threading technology cannot be detected\n");
    break;
    
    
    }
    
    printf("Number of logical processors per physical processor: %d\n",
    LogicalNum);
    
    if (PhysicalNum != (unsigned char)-1)
    printf("Number of physical processors: %d\n", PhysicalNum);
    else
    {
    printf("Can't determine number of physical processors\n");
    printf("Make sure to enable ALL processors\n");
    }
    
    printf("\n\nPress Enter To Continue\n");
    getchar();
    }
    
    
    
    unsigned int HTSupported(void)
    {
    
    
    unsigned int Regedx = 0,
    Regeax = 0,
    VendorId[3] = {0, 0, 0};
    
    __try // Verify cpuid instruction is supported
    {
    __asm
    {
    xor eax, eax // call cpuid with eax = 0
    cpuid // Get vendor id string
    mov VendorId, ebx
    mov VendorId + 4, edx
    mov VendorId + 8, ecx
    
    mov eax, 1 // call cpuid with eax = 1
    cpuid
    mov Regeax, eax // eax contains family
    processor type
    mov Regedx, edx // edx has info about the
    availability of hyper-Threading
    
    }
    }
    
    __except (EXCEPTION_EXECUTE_HANDLER)
    {
    return(0); // cpuid is unavailable
    }
    
    if (((Regeax & FAMILY_ID) == PENTIUM4_ID) || 
    (Regeax & EXT_FAMILY_ID))
    if (VendorId[0] == 'uneG')
    if (VendorId[1] == 'Ieni')
    if (VendorId[2] == 'letn')
    return(Regedx & HT_BIT); // Genuine
    Intel with hyper-Threading technology
    
    return 0; // Not genuine Intel processor
    
    }
    
    
    unsigned char LogicalProcPerPhysicalProc(void)
    {
    
    unsigned int Regebx = 0;
    if (!HTSupported()) return (unsigned char) 1; // HT not
    supported
    // Logical
    processor = 1
    __asm
    {
    mov eax, 1
    cpuid
    mov Regebx, ebx
    }
    
    return (unsigned char) ((Regebx & NUM_LOGICAL_BITS) > 16);
    
    }
    
    
    unsigned char GetAPIC_ID(void)
    {
    
    unsigned int Regebx = 0;
    if (!HTSupported()) return (unsigned char) -1; // HT not
    supported
    // Logical
    processor = 1
    __asm
    {
    mov eax, 1
    cpuid
    mov Regebx, ebx
    }
    
    return (unsigned char) ((Regebx & INITIAL_APIC_ID_BITS) > 24);
    
    }
    
    
    unsigned char CPUCount(unsigned char *LogicalNum,
    unsigned char *PhysicalNum)
    {
    unsigned char StatusFlag = 0;
    SYSTEM_INFO info;
    
    
    *PhysicalNum = 0;
    *LogicalNum = 0;
    info.dwNumberOfProcessors = 0;
    GetSystemInfo (&info);
    
    // Number of physical processors in a non-Intel system
    // or in a 32-bit Intel system with Hyper-Threading technology
    disabled
    *PhysicalNum = (unsigned char) info.dwNumberOfProcessors; 
    
    if (HTSupported())
    {
    unsigned char HT_Enabled = 0;
    
    *LogicalNum= LogicalProcPerPhysicalProc();
    
    if (*LogicalNum >= 1) // >1 Doesn't mean HT is
    enabled in the BIOS
    // 
    {
    HANDLE hCurrentProcessHandle;
    DWORD dwProcessAffinity;
    DWORD dwSystemAffinity;
    DWORD dwAffinityMask;
    
    // Calculate the appropriate shifts and mask
    based on the 
    // number of logical processors.
    
    unsigned char i = 1,
    PHY_ID_MASK = 0xFF,
    PHY_ID_SHIFT = 0;
    
    while (i < *LogicalNum)
    {
    i *= 2;
    PHY_ID_MASK <= 1;
    PHY_ID_SHIFT++;
    
    }
    
    hCurrentProcessHandle = GetCurrentProcess();
    GetProcessAffinityMask(hCurrentProcessHandle,
    &dwProcessAffinity,
    
    &dwSystemAffinity);
    
    // Check if available process affinity mask is
    equal to the
    // available system affinity mask
    if (dwProcessAffinity != dwSystemAffinity)
    {
    StatusFlag = HT_CANNOT_DETECT;
    *PhysicalNum = (unsigned char)-1;
    return StatusFlag;
    }
    dwAffinityMask = 1;
    while (dwAffinityMask != 0 && dwAffinityMask
    <= dwProcessAffinity)
    {
    // Check if this CPU is available
    if (dwAffinityMask &
    dwProcessAffinity)
    {
    if (SetProcessAffinityMask(hCurrentProcessHandle,
    
    dwAffinityMask))
    {
    unsigned char APIC_ID,
    
    LOG_ID,
    
    PHY_ID;
    
    Sleep(0); // Give OS
    time to switch CPU
    
    APIC_ID = GetAPIC_ID();
    LOG_ID = APIC_ID &
    ~PHY_ID_MASK;
    PHY_ID = APIC_ID >
    PHY_ID_SHIFT;
    
    if (LOG_ID != 0) HT_Enabled =
    1;
    
    }
    
    }
    
    dwAffinityMask = dwAffinityMask < 1;
    
    }
    
    // Reset the processor affinity
    SetProcessAffinityMask(hCurrentProcessHandle,
    dwProcessAffinity);
    
    
    if (*LogicalNum == 1) // Normal P4 : HT is
    disabled in hardware
    StatusFlag = HT_DISABLED;
    
    else
    if (HT_Enabled)
    {
    // Total physical processors in a Hyper-Threading
    enabled system.
    *PhysicalNum /= (*LogicalNum);
    StatusFlag = HT_ENABLED;
    }
    else StatusFlag =
    HT_SUPPORTED_NOT_ENABLED;
    
    }
    
    }
    else
    {
    // Processors do not have Hyper-Threading technology
    StatusFlag = HT_NOT_CAPABLE;
    *LogicalNum = 1;
    
    }
    return StatusFlag;
    }
    SMT is 100% hardware, as soon as an ACPI call is made.

    DriverGuru summed it up best in saying:

    On a non-ACPI platform Win2K can still find the multiple CPUs. And the whole point of SMT is that (with a suitable chipset) the logical processors present themselves to the OS as being indistinguishable from multiple real CPUs. They're just there.

    If they weren't, Win2K would not see four logical CPUs, because even though it is ACPI-aware, it was written before SMT and so does not have the ACPI calls in it to enumerate the logical processors. Just being an ACPI-aware OS would not be enough. See?
    That is why Win2k cant differntiate between physical and logical processors, it doesnt make the ACPI call, and lets the hardware just do its thing, which is to make one cpu funciton like two.

    For a complete write up, please see:

    http://arstechnica.com/paedia/h/hype...reading-1.html

    Hannibal always rights very simple to understand articles without dumbing things down. 2cpu tossed that up in their news section as well.

  5. #30
    Join Date
    Mar 2002
    Location
    Westbury, LI NY
    Posts
    1,705
    Originally posted by alfturtle
    Intel Xeon anyday.

    AMD in a server environment, especially is 1U cases, is pretty much asking for it IMHO.
    Is that because AMD's run hot?

    Please go read the spec sheet for the Xeon. Note that a P4 Xeon @ 2.4GHz has a typical power usage (thermal design power) of 65 Watts. If you read a bit further in the electrical specs this cpu runs at a maximum of 1.458 Volts at 51 Amps which calculates to a maximum thermal output of 74.4 Watts.

    Now please read the spec sheet for the Athlon MP. Note that the the typical is only 54.5 Watts and the maximum is 60 Watts.

    Since Xeons do in fact run hotter than AMDs (something most people dont get in and of itself), does that mean you cant have dual Xeons in 1U as well? Please tell these people:

    http://www.siliconmechanics.com/sm-1270.php
    http://www.dual-xeon-servers.com/
    http://www.1hotwebserver.com/specifi...fm?ServerID=20

    AMD's run cold compared to the P4.

  6. #31
    Join Date
    Jun 2001
    Location
    Earth
    Posts
    1,259
    hmm, I've got a dual Xeon and according to the sensors, the CPU's are running at 27c or 81f. That does not seem too hot to me, but I'm not a hardware guy

    Frank
    Umbra Hosting
    cPanel | Softaculous | CloudLinux | R1Soft | Ksplice
    Web Hosting, Reseller Hosting, VPS, Dedicated Servers, Colocation
    UmbraHosting.com

  7. #32
    Originally posted by ffeingol
    As far as I know, windows does not recognize or take advantage of the hyperthreading. For now only *nix systems do.

    Frank
    on a dual xeon w/ HT enabled you have 2 physical processors and 4 logical processors.
    lets pretend that:
    physical cpu 1 has logical cpus a and b
    physical cpu 2 has logical cpus c and d

    windows 2000 pro doesn't have coding to differentiate between physical and logical and will fill out it's 2 processor limit such that cpu1 = a, cpu2 = c and logical b,d would be ignored

    2000 server would fill out is 4 processor limit such that cpu1 = a, cpu2 = c, cpu3 = b, cpu4 = d.

    window xp pro (and .net standard edition) does understand hyperthreading and will fill out it's 2 processor limit such that cpu1 = a, cpu2 = c, cpu3 = b, cpu4 = d.

    in all cases as far as the os is concerned it sees 4 cpus that it can toss threads at to get executed. As a result you will see performance gains... the numbers vary but in most cases you see about a 30% gain in performance from turning HT on...

  8. #33
    Join Date
    Aug 2002
    Location
    Denver, CO
    Posts
    331
    Dexter:

    Very interesting. So you are saying W2k pro won't use the full processing power of the CPUs? So if you had a dual Xeon 2.0, the CPU useage would be:

    CPU #1
    cpu A: 1 Ghz
    cpu B: none (should be 1Ghz from cpu #1)

    CPU #2
    cpu C: 1 Ghz
    cpu D: none (should be 1Ghz from cpu #2)

    Or, would CPU A use 2 Ghz and CPU C use 2 Ghz?

    I'm very curious to get my Xeon and run that C script to see what it shows under W2k Professional versus W2k Server.

    Andrew

  9. #34
    Join Date
    Mar 2002
    Location
    Westbury, LI NY
    Posts
    1,705
    Win2k caps you at 2cpus. You wont see a 4th. Dexter is 100% correct with the CPU numvering/naming scheme and how different OS's interpet them.

    Windows (nor unix for that matter) will not change the speed of the processor. If you have dual 2.6GHz cpus withouth SMT, it will show 2x 2.6GHz CPUs. If you turn on SMT it will show 4x 2.6GHz CPUs.

    As for the performance boost, not always, in many cases it will slow you down. It depends on what you are doing, certain apss are written with both SMP and SMT in mind while others arent and some apps are written before SMT and coincidentally make things worse with SMT enabled. See here:

    http://www.2cpu.com/Hardware/ht_analysis/

  10. #35
    Join Date
    Mar 2002
    Location
    Westbury, LI NY
    Posts
    1,705
    One more thing...

    Rebies: You can use the program or you can do the following. When your turn on the computer, check in the BIOS to see if SMT is enabled. Than look at taskmanager and check how many CPUs there are. You should get the following results.

    Win2k Pro:
    SMT disabled with 2 physical CPUs: 2
    SMT enabled with 2 physical CPUs: 2

    Win2k Server:
    SMT disabled with 2 physical CPUs: 2
    SMT enabled with 2 physical CPUs: 4

    Win XP Pro:
    SMT disabled with 2 physical CPUs: 2
    SMT enabled with 2 physical CPUs: 4

    Win XP Server:
    SMT disabled with 2 physical CPUs: 2
    SMT enabled with 2 physical CPUs: 4

  11. #36
    Join Date
    Jul 2002
    Posts
    183
    Here is my dual 1.8 xeon

    CPU0 states: 0.0% user, 3.0% system, 0.0% nice, 96.0% idle
    CPU1 states: 0.0% user, 0.1% system, 0.0% nice, 99.0% idle
    CPU2 states: 0.0% user, 3.0% system, 0.0% nice, 96.0% idle
    CPU3 states: 0.0% user, 0.0% system, 0.0% nice, 100.0% idle

  12. #37
    We run Dual Xeons with 1-2 Mb cache.

    We tried the 5U configuration but you always end-up with heating problems so we had to put them in full tower cases, which cost a hell of a lot more than if it is racked.


    But, they come into thier best play when you run large MySql databases or forums. I think the investment pays off in the long run.

  13. #38

  14. #39
    Join Date
    Mar 2002
    Location
    Westbury, LI NY
    Posts
    1,705
    Take anything Tom says with a metris-ass-load of salt.

    First there is that issue of photoshopping a picture or two on their websites and lieing about it. Read here:

    http://arstechnica.infopop.net/OpenT...4&m=8400979235

    See here:

    http://www.amdzone.com/Fake.jpg

    Than youve got guys like 2cpu's Murdock ranting about this:

    http://www4.tomshardware.com/storage...305/index.html

    The article I linked to deosn't even compare the reviewed drive against any SCSI drives. Yet they make the claim that it "outperforms SCSI drives" in the title no less.

    That is blashemy.


    But wait, toms hardware gets better...

    http://forums.2cpu.com/showthread.php?s=&threadid=19187

    Another 2cpu member says Tom cant be too bright in saying:

    After testing the new Fujitsu MAM3184MP hard disk drive, independent PC hardware review Web site Tom's Hardware Guide has described Fujitsu as being "a master of its trade." The high-end MAM3184MP with Ultra160 interface runs at 15,000rpm, and according to the review "it outperforms just about all other models out there."

    Has he ever seen a cheetah?

    More Tom bashing:

    http://forums.2cpu.com/showthread.php?s=&threadid=14660
    http://forums.2cpu.com/showthread.php?s=&threadid=11489
    http://forums.2cpu.com/showthread.php?s=&threadid=6070

    (Yes, that last link is form early 2001, 18 months ago people were calling Tom dumb, and he has only gotten worse)

    More Tom bashing:

    http://arstechnica.infopop.net/OpenT...4&m=2210979305
    http://arstechnica.infopop.net/OpenT...5&m=9330922205

  15. #40
    Acronym BOY,

    Funny you mention silicon-mechanics.com, we have like 8 servers from them They all run great, they are not XEONs though, all PIII from earlier this year.

    As far as my comment goes, I am just speaking from pure experience, in our hosting environment. Spec sheets are all fine and dandy, but when it comes down to it, real life actual usage experience counts for way more.

    As far as servers go, our Intel machines including our XEON, P4 and PIII machines all out perform the AMDs as far as uptime goes, and performance. I see a lot of people offering AMD Athlon XP in 1U environments, and I am yet to see one that works without like altering the case config to add more fans. But like I said before, that's just my onion.
    Alvin Slocombe
    E-Insites - "Web services, simplified."

Page 2 of 2 FirstFirst 12

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •