Unit 7 Flashcards
A computer system with at least two processors. This computer is in contrast to a uniprocessor, which has one, and is increasingly hard to find today.
Multiprocessor
Utilizing multiple processors by running independent programs simultaneously.
Task-level parallelism or process-level parallelism
A single program that runs on multiple processors simultaneously.
Parallel processing program
A set of computers connected over a local area network that function as a single large multiprocessor.
Cluster
A microprocessor containing multiple processors (“cores”) in a single integrated circuit. Virtually all microprocessors today in desktops and servers are multicore.
Multicore microprocessor
A parallel processor with a single physical address space.
Shared memory multiprocessor (SMP)
Speed-up achieved on a multiprocessor without increasing the size of the problem.
Strong scaling
Speed-up achieved on a multiprocessor while increasing the size of the problem proportionally to the increase in the number of processors.
Weak scaling
A uniprocessor.
SISD or single instruction stream, single data stream
A multiprocessor.
MIMD or multiple instruction streams, multiple data streams
The conventional MIMD programming model, where a single program runs across all processors.
SPMD or single program, multiple data streams
The same instruction is applied to many data streams, as in a vector processor.
SIMD or single instruction stream, multiple data streams
Parallelism achieved by performing the same operation on independent data.
Data-level parallelism
The basic philosophy of blank is to collect data elements from memory, put them in order into a large set of registers, operate on them sequentially in registers using pipelined execution units, and then write the results back to memory.
vector architecture
One or more vector functional units and a portion of the vector register file. Inspired by lanes on highways that increase traffic speed, multiple lanes execute vector operations simultaneously.
Vector lane
Increasing utilization of a processor by switching to another thread when one thread is stalled.
Hardware multithreading
A thread includes the program counter, the register state, and the stack. It is a lightweight process; whereas threads commonly share a single address space, processes don’t.
Thread
A process includes one or more threads, the address space, and the operating system state. Hence, a process switch usually invokes the operating system, but not a thread switch.
Process
A version of hardware multithreading that implies switching between threads after every instruction.
Fine-grained multithreading
A version of hardware multithreading that implies switching between threads only after significant events, such as a last-level cache miss.
Coarse-grained multithreading
A version of multithreading that lowers the cost of multithreading by utilizing the resources needed for multiple issue, dynamically scheduled microarchitecture.
Simultaneous multithreading (SMT)
A multiprocessor in which latency to any word in main memory is about the same no matter which processor requests the access.
Uniform memory access (UMA)
A type of single address space multiprocessor in which some memory accesses are much faster than others depending on which processor asks for which word.
Nonuniform memory access (NUMA)
The process of coordinating the behavior of two or more processes, which may be running on different processors.
Synchronization