Thu Jan 03 2019
Multiple core vs multiple thread in processor
Multithreading and Multicore are different pieces of terminology that apply to different areas of computing.
Multicore
Multicore refers to a computer or processor that has more than one logical CPU core, and that can physically execute multiple instructions at the same time. A computer's "core count" is the total number of cores the computer has: computers may have multiple processors, each of which might have multiple cores; the core count is the total number of cores on all of the processors.
Multiple Thread
Multithreading refers to a program that can take advantage of a multicore computer by running on more than one core at the same time. In general, twice as many cores equals twice as much computing power (for programs that support multithreading) though some problems are limited by factors other than CPU usage; these problems will not experience gains that are as dramatic from multithreading.
Multithreading vs Multicore
-
Programs that support multithreading can use more than one core if more than one is available.
-
Most cores have two threads but when profiling the apps there are lots of different threads ranging from thread 128 to thread 3460.
-
Only one thread can run on a core at once.
-
Different threads running actually just thread jumping onto the CPU and running for short periods of time, then being switched out with other threads which also need to run.
-
Multithreading is the process of having more than one thread per process.
-
Multiple threads are still handy without multiple cores. But, Multiple cores without multiple threads isn't handy, in fact, it's totally useless.
-
You can have many threads running on a single core, and you can have situations where only one thread runs despite the presence of more cores.
-
Multicore is a hardware characteristic, whereas the number of threads is something in the domain of the OS and the processes running on it.
-
A multi-core processor is a single computing component with two or more independent actual central processing units (called "cores"), which are the units that read and execute program instructions. Each core is actually a CPU.
-
Multi-core processors are widely used across many application domains, including general-purpose, embedded, network, digital signal processing (DSP), and graphics (GPU).
-
Multi-core chips also allow higher performance at lower energy.
-
Multiple threads can interfere with each other when sharing hardware resources such as caches or translation lookaside buffers.
-
Multi-core processors require adjustments both to the operating system (OS) support and to existing application software.
-
Multicore technology is very effective in challenging tasks and applications, such as encoding, 3D gaming, and video editing.