I know all this terminology is a confused field atm, but I'm trying to interpret how they are being used at: http://www.cpu-world.com/CPUs/Xeon/Intel-Xeon%20E7-8870.html

The context I've got is that I've got an old program written in VB6 that I can fire up many instances of. And I'm wondering how many instances I would be able to fire up before the processing significantly slows down? Eg. for the Xeon E7-8870 would it be the 10 cores, the 20 threads or the 8 multi-processors that throttle me?

(I know the program needs re-writting in C#, other priorities first though...)

Very much appreciated


Once you saturate the physical cores, each instance will slow down significantly. This is especially true if all threads are running substantially the same mix of instructions. If you have 10 physical cores, you probably will start to see a drop in total performance if you launch more instances.

You really won't know until you try though. If the tasks do a lot of I/O, you may find that more instances lets the CPU stay busier even during I/O. However, if the tasks use a lot of memory, you may find that greater pressure on the caches and memory controller causes total throughput to actually drop, possibly drastically.

Even under the best circumstances, hyper-threading only adds about a 15% throughput boost. That would mean two threads each running about 57% as fast as a single thread.


There is no confusion really.

A core is a processor, on a die. You can have a processor, which is a single core on a single package. You can also have a dual-core processor which is 1 package with multiple CPUs. The same goes for any multicore. You could have a 1000 core processor, its still one package with 1000 processors.

Multiprocessor is multiple sockets, and physical CPU packages. You can have 2 single core processors, or more. You can also have multiple multi-core processors assuming the CPU supports it. 4 quad core processors is basically the same as a having 16 processors on separate packages or 1 16 core package as far as power and performance goes. It is just 4 packages and 4 cores for each package.

Threads are how many separate processes can run at a time. To put it simply, most processors can handle 1 thread at a time, Hyperthreading can do 2 at a time. HTT (Hyperthreading) means each core (Doesn't matter if its 2 on 1, or 1 by 2) can do 2 threads. So a quad core HTT processor can in theory do 8 threads. This is not always correct, and some software handles going through HTT very poorly.

As for your process, it is hard to say. If you had 10 cores with Hyper threading, and the application can only run on a single thread, then you could likely have 20 separate instances assuming: You have enough RAM You disk drives can keep up with the IOs Nothing else interrupts or takes over

If the process cannot fill the entire CPU on its own (Say it caps at 50% usage) you might be able to add some extra threads / jobs to the pool too.

  • And if a process uses up (virtually) all of 1 core or 25% total usage shown on a quad, and hyperthreading has little value (usually), you could effectivly run 4 with a single quad, before they were fighting for cpu. If it is somehow multithreaded, and is capable of using all cores you might get 1-2 going before they are maxing out the cores. – Psycogeek Apr 5 '13 at 1:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.