Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Software and Dual Processor Servers

Software and Dual Processor Servers

Scheduled Pinned Locked Moved The Lounge
asp-netsysadminhardwarebusinessperformance
18 Posts 9 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    mr_lasseter
    wrote on last edited by
    #1

    We are working on a project to install some 3rd party software on a server. The server we purchased has 2 dual core processors, which meets the softwares minimum hardware requirements no where did they specify the maximum requirements. Now the vendor is saying that the software cannot run with dual processors or hyperthreading. I would think if the software was not built to run on a dual processor machine you would just get the same performance of a single processor machine. I am guessing it has something to do with multi-threading, but I am not 100% sure, but why would this cause problems with the software?

    Mike Lasseter

    G D A D E 5 Replies Last reply
    0
    • M mr_lasseter

      We are working on a project to install some 3rd party software on a server. The server we purchased has 2 dual core processors, which meets the softwares minimum hardware requirements no where did they specify the maximum requirements. Now the vendor is saying that the software cannot run with dual processors or hyperthreading. I would think if the software was not built to run on a dual processor machine you would just get the same performance of a single processor machine. I am guessing it has something to do with multi-threading, but I am not 100% sure, but why would this cause problems with the software?

      Mike Lasseter

      G Offline
      G Offline
      Graham Bradshaw
      wrote on last edited by
      #2

      mr_lasseter wrote:

      the vendor is saying that the software cannot run with dual processors or hyperthreading

      Or to put it another way "There's some subtle thread synchronisation bugs in our code, and the only workaround is to run on a single CPU with a single core". You could always try setting the processor affinity for the process to a single processor/core, and see if that helps.

      D 1 Reply Last reply
      0
      • M mr_lasseter

        We are working on a project to install some 3rd party software on a server. The server we purchased has 2 dual core processors, which meets the softwares minimum hardware requirements no where did they specify the maximum requirements. Now the vendor is saying that the software cannot run with dual processors or hyperthreading. I would think if the software was not built to run on a dual processor machine you would just get the same performance of a single processor machine. I am guessing it has something to do with multi-threading, but I am not 100% sure, but why would this cause problems with the software?

        Mike Lasseter

        D Offline
        D Offline
        Dario Solera
        wrote on last edited by
        #3

        A software 99% cannot be "incompatible" with multi-core or multi-processor machines. In the worst scenario it just uses one core without taking advantage of the others, but that's it.

        If you truly believe you need to pick a mobile phone that "says something" about your personality, don't bother. You don't have a personality. A mental illness, maybe - but not a personality. - Charlie Brooker My Blog - My Photos - ScrewTurn Wiki

        D 1 Reply Last reply
        0
        • G Graham Bradshaw

          mr_lasseter wrote:

          the vendor is saying that the software cannot run with dual processors or hyperthreading

          Or to put it another way "There's some subtle thread synchronisation bugs in our code, and the only workaround is to run on a single CPU with a single core". You could always try setting the processor affinity for the process to a single processor/core, and see if that helps.

          D Offline
          D Offline
          Dario Solera
          wrote on last edited by
          #4

          Graham Bradshaw wrote:

          Or to put it another way "There's some subtle thread synchronisation bugs in our code, and the only workaround is to run on a single CPU with a single core".

          I didn't think about that. :-O

          If you truly believe you need to pick a mobile phone that "says something" about your personality, don't bother. You don't have a personality. A mental illness, maybe - but not a personality. - Charlie Brooker My Blog - My Photos - ScrewTurn Wiki

          1 Reply Last reply
          0
          • M mr_lasseter

            We are working on a project to install some 3rd party software on a server. The server we purchased has 2 dual core processors, which meets the softwares minimum hardware requirements no where did they specify the maximum requirements. Now the vendor is saying that the software cannot run with dual processors or hyperthreading. I would think if the software was not built to run on a dual processor machine you would just get the same performance of a single processor machine. I am guessing it has something to do with multi-threading, but I am not 100% sure, but why would this cause problems with the software?

            Mike Lasseter

            A Offline
            A Offline
            Andy Brummer
            wrote on last edited by
            #5

            Thread synchronization errors are more likely to occur on multiple core/processor systems, but they still occur on single processor systems. Windows is still a preemptively multitasking os on a single processor system. Any well written application should run no worse on a multiprocessor system, at the very worst it might run slower because of things like cache updates, but running with more processors isn't going to cause problems unless the bugs are already there.


            This blanket smells like ham

            1 Reply Last reply
            0
            • M mr_lasseter

              We are working on a project to install some 3rd party software on a server. The server we purchased has 2 dual core processors, which meets the softwares minimum hardware requirements no where did they specify the maximum requirements. Now the vendor is saying that the software cannot run with dual processors or hyperthreading. I would think if the software was not built to run on a dual processor machine you would just get the same performance of a single processor machine. I am guessing it has something to do with multi-threading, but I am not 100% sure, but why would this cause problems with the software?

              Mike Lasseter

              D Offline
              D Offline
              Dave Kreskowiak
              wrote on last edited by
              #6

              Don't use their crap software - problem soved. If they can't get their multi-threaded app to work on a multi-proc machine, they're in serious trouble as a software vendor.

              A guide to posting questions on CodeProject[^]
              Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
                   2006, 2007

              M S 2 Replies Last reply
              0
              • D Dave Kreskowiak

                Don't use their crap software - problem soved. If they can't get their multi-threaded app to work on a multi-proc machine, they're in serious trouble as a software vendor.

                A guide to posting questions on CodeProject[^]
                Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
                     2006, 2007

                M Offline
                M Offline
                mr_lasseter
                wrote on last edited by
                #7

                Unfortunately this is Telecom software for which they are the only vendor that supports there hardware.

                Mike Lasseter

                D 1 Reply Last reply
                0
                • M mr_lasseter

                  We are working on a project to install some 3rd party software on a server. The server we purchased has 2 dual core processors, which meets the softwares minimum hardware requirements no where did they specify the maximum requirements. Now the vendor is saying that the software cannot run with dual processors or hyperthreading. I would think if the software was not built to run on a dual processor machine you would just get the same performance of a single processor machine. I am guessing it has something to do with multi-threading, but I am not 100% sure, but why would this cause problems with the software?

                  Mike Lasseter

                  E Offline
                  E Offline
                  El Corazon
                  wrote on last edited by
                  #8

                  mr_lasseter wrote:

                  I am guessing it has something to do with multi-threading, but I am not 100% sure, but why would this cause problems with the software?

                  As mentioned, the primary cause of problems with multi-threaded software is thread synchronization, parallel data access and reentrant issues. These happen with any pre-emptive multi-tasking system, but happen more often with true parallel systems such as multi-core and multi-processor. On a single processor to switch threads in execution: 1) you preempt the current thread 2) place current thread on "hold" 3) retrieve the other thread from hold 4) start the other thread where you last left it. This is true multi-threading, and suffers from "most" of the errors of multi-threaded programming synchronization issues. BUT, you can never truly be accessing the same location at the same time because one thread or another is always on hold. In a true parallel system, all things may be happening at all times (to the limit of the number of cores), unless you prevent it. A good programmer will build to this model, or protect the poorly written areas. I generally encourage the rewriting of poorly written parallel code that requires mutex blocking, but I am also experienced enough to release the rest of my team ignores me in this. You will never fully escape mult-threaded blocking and synchronization controls: some 3rd party code was just never written for parallel access. The key is recognizing when you have to use synchronization protection and when you are just being lazy and saying, "hey my code crashes in a thread, so rather than find the problem, I'll just mutex it and go on." In these folks case, sounds like they are being lazier still... and saying, don't use multi-core/multi-processor because true parallel systems show all our errors in coding.

                  _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                  A M 2 Replies Last reply
                  0
                  • E El Corazon

                    mr_lasseter wrote:

                    I am guessing it has something to do with multi-threading, but I am not 100% sure, but why would this cause problems with the software?

                    As mentioned, the primary cause of problems with multi-threaded software is thread synchronization, parallel data access and reentrant issues. These happen with any pre-emptive multi-tasking system, but happen more often with true parallel systems such as multi-core and multi-processor. On a single processor to switch threads in execution: 1) you preempt the current thread 2) place current thread on "hold" 3) retrieve the other thread from hold 4) start the other thread where you last left it. This is true multi-threading, and suffers from "most" of the errors of multi-threaded programming synchronization issues. BUT, you can never truly be accessing the same location at the same time because one thread or another is always on hold. In a true parallel system, all things may be happening at all times (to the limit of the number of cores), unless you prevent it. A good programmer will build to this model, or protect the poorly written areas. I generally encourage the rewriting of poorly written parallel code that requires mutex blocking, but I am also experienced enough to release the rest of my team ignores me in this. You will never fully escape mult-threaded blocking and synchronization controls: some 3rd party code was just never written for parallel access. The key is recognizing when you have to use synchronization protection and when you are just being lazy and saying, "hey my code crashes in a thread, so rather than find the problem, I'll just mutex it and go on." In these folks case, sounds like they are being lazier still... and saying, don't use multi-core/multi-processor because true parallel systems show all our errors in coding.

                    _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                    A Offline
                    A Offline
                    Andy Brummer
                    wrote on last edited by
                    #9

                    Yeah, on a single processor system it really depends on how often your trouble spots get split up on multiple quanta, which is more of a timing/kernel preemption issue then actual multiple thread execution, but it still happens enough.


                    This blanket smells like ham

                    E 1 Reply Last reply
                    0
                    • D Dario Solera

                      A software 99% cannot be "incompatible" with multi-core or multi-processor machines. In the worst scenario it just uses one core without taking advantage of the others, but that's it.

                      If you truly believe you need to pick a mobile phone that "says something" about your personality, don't bother. You don't have a personality. A mental illness, maybe - but not a personality. - Charlie Brooker My Blog - My Photos - ScrewTurn Wiki

                      D Offline
                      D Offline
                      Dan Neely
                      wrote on last edited by
                      #10

                      alot of gaming software initially had problems with AMD dual cores. IIRC the biggest issue was that the power saving implementation could vary clockspeeds of the cores independently and induce thread sync problems when N ticks on core 1 wasn't equal to N ticks on core 2. AMD/microsoft eventually released driver/os patches to fix this specific problem,

                      -- You have to explain to them [VB coders] what you mean by "typed". their first response is likely to be something like, "Of course my code is typed. Do you think i magically project it onto the screen with the power of my mind?" --- John Simmons / outlaw programmer

                      1 Reply Last reply
                      0
                      • A Andy Brummer

                        Yeah, on a single processor system it really depends on how often your trouble spots get split up on multiple quanta, which is more of a timing/kernel preemption issue then actual multiple thread execution, but it still happens enough.


                        This blanket smells like ham

                        E Offline
                        E Offline
                        El Corazon
                        wrote on last edited by
                        #11

                        Andy Brummer wrote:

                        but it still happens enough.

                        very true. But the difference is two fold: 1) multi-processor just doubles, quadrouples or octuples your chances 2) you don't have as much over-head of the hold-restore since 2-4-8 things are happening simultaneously. All in all, it simply multiplies your chance of discovering an existing problem by the number of cores. :)

                        _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                        A 1 Reply Last reply
                        0
                        • E El Corazon

                          Andy Brummer wrote:

                          but it still happens enough.

                          very true. But the difference is two fold: 1) multi-processor just doubles, quadrouples or octuples your chances 2) you don't have as much over-head of the hold-restore since 2-4-8 things are happening simultaneously. All in all, it simply multiplies your chance of discovering an existing problem by the number of cores. :)

                          _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                          A Offline
                          A Offline
                          Andy Brummer
                          wrote on last edited by
                          #12

                          Right, but while this statement is correct.

                          El Corazon wrote:

                          you can never truly be accessing the same location at the same time because one thread or another is always on hold.

                          Getting the right/wrong quanta running your thread makes it appear to your thread that another thread has concurrent access, so it's really kind of a fine distinction to make. It's just that on a single processor system the quanta are almost always long, unless something happens on the hardware level cut one off. That means there is a large jump in synchronization error between single and dual since they happen for different reasons on single processor systems. Anyway, it's probably been years since you've written code that runs on anything below a dual processor system anyway. :laugh:


                          This blanket smells like ham

                          E 1 Reply Last reply
                          0
                          • A Andy Brummer

                            Right, but while this statement is correct.

                            El Corazon wrote:

                            you can never truly be accessing the same location at the same time because one thread or another is always on hold.

                            Getting the right/wrong quanta running your thread makes it appear to your thread that another thread has concurrent access, so it's really kind of a fine distinction to make. It's just that on a single processor system the quanta are almost always long, unless something happens on the hardware level cut one off. That means there is a large jump in synchronization error between single and dual since they happen for different reasons on single processor systems. Anyway, it's probably been years since you've written code that runs on anything below a dual processor system anyway. :laugh:


                            This blanket smells like ham

                            E Offline
                            E Offline
                            El Corazon
                            wrote on last edited by
                            #13

                            Andy Brummer wrote:

                            Anyway, it's probably been years since you've written code that runs on anything below a dual processor system anyway.

                            ;P Probably right... I am struggling to reproduce customer problems on dual core/dual-proc since all my systems are quad now. ;P

                            _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                            A 1 Reply Last reply
                            0
                            • E El Corazon

                              Andy Brummer wrote:

                              Anyway, it's probably been years since you've written code that runs on anything below a dual processor system anyway.

                              ;P Probably right... I am struggling to reproduce customer problems on dual core/dual-proc since all my systems are quad now. ;P

                              _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                              A Offline
                              A Offline
                              Andy Brummer
                              wrote on last edited by
                              #14

                              I feel for you, I really do.


                              This blanket smells like ham

                              E 1 Reply Last reply
                              0
                              • A Andy Brummer

                                I feel for you, I really do.


                                This blanket smells like ham

                                E Offline
                                E Offline
                                El Corazon
                                wrote on last edited by
                                #15

                                Andy Brummer wrote:

                                I feel for you, I really do.

                                some things we must just suffer through... and be better for the effort... ;) hey, I do only have a hyperthread laptop. So I am not only high-tech. ;)

                                _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                                1 Reply Last reply
                                0
                                • D Dave Kreskowiak

                                  Don't use their crap software - problem soved. If they can't get their multi-threaded app to work on a multi-proc machine, they're in serious trouble as a software vendor.

                                  A guide to posting questions on CodeProject[^]
                                  Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
                                       2006, 2007

                                  S Offline
                                  S Offline
                                  StevenWalsh
                                  wrote on last edited by
                                  #16

                                  Dave Kreskowiak wrote:

                                  If they can't get their multi-threaded app to work on a multi-proc machine, they're in serious trouble as a software vendor.

                                  I would agree

                                  1 Reply Last reply
                                  0
                                  • E El Corazon

                                    mr_lasseter wrote:

                                    I am guessing it has something to do with multi-threading, but I am not 100% sure, but why would this cause problems with the software?

                                    As mentioned, the primary cause of problems with multi-threaded software is thread synchronization, parallel data access and reentrant issues. These happen with any pre-emptive multi-tasking system, but happen more often with true parallel systems such as multi-core and multi-processor. On a single processor to switch threads in execution: 1) you preempt the current thread 2) place current thread on "hold" 3) retrieve the other thread from hold 4) start the other thread where you last left it. This is true multi-threading, and suffers from "most" of the errors of multi-threaded programming synchronization issues. BUT, you can never truly be accessing the same location at the same time because one thread or another is always on hold. In a true parallel system, all things may be happening at all times (to the limit of the number of cores), unless you prevent it. A good programmer will build to this model, or protect the poorly written areas. I generally encourage the rewriting of poorly written parallel code that requires mutex blocking, but I am also experienced enough to release the rest of my team ignores me in this. You will never fully escape mult-threaded blocking and synchronization controls: some 3rd party code was just never written for parallel access. The key is recognizing when you have to use synchronization protection and when you are just being lazy and saying, "hey my code crashes in a thread, so rather than find the problem, I'll just mutex it and go on." In these folks case, sounds like they are being lazier still... and saying, don't use multi-core/multi-processor because true parallel systems show all our errors in coding.

                                    _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                                    M Offline
                                    M Offline
                                    Member 96
                                    wrote on last edited by
                                    #17

                                    He said it was Telecom software which I'm sort of familiar with in general from a previous incarnation and I suspect that the software company may not be at fault, it could easily be the driver company because some of that telecom hardware is pretty complex but has a tiny market and I can easily see them making drivers 10 years ago and never wanting to touch them again.


                                    "I don't want more choice. I just want better things!" - Edina Monsoon

                                    1 Reply Last reply
                                    0
                                    • M mr_lasseter

                                      Unfortunately this is Telecom software for which they are the only vendor that supports there hardware.

                                      Mike Lasseter

                                      D Offline
                                      D Offline
                                      Dave Kreskowiak
                                      wrote on last edited by
                                      #18

                                      Then you're screwed, aren't you?! Seriously, they have to figure out how to write code. In this day, with multi-core proc's being the norm, they simply have no choice but to fix their crap.

                                      A guide to posting questions on CodeProject[^]
                                      Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
                                           2006, 2007

                                      1 Reply Last reply
                                      0
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes


                                      • Login

                                      • Don't have an account? Register

                                      • Login or register to search.
                                      • First post
                                        Last post
                                      0
                                      • Categories
                                      • Recent
                                      • Tags
                                      • Popular
                                      • World
                                      • Users
                                      • Groups