Just want to start a thread in parallel to Charles one on the Monthly suggested thread here: https://forum.solidworks.com/message/298854#298854 so that we try to regroup hardware buying advices for IT managers as well as engineers self maintained computers. I intend to explain how to pick hardware, I don't intend to tell you what to pick, refer to Charles Cup's thread for that. Something common to all forums is people fetching for advice on how to build a computer for a kind of usage and receive an approximative help from skilled users. It's great but sometimes it's frustrating, for the newcomer because it takes time to get answer, for the advisers as they spend millions of hour writing the same line of answer. It's long but I still hope you read it before you go and ask a question about what hardware to chose.
Buying advice summary are on bold
Anyway, here we go:
In the current world, we have multicore, multithreaded, multi-sockets cpus: Multi cores means that you have multiple physical computing units in a same package and multi threaded means that the cpu/software emulates another bunch of logical computing units with the available remaining ressources available in order to better optimize cpu usage, multisockets means that you have 2 or more physical computing unit packages in a same system. Multithreading came from the fact that not all thread (a task) can occupy a core at 100%, so, when a thread occupy a computing unit at 50%, on a monothreaded cpu, the system will need to wait for the task to fully finish before it can send something else to the computing unit to be processed. On a multithreaded one, the Operating system will use the remaining 50% and show it to the software as another computing unit, thus, if I have another task, I can throw it to that computing unit.
It's like our 2 hands, a task can require up to 2 hands... for a monothreaded person, no matter the task, we can only do one task at the time, for a multi threaded person, if the first task is only requiring 1 hand, we still have another hand for the second task. But if the first task is already using up our 2 hands... we will still have to finish it before we can start another new task. One need to know that at the beginning, we only have monocore, monothread cpu so, people were used to program software in a simple linear way, tasks A, B, C were a following suite of task. Now, we have multicores, multithread, people need to think and plan how they can use these new resources, and see if they can split A, B, C tasks into A, B for the first computing unit and C for a second one, but if C depends on the results of A and B, you can't.. Software designers had to "level up" in order to get the most of new hardware.
The other option that people have is related to the grade of cpu, consumer cpu or professional ones (consumers = i5,i7,phenoms... pro = xeon/opteron lines). What distinguish them:
-speed, the speedier, the more expensive
-cost, consumer ones are cheaper.
-memory bandwidth, some pro ones can use higher memory bandwidth
-multicores, multi sockets, pro ones offer more configuration, multi sockets are only available on pro models and comes at a knee breaking premium.
-overclocking, consumer ones can offer overclocking enabled options
-ECC memory, higher cost self correcting memory that runs slightly slower, only available and mandatory on pro lines.
Cost wise, the more cores, the more expensive, the quicker, the more expensive, the multithreading option cost a premium, professional features comes at a mind blowing premium.
So, that said, I can start to talk about specificities of Solidworks, firstly, "SolidWorks is cpu bound and benefits from a fast cpu of the most modern architecture." (from Anna Wood).
Modeling is very linear, you have a feature tree, functions are solved one by one, so only one thread, some sub-task can benefit from some multithread optimization, but they are rare. So, one cpu, the quickest possible.
Rendering makes use of the most number of cores and most number of thread, rendering is a very very parallel task, one task can be easily cut into sub tasks, and then, sub sub tasks, then sub sub sub tasks, all independants between each other... so the more computing units (let it be logical or physical), the best. (You can buy Modo too, Anna Wood has a good rendering farm setup, and it's a more clever way to spend money)
Flow Simulation is the same as Rendering (minus the modo comment).
Simulation is the same as modeling. Some simulation benefits of better multithread optimization, but as far as the simulation I am doing (nonlinear with contacts), it is monothreaded.
From this, you can draw the following logical path:
You do modeling -> Take the quickest cpu single socket available pro or consumer
You do rendering/flow simulation -> Take the quickest multicores/multithreaded cpu available that you can afford pro or consumer
You do simulation -> Take the quickest cpu single socket available pro or consumer
My personal take with financial taken in account:
You do modeling -> Take a consumer overclockable cpu, multithreading is not a must as I doubt soliworks will ever fully load a multi core CPU in the first place and I don't do things that my life depends on, so ECC is not a must.
You do rendering->If you are short on money, stay in the consumer cpus, overclockable. If you have enough money to afford a pro line multi socket, multi cores, then take the quickest you can afford But you will quickly see that the premium going pro is big (and splitting it into modo + multiple render nodes might make more sense)
You do simulation -> Take a consumer overclockable cpu, same as above.
You do simulation Flow-> I don't have enough experience on it, but my take would be the same as rendering, the solver is multi core enabled.
If ECC really is a must, then switch to pro line, but do it only if you are working on if your life depends on it. The premium over consumer line is a bit too much for me to justify it. I would spend it on a centralized server for storage and backup.
Based on chosen CPU lines, you need to chose ECC or non ECC memory, take the quickest memory that the cpu can OFFICIALY support, even if you overclock a consumer cpu, you might spend several hundreds of dollars for 5% improvement. Ask yourself if it worth it.
edit: Do buy lower latencies memory if you can afford them. Latency is expressed in cycle, the lower it is, the faster the cells can refresh before it can read/write a new value.
Quantity, take 8GB for Dual/Quad channel as a minimum now. 16 is more than enough for any type of assembly, if you have MILLIONS OF PARTS, take 32GB, but so far, I never saw people having that much need. For Tri Channel, 12 GB is the minimum.
Edit: Comments from Casper:
Don't choose the fastest memory, i could buy 2400MHz but it will cost me 300,- euro for 8GB
The minimum you want is 1600MHz, preferred 1866MHz or higher.
Watch the latency! if you go below 8 you wil have a big chance of memory problems (the memory makes mistakes because it wants to do to much assigments to fast after each other) Also low latency needs specific motherboards who can coop with them correctly.
A latency of 9 is fine, you could go 8 (is a bit faster)
GAMING or PRO CARD?: Physically, the chips and the electronic are the same, pro cards tends to run at a lower speed. Pro cards are more expensive that the same chip configuration gaming card, sometimes by 3 times the prices. Cost difference is justify by the drivers certification and all the hard work folks put into the pro cards. At a software level, Gaming cards can lead to glitches and sometimes, they don't handle multi windowed very well. Anyway, they are prone to more bugs than the pro version counterpart, it does not mean that the pro won't bug... Pro cards are precision oriented, they have some routing in their chips to make sure that what you display is at the right position on the screen, Gaming cards are speed oriented, they prefer to display a very smooth gaming experience even if the polygon is misplaced few pixels, you won't notice it. In Solidworks, Pro cards can enable realview, I found it's a plus. It does not improve productivity but it looks nicer.
My take is to avoid gaming cards if you can afford a pro card, even the entry-level. I know a lot of people use gaming cards with more or less sucess, to me, my working box is a working box, I don't play and I don't mix fun and work, although I have a lot of fun from my work.
Dedicated or Integrated: Definitively, Dedicated... Integrated just when you don't have the choice and that you are not a hardcore modeler going to work with Big big assemblies or complex surface modeling. If you want to improve productivity, go dedicated.
There are plenty of solutions out there, either ATI/AMD or Nvidia will be fine.
The more complex your assembly in terms of geometry or complex surfacing, the higher end you need to go. But, don't go too high end and keep your money on some areas that might yield better spent money.
As far as Solidworks is concerned, the Graphic cards does not have any incidence on rendering time AT ALL, so don't spend money on high end if you are just doing renderings.
Some people say that it is possible to turn a gaming card into a pro card, yes and no. If I found a good tutorial that work 100% case, I'll post it, right now, manufacturers makes enough difference between gaming and pro cards that it became a bit difficult. I did try with my old AMD 4770 and it worked but was buggy, I don't know if newer cards have a higher success rate.
For the sake of overall smooth experience, go SSD for the system and HDD for storage. 64GB is enough for a system drive, 128 is more confortable, 256 is a tad a waste of money.
Workstation load is by nature VERY unlinear, a lot of RANDOM read/write, in this type of usage, SSD is just another level compared to HDD. There is no way to compare them. So stop asking. The big difference between those two technologies is that on a HDD, data access speed depends on where the data is physically located, on a SSD, it does not care. And there is no moving part in a SSD.
Solidworks will load quicker and will be more responsive with a SSD
I do think that 1 SSD is enough though, I don't think that it's humanly possible to appreciate the speed of having SSD in RAID configuration. SSD is one area where it might be worth to spend money before throwing it in the graphic card.
Build yourself a good BACKUP SOLUTION. <= VERY VERY IMPORTANT, your data is your work, which is your money, it's your life and the life of the one who depends on it. BACK UP BACK UP BACKUP.
No need to buy 1000W PSU unless you really have the need for it.
Plan your purchase, there are good tools like this one:
Brand or DIY?
That depends on company policy, you pay a brand and a service, in the DIY, you pick exactly what you need and do exactly what you want, especially when you go the overclocking road.
If somebody wants to write something to complete it, I am open for anything, I do need a table for graphic card requirement / number of parts in assembly, if somebody has a good one, let me know.
Hope we can build something on it.