Performance Flashcards
What is Parallelism?
Two or more processes
that execute simultaneously and
independently
What is Concurrency?
Two or more processes that execute simultaneously and share at least one resource
What is a Processor?
The electronic circuitry that executes instructions comprising a program. There can be many processors in a computer system e.g. graphics processor, video processor. When left unqualified, usually refers to CPU.
What is a CPU?
This is (one of) the main general-purpose processor(s) in a computer system, not a specific purpose e.g. video decompression
What is a Die?
Refers to the silicon wafer containing the processor (usually the CPU when no other context is given) along with other components required for interfacing e.g. memory controller.
What is a Socket?
Refers to the component containing the processor die, and includes the physical connectors to plug in to the motherboard
What is a Core?
(HARDWARE) A SMALL CPU OR PROCESSOR BUILT INTO A BIG CPU OR CPU SOCKET. IT CAN INDEPENDENTLY PERFORM OR PROCESS ALL COMPUTATIONAL TASKS
What is a Thread?
(SOFTWARE) A SINGLE SEQUENTIAL FLOW OF CONTROL IN A PROGRAM.
IT IS THE SMALLEST UNIT THAT CAN BE MANAGED BY AN OS SCHEDULER.
EACH THREAD HAS ITS OWN PROGRAM COUNTER, REGISTERS AND STACK.
What is a Node?
• Normally thought of as one “computer”
• A single motherboard
• May have:
• More than one CPU
• Each CPU will have many cores
• One or more accelerators (GPU etc.)
We use OpenMP to program within the node
What is a Cluster/Supercomputer?
A collection of 100s/1000s of nodes connected through a high-speed interconnect (this is what makes it different to a server).
What is a single precision floating-point?
Formally called the IEEE 754 single-precision binary floating-point format: binary32. This is a format for representing floating-point numbers in computers using a total of 32 bits.
Corresponds to the C datatype float. Also called float32/FP32.
What is a double precision floating-point?
Also part of the same IEEE 754 specification as double-precision binary
floating-point format: binary64.
This represents floating-point numbers using 64 bits. Corresponds to the C datatype double. Also called float64/FP64.
What is a Flop?
Abbreviation for floating-point operation.
Usually means either an addition or multiplication of two floating-point numbers but other operations could be included.
A common unit of measurement of processor speed is flops/s.
Usually has to be qualified with either single or double precision to be specific.
What is the RPeak for a single node?
𝑅𝑝𝑒𝑎𝑘 = 2 ∗ 𝑊𝑣𝑒𝑐 ∗ 𝑟𝑐𝑙𝑜𝑐𝑘 ∗ 𝑛𝑐𝑜𝑟𝑒 ∗ 𝑛𝑠𝑜𝑐𝑘𝑒𝑡
Where
𝑤𝑣𝑒𝑐: Vector width
𝑟𝑐𝑙𝑜𝑐𝑘: Clock speed
𝑛𝑠𝑜𝑐𝑘𝑒𝑡 : Sockets per node
𝑛 𝑐𝑜𝑟𝑒: Cores per socket
How to calculate observed runtime?
𝑟𝑜 = 𝑟𝑡 + 𝜖
Where
• 𝑟𝑜 – Observed runtime (The physical time it took to run)
• 𝑟𝑡 – True runtime (The time actually running)
• 𝜖 – Noise (Hinderances to your program running)