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 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