
The more general concept is often called SMT for Intel x86 processors this is called “hyper-threading”, while Hardware can map more than one software thread to a core on Pthreads, winthreads, CUDA, OpenCL, and OpenACC. Spreading computation over multiple threads, such as OpenMP, There are manyĭifferent programming abstractions that create and manage

thread A stream of instructions for a core to execute. Node is often the smallest amount of a large compute cluster A normal laptop or desktop computer is a node. Shared access to the same memory without requiring any network node A group of sockets that share coarser-level locality, such as

This makes it more efficient to spreadĬomputational work over cores within a socket than over cores socket A group of cores that share some kind of locality, such as a Several layers of caches associated with a core. To access than main memory, kind of like the top of a human’sĭesk, compared to their filing cabinet. cache A special kind of memory local to core(s) that is much faster There is normally more than one core in a core A hardware compute unit that actually executes Experienced HPC users can skip this section. Modern computer hardware is complex and heterogeneous, so we need toĭiscuss a little bit of background information and set up someĭefinitions.
