16 Replies Latest reply on Jan 8, 2014 11:01 PM by Charley Saint

    The questions I have no one seems to know

    William Ives

      I am surprised how many administrators know very little about hardware requirements, even the Solidworks integrators. The questions I have no one seems to know in the Solidworks community. One: does SQL use processor logical cores, if so how many? Two: What would be the advantage of dual processor (parallelizing computation) with 4 to 10 cores a piece to one processor with multi-cores? All on the back of I/O bus speeds limitations. All I am running is EPDM, not a general office server.

       

      This is the issue for me. Intel manufactures so many hardware configurations; hyper threading, cores and multi processors but not all software developers utilize all of these configs for performance. Does SQL/database with EPDM USE multi-processor and mulit-cores? Then if so, by how many??? I hear all conflicting reasoning's, suggestions, and no one has a direct answer.. does anyone really know this question??  Has ANYONE ran benchmark tests on hardware requirements to that of hardware optioned by Intel? Are salesman just selling us a bunch of high priced junk if the output speed is fixed?

       

      Example, if SQL running within Windows Sever 2012 and EPDM does not take advantage of a dual processor (parallelizing computation), why not a single fast multi core processor (by how many cores), (the fastest CPU, highest cache) benchmarked on an output spec of I/O bus and Ethernet speeds. Also, with or without hyper threading (modular software based on multiple threads) On or OFF?

       

      Last question: If I am building a new server from the ground up, am I required to purchase CAL license for Windows server if EPDM/SQL come with its own per. seat (CAL) license? We are only using this server for EPDM, no other services.

       

      Note: A SQL server (Processor Site Licenses (PSL)), will link to each logical processor as an individual license, hence the need for multi-processor server. This is not the setup for EPDM/SQL (CAL).

       

      Output I/O example: 5 clients request SQL responses at the same time. The processor cues the request in milliseconds but now waits on the read/write speed of the hard drive (HDD) requests, then transmits each byte to the 5 clients at a set Ethernet bus speeds. The more the CPU's wait, speed on the front end is irrelevant if the back end dictates performance.

       

      Thanks for any feedback.

        • Re: The questions I have no one seems to know
          Charley Saint

          William,

           

          This all depends on what EPDM license you buy. If you buy CAD Editor/Contributor/Viewer licenses you can have as many cores as you want, but they can only be spread across 4 physical processors. If you buy a PSL license (bundle of 25 licenses) then you only get to use one physical processor unless you buy additional licenses from SolidWorks. Otherwise you are not required to buy any licenses of SQL, you get a CAL for every license of EPDM you purchase. The reason there hasn't been a heavy amount of benchmarking is that EPDM uses encrypted stored procedures, which means the plans are encrypted as well. The easiest thing to do to find out how parallel a SQL app can run is to query the dm_exec_query_plan for levels of parallelism, but you can't with EPDM because it's encrypted.

           

          Hope that helps.

            • Re: The questions I have no one seems to know
              William Ives

              Thanks Charley for taking the time to respond.


              Just making sure I understand: Below is from a previous thread that you replied to, SQL only reports to one processor socket with 4 physical processors. So if I purchased a 1 socket processor with 8 core processors and/or 16 logical processors using HT; only 4 of the eight core processors will be utilized by SQL, all other cores, logical processors and/or added socket processors will not be utilized except by the operating system for other functions. Our company will purchase (5) CAD Editor/Contributor EPDM licenses (CAL)s for only EPDM service on one physical server.


              Ok here is the real question: Why would a major integrator for Solidworks EPDM quote me a dual processor (two socket processors) that consist of 8 cores each, totaling 16 processors for only (5) CAD Editor/Contributor EPDM licenses? Do they know something we don't?

               

              [CS] "SQL only concerns itself with processors that occupy their own socket, so a quad core, or a 6 core processor are considered 1 processor."


              http://msdn.microsoft.com/en-us/library/ms143760(v=sql.105).aspx

               

              SQL Server supports the specified number of processor sockets multiplied by the number of logical CPUs in each socket. For example, the following is considered a single processor for purposes of this table:

              • A single-core, hyper-threaded processor with 2 logical CPUs per socket.
              • A dual-core processor with 2 logical CPUs.
              • A quad-core processor with 4 logical CPUs.
                • Re: The questions I have no one seems to know
                  Charley Saint

                  William,

                   

                  Sorry, I'm not explaining this very well. Essentially if you're buying CAD Editor licenses don't worry about how many processors SQL can handle, you probably aren't looking into those servers, here's an example :http://www8.hp.com/us/en/products/proliant-servers/product-detail.html?oid=5268287#!tab=features. All cores across as many as 4 processors will be used by SQL. To answer your question, SQL COULD use all that processing power, but they're probably just trying to make a buck. I'd be interested to see any benchmarking numbers they have to try to back that recommendation up, if they don't have numbers to provide then they're blindly recommending something...

                    • Re: The questions I have no one seems to know
                      William Ives

                      That is the question, are there any benchmarking numbers on any EPDM server set ups? It seems that eveyone is just winging it.

                        • Re: The questions I have no one seems to know
                          Charley Saint

                          William,

                           

                          We have some internal benchmarking numbers we share with our customers, but we haven't spent a good deal of time with multi-core because the benchmarking tool pretty much does a crappy job of measuring the effectiveness of adding processor power. It measures things like check-in, check-out, variable update, other file operations, while beefing up your SQL server would affect things like time to load all files in a folder, or time to populate a where used tab, or right click time, all things that can't be measured with the current benchmarking tool.

                            • Re: The questions I have no one seems to know
                              William Ives

                              Charley,

                               

                              Below is an old thread concerning Solidworks 2010 not designed to use multiple processors; comparing linear to parallel processing. Is there a way, I think you are an integrator, to show how many processors are actually being used (say a 5 client EPDM service)? Then benchmarking performance? Do you have that capability?

                               

                              Also, just to be clear on definitions:

                               

                              1: A physical processor are the number of cores in a socket because cores are also called physical processors parallel together, not just one single processor. Logical processors are physical cores divided by a software array into multiple logical processors of one core. 

                               

                              2. Or, as I think you word it, a processor (one) is a socket that has multiple cores? The term "processor" is overused in forums I have read.

                               

                               

                              ============ OLD THREAD ==================================

                              Yesterday Solidworks 2010 locked up on me.  When I brought up Task Manager, I could see that only one of 8 processors was 100% and the rest were doing nothing.  This led me to thinking that maybe I should get rid of the 2 Xeon X5355 quad cores and change to 2 Xeon L5248 dual core processors.  This is all installed in a Dell Precision 690, by the way.  My reasoning is that it would be better to be using 1/4 of the computers computing power rather than 1/8th.

                              I have read that Solidworks does not take advantage of the multi core processors, so this seems to make sense to me.  Plus the other processor uses about half the power or less.

                               

                              ---------------------------------------------------------------

                               

                              James, I think your reasoning is slightly flawed--but only partially so.  If the true goal is a higher percentage of processor potential yielded, then go for an old single-core P4.  You may yield close to 100% most of the time.    Though I doubt that's your true goal.

                              However, depending on the type of uses you have for your processing power, you may indeed be better off with fewer cores to trade for faster clock speeds of those cores.  Many of the modeling processes in SolidWorks are linear, so you must solve things sequentially (meaning, not much opportunity for multiple, parallel solving that several cores could tackle).  In this case, the faster the clock speed, the better the performance--and since multiple-core chips often have slower clock speeds, those extra cores will often sit idle (as you're seeing) while a slower core does most of the solving.

                              But if you do lots of rendering (or other parallel-available processing) those extra cores are very nice to have.  I've got a six-core Xeon, and while rendering all cores max out at 100% during most of the rendering.  This makes for very quick results of renderings and rendered animations.

                               

                              https://forum.solidworks.com/thread/45305

                              • Re: The questions I have no one seems to know
                                William Ives

                                I am not the only one:

                                 

                                ============================================

                                What is the "number of processors" here really mean ? It's physical or logical ? I have box with 2 Physical Inter Xeon Processors, but both are 4 Cores, so 8 Logical Processors, do i have 2 processors or 8 processors ?

                                ============================================

                                You have 2 sockets and 8 processors.

                                =====================================

                                If you look at how many processors SQL sees, you will see it says 8.

                                ==========================================

                                Except if you license Per Processor, you only pay for 2 licenses, not 8. This took me forever to get my head around.

                                ===========================================

                                "The maximum value for the degree of parallelism setting is controlled by the edition of SQL Server, CPU type, and operating system. If a value greater than the number of available processors is specified, the actual number of available processors is used. If the computer has only one processor, the max degree of parallelism value is ignored and for SQL Server 2008 Standard, the value is 4"

                                Now for my server which has 2 physical CPUs and 8 logical processors, how many "the actual number of available processors" is ? is it 8 or 2 ?

                                ========================================

                                I answered that question. You have 8 physical cpus and 2 sockets. Each core is a cpu. Logical cpus comes into play if you have hyper-threading enabled.

                                ==========================================

                                Thanks Jason, but I am still puzzling over something here, if you right , it's 8, then i can set : max degree of parallelism = 6, leave two CPUs to something else all the time , right ? But on the other hand, it's saying max numbers of CPUs the SQL Server 2008 R2 Standard edition support is 4, is that mean i should set the number less than 4 ? Confusing ....

                                =======================================

                                I would start with setting it at 4, test, baseline and then try a different value if necessary.
                                ======================

                                SQL server will only ever use 4 cores

                                ==================

                                hat's not how MaxDop works. With MaxDop you're setting what the maximum number of threads any particular query operator can parallel to, not the number of cores in use.

                                ====================

                                You can set to whatever you like, but Standard Edition will never use more than 4 cores in total. It's a limitation of the edition.

                                ========================

                                Can you point me to a document on this? I'm not convinced that standard can only use 4 cores since I know of sites with 2 x 4 core procs and SQL Std is using all 8 cores. It seems to me since licensing is per socket that std is capable of using 4 sockets. I've yet to find a definitive document that explicitly states "SQL Server Std can use a maximum or 4 cores". All the official docs I've seen say 4 CPUs which is really ambiguous.

                                =============================

                                To be sure I just downloaded the SQL 2008 Enterprise and Standard Feature Compare PDF from Microsoft and it says CPUs.

                                =============================

                                The point to note is that SQL can't tell the difference between a processor and a core. If Windows tells it that it has 8 cores available, SQL cannot tell whether that is one 8 core processor, 2 quad-cores, 4 dual-cores or 8 single-core chips.

                                ===========================

                                I would say - test various values until you get to an acceptable level of performance. But, don't just change it and test a couple of queries. I would first set the MAXDOP setting to half the number of physical processors (that is, the number of processors SQL sees - not sockets)

                                ===========================

                                To the previous posters about SQL Server Standard only using 4 CPU's - I believe that is a licensing number and does not have any relationship to the actual number of cores it will use. I have built systems with 4 Quad core processors and run SQL Server 2005 Standard and all cores were used. I have not heard that 2008/2008R2 changed that - but if so is there a link that explains that?

                                ========================

                                You guys really need to <re>read this => http://www.simple-talk.com/sql/learn-sql-server/understanding-and-using-parallelism-in-sql-server

                                =====================================

                                That is my understanding, and with all due respect to Gail, I did Google it and down load (as mentioned) what I found. I've also researched this before and I've yet to find an official documant that says SQL Std will use only 4 cores. This to me also flies in the face of licensing since we license by socket, and if I buy 4 socket licences and each socket has 4 cores I would be really mad if I then find it only used 4 cores.

                                So again, does anyone have an MS document that explicitly states SQL Std can use multiple cores over 4 but a maximum of 4 sockets.

                                ===================================

                                For licensing of CPU's / Version read http://www.microsoft.com/sqlserver/en/us/get-sql-server/how-to-buy.aspx and then click the quick reference guide PDF link.

                                To quote "Per Processor License costs are the same regardless of number of cores in the processor.".

                                Therefore Standard supports 4 processors regardless of the number of cores and Enterprise supports 8 processors regardless of the number of cores.

                                Virtualised environments are different so read carefully.

                                ========================

                                 

                                 

                                http://www.sqlservercentral.com/Forums/Topic1161407-1550-1.aspx