CPU cores, hyper-threading, bandwidth, APUs.. What are they? What does a CPU do? What do you as a SOLIDWORKS user need to consider when shopping for a CPU? The topic of CPU is very complex. For this post, I am going to sprinkle some interesting fundamentals and some realworld considerations.
CPU (Central Processing Unit) is the brain of your computer. Its main duties are to fetch instructions, decode the instructions to commands, execute and store these instructions. It’s amazing that everything that your computer operates broadly under these instructions.
If you were\are a computer engineering student, then you probably have microprocessor lab in your curriculum and have programmed a Intel 8051 or 8085 or 8086 microprocessor. An Intel 8086 processor has 117 instructions..and today’s CPU have thousands of instructions. There is a metric called IPS (Instructions Per Second) that lets you benchmark how many Million Instructions Per Second is performed. In my experience, this is only one factor against many others when looking at the performance of the CPU, such as time cost of individual instructions itself, the architecture, bandwidth, etc. For more information, you can refer here on IPS: https://en.wikipedia.org/wiki/Instructions_per_second
Most people look at the speed of the CPU as a performance metric. This is represented as hertz ..or more commonly Ghz (gigahertz). This number represents the number of times the clock internal to the CPU ticks per second. In a 4Ghz CPU, the clock ticks 4 billions times each second. The amount of work done per each clock cycle is measured as IPC as described above. So its important to understand that a CPU with a high clock frequency but low IPC may not perform as well as a CPU with low clock frequency but high IPC.
As a rule of thumb, I use clock speed to compare against CPUs in the same family of CPUs and not across. This is because newer generations of CPUs have gotten more efficient and faster per cycle.
Clock speed of the CPU is not an enough measure for performance. A CPU has multiple cores. Each core can work\execute its own processes in windows or multiple cores can work together to complete a process faster. In the early days, a CPU had only one core. These days you can’t find a machine with a CPU less than a quad core.
So you may wondering what is “Hyper-threading”? Hyper-threading is a way to fool the OS that each core is viewed as two separate cores. The original core is the physical core and the two cores seen by the OS is the “logical cores”. The logical cores shares the same resources in the physical core and essentially does time sharing to do more tasks. This has been around since the early days of Pentium 4s. This is no-where as good as having additional physical cores.
Does AMD have hyper-threading support?
Hyper-threading is just a marketing name from Intel for Simultaneous Multi-threading(SMT). AMD had a similar technology called CMT (Cluster Multi-threading) in their old CPUs. The new Zen architecture CPUs are SMT processors as well. Take a look at their threadripper CPUs with huge number of core counts where the core speeds and counts are very impressive. For example, a threadripper 3990x has 64 cores, 128 threads, 256MB L3 cache, 32MB L2 cache and 4MB L1 cache!
So where does all this fit in with core SOLIDWORKS?
For SOLIDWORKS, CPU speed is more important currently. I will not say that core count does not matter. There are many place in SOLIDWORKS where multi-threading is used. Consider a use-case where users have a huge number of annotations. Each character in a font for annotations is loaded in multiple threads. This would otherwise take a very long time when you work with some languages. Today, you would not be able to find a CPU that is less than a quad core. So in essence, you already have multiple cores and so it is good to get a faster CPU for bang for the buck. For SOLIDWORKS Simulation, having higher core count is more beneficial as it would make use of all the cores.
Please refer to “Understanding RAM” as it contains all pertinent information on memory on the CPU. If you would like to see a specific topic or if you have questions, please let me know! This is probably my last post on the “Understanding” series. If you have more topics of discussion, please leave a comment below!