What would you prefer, multicore or multiprocessor? While both have their own qualities, knowing the little differences between the two wouldn’t hurt and could even save you from a stressful decision. Budget-wise or efficiency-wise, there are things to consider before deciding.
A Multi-core processor is a single computing component that has two or more independent cores or processing units. These cores are the ones that read and perform your program’s instructions on your CPU. These instructions are basically your ordinary CPU instructions like add, move data, and branch.
Being a multi-core processing unit, it can execute multiple instructions at the same time. A multi-core processor is intended to lessen the heat coming off your CPU and to increase the speed of processing these instructions. Programs that are said to have an increase in speed do have to be amenable to parallel computing, meaning that instructions can be divided into smaller ones for the multi-core to execute simultaneously.
These cores are usually integrated into a single IC (integrated circuit) die, or onto multiple dies but in a single chip package. A single chip package is a surface mount technology package for your IC. In other words, it houses your much needed electronic parts where your program’s instructions are performed.
In a multiprocessor system two or more CPU’s or central processing units are integrated into a single computer system. So basically it’s having two or more CPU’s on a system physically. Take note however, the system must have support for a multiprocessor to work. It is intended to have a processor perform a program instruction, while the other processor simultaneously performs a different program instruction, speeding up your computing process.
With your multiprocessor, there are things that are worth mentioning like your processor symmetry where you’ll have the option of configuring your system to treat your multiple CPU’s equally. This is called symmetric multiprocessing; alternatively you can configure them in a way where CPU’s are not equal, meaning your system’s resources are divided according to your instructions, called asymmetric multiprocessing.
Another one would be your processor coupling. Your multiple CPU’s that are connected at the bus level have access to a central shared memory, or participate in a memory hierarchy with both local and shared memory. This is common for a PC system user. On the other hand, multiple CPU’s can also be connected via a high speed communication system, in other words multiple separate CPU’s that are connected to work together and are viewed as a single system. This is more common for high performing systems in companies.
|Single or multiple integrated circuit die/s||Single or multiple systems|
|Cheaper (single CPU that does not require multiple CPU support system)||Expensive (Multiple separate CPU’s that require a system that supports multiprocessors)|
|Will have less traffic (cores integrated into a single chip and will require less time)||Will have more traffic (distances between the two will require a longer time)|
|Does not need to be configured||Needs a little complex configuration|
|Faster running a single program||Faster running multiple programs|
Both may seem sound similar, but they actually differ in many ways. Actually, the only similarities they have are their intentions of speeding up your computing processes.
A multicore uses a single CPU while a multiprocessor uses multiple CPU’s. That being said, a multiprocessor system will cost more and will require a certain system that supports multiprocessors. In regards to their speed, if both systems have the same clock speed, number of CPU’s and cores and RAM, the multicore system will run more efficiently on a single program. This is because the cores can execute multiple instructions at the same time, but not multiple programs; this is because of its shared cache (L1, L2, and L3). This is where your multiprocessor comes in handy. With each CPU having their own cache, they can execute programs simultaneously but will take longer than your multicore.
To summarize, a multicore system is a more favorable system for ordinary users. It does not demand any support or extra configurations and will likely cost a bit less. Performance-wise, depending on how you run your programs, each has their pros and cons.
You can learn more about multiprocessing here.