Asymmetric Multi-Processing

Поделиться
HTML-код
  • Опубликовано: 11 сен 2024
  • While testing a batch of CPUs, I accidentally did something that I thought wouldn't work, but it did. I mixed a Xeon L5640 with a E5630 CPU in a Supermicro X8DTH-iF motherboard. Normally, I would think the system would not even POST in such a configuration. However, contrary to what I thought I knew, the system fully booted up, and recognized both CPUs. In this video, I'm going to demonstrate this, and show you how this Assymetric Multi-Processor configuration manifests itself in the system BIOS, in the Linux OS using various utilities, and run a CPU benchmark on both distinct CPUs in the same system. I didn't know this was even possible, and thought it was an interesting discovery so I wanted to share this with you guys!
    Timestamps:
    0:37 - How I discovered asymmetric multi-processing was possible
    0:59 - Introducing the CPUs
    2:52 - Installing the not so symmetric CPUs in the same system
    5:12 - Powering on the server with asymmetric processors
    5:46 - What the BIOS menu says about the asymmetric processors
    8:26 - Booting CentOS 7 Linux with asymmetric CPUs
    9:03 - How does 'top' show the asymmetric CPUs?
    9:15 - What does lscpu say about asymmetric CPUs?
    10:20 - What does inxi say about asymmetric CPUs?
    12:55 - Running sysbench cpu benchmark on asymmetric CPUs
    14:03 - Final thoughts
    16:00 - Wrap-up
    If you'd like to support this channel, please consider shopping at my eBay store: ebay.to/2ZKBFDM
    eBay Partner Affiliate disclosure:
    The eBay links in this video description are eBay partner affiliate links. By using these links to shop on eBay, you support my channel, at no additional cost to you. Even if you do not buy from the ART OF SERVER eBay store, any purchases you make on eBay via these links, will help support my channel. Please consider using them for your eBay shopping. Thank you for all your support! :-)
    #artofserver #assymetricmultiprocessing #amp

Комментарии • 60

  • @desdearb
    @desdearb Год назад +8

    An interesting combo would be brute forcing the Performance-Efficientcy Cores feature found in newer Intel cpus.
    Like lower end cpu with capped power plus higher end cpu on full blast

    • @ArtofServer
      @ArtofServer  Год назад

      thanks for the suggestion!

    • @VraccasVII
      @VraccasVII Год назад

      If you have an SR-2 you can even do this for the memory side of things. You could have something like an overclocked X5690 with full memory speed, and a forced lower multiplier low power CPU with low memory clocks and voltages on that CPU's imc

  • @insu_na
    @insu_na Год назад +10

    Would've been interested to see the output of `lshw` and `cat /proc/cpuinfo` whether or not it correctly identifies the cores and separate CPUs.
    Also my soul left my body when he used an electric screwdriver to just fully screw in one screw on each side 💀

    • @ArtofServer
      @ArtofServer  Год назад +6

      I'm glad to free your soul! LOL

  • @GeoffSeeley
    @GeoffSeeley Год назад +6

    Linux likely uses the NUMA nodes to determine SMP or AMP as you can see by the correct counts at @10:11. I've never tried to do this before either so I learned something today!

    • @ArtofServer
      @ArtofServer  Год назад +1

      yes, i suspect so too. thanks for watching!

  • @gwojcieszczuk
    @gwojcieszczuk Год назад +4

    Regarding 10:09 ... look at the NUMA node[01]. It's correctly reporting number of logical CPUs for each socket. node0: 6 cores (+HT), node1: 4 cores (+HT).

  • @myne00
    @myne00 Год назад +7

    I was running a 333 and a 433 celeron together at the turn of the century. Never really believed the boilerplate compatibility bs manufacturers come out with. For the most part it's about SUPPORT. They don't want to spend extra money SUPPORTING oddball edge-case configurations.
    Doesn't mean it doesn't work. Just means they wont support it.

  • @computersales
    @computersales Год назад +3

    It would be interesting to try something like this with one of the enthusiast i7's and the equivalent xeon.

    • @ArtofServer
      @ArtofServer  Год назад +1

      interesting thought. i don't have any LGA1366 i7 though...

  • @Choralone422
    @Choralone422 Год назад +2

    Pretty cool that works. I would chalk it up to one of those "it shouldn't work but it basically does and is certainly not recommended" situations. My own anecdotal experience. I have an old HP ML350 Gen 6 with a pair of L5640s in it. And while the CPUs are a matched pair they are often times running at completely different clock speeds, in a sort of asymmetric way.
    Could be that the chipsets of that gen were a bit more forgiving as those chips use QPI 1.0. The Sandy/Ivy Bridge Xeons use QPI 1.1 and maybe Intel took the ability to do what you did in this video out with the updated spec.

    • @ArtofServer
      @ArtofServer  Год назад

      yeah, I wonder if it works on all platforms from the same generation or if this particular motherboard is just less restrictive?

  • @dannydoolhoff7657
    @dannydoolhoff7657 Год назад +2

    I don't remember where I had read it, but years ago there was an article talking about potential advantages to asymmetrical processing. I believe it was with Intel hardware specifically, and that the design was limited to working only with some limited CPU combinations.

  • @gwojcieszczuk
    @gwojcieszczuk Год назад +2

    I recommend switching to PiKVM for your KVMoIP needs. So much better console experience.

    • @ArtofServer
      @ArtofServer  Год назад

      thanks for the suggestion. i've never used it before.

  • @CMDRSweeper
    @CMDRSweeper Год назад +2

    A cooler thing would be to cat procinfo as they dump for each CPU thread and see if you get the same model number of the CPU when you do it.
    My X58 single CPU setup is super cluttered as it dumps the same CPU info, for even the Hyperthreaded threads for my W3680. (Yes, I did the dirty thing of a Xeon in a consumer motherboard.)

    • @ArtofServer
      @ArtofServer  Год назад

      can you please share with me what you mean by "cat procinfo" ? I'm not familiar with that...

    • @andrewjohnston359
      @andrewjohnston359 Год назад

      @@ArtofServer He means #cat /proc/cpuinfo I imagine

  • @WizardNumberNext
    @WizardNumberNext Год назад +5

    1. This is still SMP
    2. There would be no NUMA issues, as they still use and speak same coherency language
    Symmetric Multi Processing doesn't refer to amount of cores, speed or even architecture
    It refers only to where kernel is run
    SMP kernel runs on all cores equally
    ASMP runs on single core and manages rest of them only for user space
    NUMA stands for Non Uniform Memory Access
    Speed of memory and/or number of cores does not influence NUMA in any way, as procesor 0 cannot read memory of processor 1 and vice versa. It politely asks another processor to read or write memory and waits patiently to finish

  • @artlessknave
    @artlessknave Год назад +2

    if thats the x8dth i think it is, the CPU's are not connected to the hardware the same as modern CPUs. you can have one CPU and still access all the PCI lanes and other hardware, where as newer hardware splits lanes b/w CPUs.
    I would speculate that difference in arctitechure could be related to why this works.
    i might mess about with one of the x8dt6 I have. see if itl run an x55 and x56 that I have. I suspect that would not work, but I never did try it.

    • @ArtofServer
      @ArtofServer  Год назад

      Yeah, it is X8DTH-iF. And yes, PCIe lanes are connected through dual IOH so that's why it can have that many PCIe slots. Also the BIOS SPI connection is via ICH10R South Bridge, so you can boot with either CPU0 or CPU1. Unlike the newer generation, where the SPI is connected to one of the CPUs and that CPU socket must be populated to POST.
      I'll be interested to know what you discover playing around with the X8DT6 board. That was a good board for NAS build!

    • @GeoffSeeley
      @GeoffSeeley Год назад

      @@ArtofServer interesting! I don't have an X8 board, just X9 and X10's. Now I have to go look at some various block diagrams of X8/9/10 to see how they may differ.

  • @nasasts51
    @nasasts51 Год назад +4

    Do you get the same results if you switch the cpu's into opposite sockets?

    • @ArtofServer
      @ArtofServer  Год назад +1

      Very interesting suggestion. I don't know but I might try it out ...

  • @wongkinchung9985
    @wongkinchung9985 Год назад +2

    I think AMP is just working similar to the big/little core in Intel 12nd/13rd gen CPU?

    • @ArtofServer
      @ArtofServer  Год назад

      well, sort of, but I think the Intel P/E-core thing was more inspired by similar designs from ARM and mobile phone CPUs. This westmere stuff was way before that.

  • @iforth64
    @iforth64 Год назад +2

    What happens if you try to run a program that uses instructions that one of the CPUs does not support? It can then not simply switch from one CPU to the other as different binaries are needed?

    • @ArtofServer
      @ArtofServer  Год назад +2

      I think both of these CPUs have the same instruction set.

    • @j_taylor
      @j_taylor 10 месяцев назад +1

      I did this on my old SPARCStation 20 with SM61 and SM71 CPUs. Compiled a program specifically for the SM71 that had a slightly newer version of the instruction set, then ran it in the mismatched 2 CPU system.
      When it executed on the SM61, the program dumped core. Amusing, but less dramatic than I'd hoped.

  • @ultrahkr2005
    @ultrahkr2005 5 месяцев назад +1

    I still run the same board X8DTH-iF but with a slightly modded BIOS.
    That aside most OEMs will check at boot if both CPU's are the same... And halt the system if they're mismached. (I think memory is foggy)

    • @ArtofServer
      @ArtofServer  5 месяцев назад

      Those are good boards! What type of modded BIOS?

    • @ultrahkr2005
      @ultrahkr2005 5 месяцев назад

      @@ArtofServer I updated and extended the CPU microcode, changed OpROM versions, newer Intel AHCI/RAID/NIC modules...

  • @OsX86H3AvY
    @OsX86H3AvY 5 месяцев назад +2

    ive got a Z800 which will NOT do the same thing, at least not with the BIOS that I have in it. it also wont run the X5680's which really pisses me off...but anyways I wonder if this is a Supermicro thing or if maybe it was just never limited on thge 5000-series chipsets and Supermicro allows it but HP doesn't? I dunno....effin cool though! But I think it MUST be vendor dependent

    • @ArtofServer
      @ArtofServer  5 месяцев назад

      Hmm... have you any other dual socket systems to try out?

  • @CorwinPatrick
    @CorwinPatrick Год назад +1

    Could be a case of lowest common. But my first thought was that it was just showing CPU0. I'm surprised the bios doesn’t just show CPU1...

    • @ArtofServer
      @ArtofServer  Год назад +1

      Yeah, I don't know for sure. It's seeing CPU0 with the L5640 and is using the base frequency of the L5640 at 2.26GHz, but it is using the max RAM speed of 1066MHz of the 2nd CPU E5630.

  • @foursixnine
    @foursixnine Год назад +1

    I think you just found at least two bugs in the kernel :D… I wonder now how vCPU hotplug will behave (already looking for qemu/xen options to set it up)…. I didn’t catch the os/kernel you were using… what was it?

    • @ArtofServer
      @ArtofServer  Год назад

      CentOS 7 Linux kernel 3.10.0-1160.90.1.el7.x86_64

    • @vng
      @vng Год назад +1

      @@ArtofServer It would be interesting to try with a newer kernel to see if it can take advantage of the different clock speeds, instead of just using the lowest common denominator.

  • @jonathanbuzzard1376
    @jonathanbuzzard1376 Год назад

    Think about it, how would the little/big core thing work if you could not do asymmetric multiprocessing. Now whether it's actually a good idea or not is another question.

    • @ArtofServer
      @ArtofServer  Год назад +2

      This is an ancient server and CPU architecture from 2010 though...

  • @psycl0ptic
    @psycl0ptic Год назад +2

    I can imagine NUMA issues

    • @orthodoxNPC
      @orthodoxNPC Год назад +2

      Why? Linux is not going to populate NUMA nodes that don't exist

    • @GeoffSeeley
      @GeoffSeeley Год назад +3

      If you look at @10:11 it correctly determined the NUMA nodes so it should work just fine with any software written to correctly enumerate and use the NUMA nodes.

  • @NetBandit70
    @NetBandit70 Год назад

    Don't cross the streams.

  • @Mr.Leeroy
    @Mr.Leeroy Год назад +1

    Every CPU has model, stepping, revision info stored in some kind of ROM ready to be used as an identifier for the system. This way CPU-Z should have no problem identifying each model switching between sockets, I'm sure there is a Linux capable alternative. The fact that they boot, tells me that Lxxx SKUs really are just low-freq binned versions of same silicon in Exxx.
    P.S. 4:30 Pretty sure that springs do not work in a fully compressed state.

    • @ArtofServer
      @ArtofServer  Год назад +2

      What do you mean about "springs do not work in fully compressed state?"

    • @Mr.Leeroy
      @Mr.Leeroy Год назад

      @@ArtofServer If you compress it all the way, you overcome pressure that they are designed to apply on CPU heatspreader in this case. No better that a simple screw that you would need to tension with a dynamometric screwdriver otherwise. Regidity of the spring is calculated to be roughtly equal to correct torque, so you should free the scew a bit, so the spring would hold the assembly in place.

    • @mihumono
      @mihumono Год назад +3

      @@Mr.Leeroy You should fully bottom out those screws, as they are designed to apply correct mounting pressure. Just don't overtighten.

    • @Mr.Leeroy
      @Mr.Leeroy Год назад

      @@mihumono For "bottoming out" there exists helical spring type washer, that costs pennies compared to actual spring designed to spec. You are over-tightening by bottoming out.

    • @mihumono
      @mihumono Год назад +3

      @@Mr.Leeroy you are not. Have you ever used those heatsinks? The screws are not fully threaded.

  • @paulkaygmailcom
    @paulkaygmailcom Год назад +1

    yep, nothing quite new.. ran a dual P3 system with an 850Mhz and a 1Ghz back in the 90s.. it worked too even though it wasn't "supported"

    • @ArtofServer
      @ArtofServer  Год назад +1

      thanks for sharing!

    • @paulkaygmailcom
      @paulkaygmailcom Год назад

      @@ArtofServer but I haven't seen it tried on semi modern hardware.. very interesting non the less!