Multi-core CPUs have multiple independent cores that can complete instructions separately which results in higher performance.
Single core CPUs are older designs where there is only one processing unit on the CPU chip, meaning it cannot perform more than one task at once.
Dual core CPUs contain two separate processing units on the same chip, allowing them to execute tasks simultaneously.
Quad core CPUs consist of four individual processing units on the same chip, enabling even faster execution of tasks compared to dual core CPUs.
A multicore system has more than one processing unit in a single processor which can independently process multiple instructions at the same time
Multithreading allows an operating system or application program to divide its work into smaller parts called threads, which can be executed by different cores within a multi-core processor.
The number of cores in a processor determines how many tasks it can handle concurrently without waiting for other tasks to finish.
Computers with multiple cores can use parallel processing where each core can work on the same task to complete it more quickly, or each core can work on separate tasks simultaneously
Parallel processing can also be achieved by utilising more than one processor (a CPU and a GPU)
If a task can be divided into subtasks that can be executed simultaneously, the total execution time can be reduced when using multi-core or parallel core processors
Simultaneous computation can take place on different data subsets (this would be used in machine learning, data mining and scientific computing)
Parallel processing allows for better use of computer resources as multi-core or multiple processors can be used more effectively
Problems which are large and complex (which lend themselves to parallel processing) can be solved more easily
Real-time applications including graphics rendering are more feasible using multi-core architecture
Even with an infinite number of processors, there is a limit to the maximum speed improvement that can be made using parallel processing if a part of the program can’t be parallelised
It is harder to write code for parallel processing than serial processing. Tasks have to be synchronised and data shared correctly
It is more difficult to debug a parallel program than a serial program due to the precise timing of specific events
Communication between processors can take significant time and resources, potentially outweighing the benefits of using parallel processing
Not all tasks can be run in parallel as some must be executed serially
When using a single core processor, a background task like anti-malware scans can slow down the user's other task. A multi-core processor can assign the background task to one core, to reduce the impact on the other task
Each core can work on a different task - this is particularly effective when the user has multiple applications open at the same time
Threads are lightweight processes that share memory space with their parent process (the main thread). This means they do not require additional system resources such as RAM or CPU cycles
Multi-threaded programming allows an application to use multiple threads running simultaneously within a single core or across multiple cores.