Multi-core and Parallel Systems

Cards (23)

  • 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.