Processor
The CPU does the computational work meaning that it runs programs. A single CPU can only be able to run/perform a single task at a time and therefore the need for running multiple programs at the same time while ensuring effective responsiveness especially when running demanding tasks like video encoding or multitasking can only be supported by multiple CPUs capability.
Multi-core processing
This is the ability of a computer to execute a code concurrently in more than one CPU at the same time. Meaning having more than one units of executions (threads or processes) being interleaved. The multi-core processing architectural layout, the unit physical processor contains two or more processors packaged into a single IC (integrated circuit) commonly known as a dies. Multi-core processing enables the system to undertake multiple tasks/instructions at the same time thereby increasing the overall speed and performance programs that are amenable to parallel computing.
Multithread processing
This is the capability of a program/application or even an operating system process to manage/execute multiple threads (process/requests) concurrently. Under multithreading, processes and threads share the resources provided by the computing units, caches and the translation look aside buffer thereby increasing the utilization of a unit core using thread levels and multiple level parallelism. In multithread processing, multiple requests are executed by the same user without having the need for multiple programs in a computer through threads. Three types of multithreading including block, interleaved and simultaneous multithreading.
Superscalar processor
This is a central processing unit that executes a form of parallelism known as instruction level parallelism within a unit (single)processor. It allows faster and enhanced CPU throughput (the instructions that a unit CPU can execute in a given unit of time) than would be executed otherwise at a given clock rate. The superscalar processor performs more than one instruction by dispatching multiple instructions simultaneously to different processor’s execution units during a clock cycle. It should be noted that the execution units are not separate processing units but are execution resources within a unit CPU. These resources include a bit, a multiplier, an ALU or a shifter. In a superscalar processor, the instruction compiler has the capability of determining whether an instruction can be executed independently or has a dependency on another instruction and must therefore be executed in sequence with it (the other instruction). Multiple executions are carried out by the processor to simultaneously carry out independent instructions at a time.it therefore enables the execution of multiple independent threads thereby utilizing the resources provided by processor better.
Simultaneous multithreading
This is a technique that is used to improve the overall efficiency of superscalar central processing units that contains hardware multithreading.It combines hardware multithreading and superscalar processor technology to enable multiple threads execute instructions each clock cycle. It enables multithreaded programs to execute threads in parallel form instead of threading in a linear design on single multicore processors.
Hyper-threading
This is a microprocessor technology that allows one processor to act like multiple/separate processors to the operating system and the programs that are using it. It functions by duplicating some parts of the processor especially those that stores the architectural state and not the duplication of the main execution resources, thereby allowing a hyper-threading processor to appear as two (the physical processor as well as anextra logical processor hosting the OS)
Graphical processing unit
A GPU primarily used for 3D applications is a single chip processor that has the ability of creating lighting effects and transforming objects when 3D scenes are redrawn. It is a specialized circuit that is designed to promptly manipulate and alter memory to speed up the creation of images in a buffer frame that is intended for output display. They use