Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Stata/MP


    I want to buy a Stata MP license but I'm confuse with this hyperthreading thing. I consider having a server bi-processor, 4 cores each with hyperthreading. What should I buy to use it at the best of its performance but stay compliant with the license terms: Stata MP8 (because there are 2CPU*4cores) or Stata MP16 (because there are 2CPU*4Cores*2threads)? This has a huge impact on my possibilities (hardware & software). Thanks for your answer.

  • #2
    Originally posted by Thomas Martin View Post
    I want to buy a Stata MP license but I'm confuse with this hyperthreading thing. I consider having a server bi-processor, 4 cores each with hyperthreading. What should I buy to use it at the best of its performance but stay compliant with the license terms: Stata MP8 (because there are 2CPU*4cores) or Stata MP16 (because there are 2CPU*4Cores*2threads)? This has a huge impact on my possibilities (hardware & software). Thanks for your answer.
    To acheive the best performance using Stata/MP you would want to buy a license for the number of actual cores on your machine. In your case with 2 CPUs that each have 4 cores, you would purchase a license for Stata/MP (8-core) for maximum performance.

    Because you mentioned wanting to stay compliant with the license terms, I should point out that you do not have to buy a Stata/MP license that matches the number of cores on your machine. For example, if you only wanted to buy a Stata/MP license with 4 cores or even 2 cores, that would be fine even though you have an 8-core machine. Stata/MP will use up to the licensed number of cores, and will ignore any extra cores on your machine.

    Comment


    • #3
      Hello Alan!
      Thanks for your reply. So, if I understand you, hyperthreading is not part of the equation?
      If I bought the 2CPU*4cores with hyperthreading, I can bought a MP8 licence and use all of the power of my server? Or a MP16 will maximize it?

      To ask it in another way, let's say I'll buy a MP8. Which server is the best fitted? The 2CPU*4cores because 8 in total or the 2CPU*4cores*2threads (because hyperthreading does not matter). I really need to avoid buying a 2CPU*4cores*2threads and see half of the server staying unused. That would be a waste of (precious) money

      Thanks

      Comment


      • #4
        Originally posted by Thomas Martin View Post
        Thanks for your reply. So, if I understand you, hyperthreading is not part of the equation?
        If I bought the 2CPU*4cores with hyperthreading, I can bought a MP8 licence and use all of the power of my server? Or a MP16 will maximize it?

        To ask it in another way, let's say I'll buy a MP8. Which server is the best fitted? The 2CPU*4cores because 8 in total or the 2CPU*4cores*2threads (because hyperthreading does not matter). I really need to avoid buying a 2CPU*4cores*2threads and see half of the server staying unused. That would be a waste of (precious) money
        Hyperthreading usually doesn't do much for you when an application has been explicitly parallelized, but sometimes it helps a bit.

        You'll want to read section 10 of the Stata/MP performance report, which talks about hyperthreading: http://www.stata.com/statamp/statamp.pdf#page=40

        I personally would concentrate on number of true cores, ignoring hyperthreading. The reason is that, while hyperthreading occasionally can improve performance of certain parallelized tasks, it many cases it actually can degrade performance. The reason for this is mentioned in the performance report at the end of section 10. regress is used as an example of a command which performance suffers when hyperthreading comes into play: "Beyond the number of real CPUs, performance actually degrades. This occurs because each CPU has only one FPU, and regress, along with most Stata commands, requires many floating-point computations. The computations are dominated by access to the FPU, and the virtual processors must contend for access to this single FPU."

        Comment


        • #5
          Alan,

          I completely understand your functional point of view. But I'm still interested in the license over performance's one.
          Let's turn the question in another way.

          If I consider a 2CPU*4cores*hyperthreading machine. Which license should I buy to maximize the performance? MP8 or MP16?

          A subsequent question is: If I bought a MP8, how Stata will react?
          Will it use 4cores*2threads at most (because MP8 limits it), 2CPU*4cores (because MP8 uses cores with priority and not hyperthreading) or, 2CPU*4cores*2threads (because hyperthreading does not count and is kind of "free")?

          Comment


          • #6
            Originally posted by Thomas Martin View Post
            I completely understand your functional point of view. But I'm still interested in the license over performance's one.
            Let's turn the question in another way.

            If I consider a 2CPU*4cores*hyperthreading machine. Which license should I buy to maximize the performance? MP8 or MP16?

            A subsequent question is: If I bought a MP8, how Stata will react?
            Will it use 4cores*2threads at most (because MP8 limits it), 2CPU*4cores (because MP8 uses cores with priority and not hyperthreading) or, 2CPU*4cores*2threads (because hyperthreading does not count and is kind of "free")?
            If you have a license for, say, Stata/MP 8 cores, then when Stata/MP is running, if a problem is parallelizable, it will split the computation for that problem into at most 8 threads.

            At that point, it is completely up to the operating system how to handle making sure those 8 threads get executed. Typically the operating system would divide them among the real cores on a system, and not hyperthreaded cores.

            If you have more threads trying to execute simultaneously than you do real cores on a system, then the operating system may try to execute some of the instructions on the hyperthreaded cores. As discussed in the Stata/MP performance report, sometimes you get a slight performance increase when this happens, and sometimes you get a slight performance penalty.

            If I had a machine with 8 real cores, I would buy an 8-core Stata/MP license for it, and I would disregard the fact that those cores have hyperthreading available.

            Comment


            • #7
              It is clear in my mind now. Thanks

              Comment

              Working...
              X