Glossary
Core
The Power6 is a dual core processor module. This means that there are two Power6 cores on each module. They share the same level 3 cache and the memory controller.
CPU
A CPU in Power6 world is mostly a logical CPU. Each Power6 core has all the infrastructure to look like two CPUs to the operating system. Since those two CPUs share most of their functional units and resources, they can't always run in parallel. If two threads or processes running on the same core attempt to make full use the same functional unit, e.g. the floating point unit, then one thread has to wait. They can however use different units at the same time thus increasing the usage of the whole core.
HLRE-project
Computing time and disk space at blizzard (aka "HLRE, Hochleistungsrechner für die Erdsystemforschung") are allocated not to individual users but to projects. Accounted computing time of jobs on blizzard always gets charged to one of thes projects. By default this is the project specified in the file .acct in a users home directory on blizzard.
Node
A p575 server node consists of four quads or 32 cores or 64 CPUs. 64 is the maximum possible number of OpenMP threads. There are however strong reasons to limit the number of threads per process to 16 (see quad).Process
A process is an instance of a computer program, consisting of one or more threads, that is being sequentially executed by a computer system that has the ability to run several computer programs concurrently (from wikipedia).Each process has its own memory which is not shared with other processes. An MPI program usually runs as several processes which rely on the MPI library to exchange data among the processes.
Quad (a.k.a. MCM)
Eight cores form a quad in which all cores have fast access to the local memory of each processor module. Accessing memory from a foreign quad inside the node is slower than inside the quad. This is the reason why OpenMP programs should run only on a quad thus limiting the recommended number of threads in one process to 16.
SMT
Simultaneous Multithreading. If you are using both CPUs in a core then your program is making use of SMT. SMT is usually needed to use the hardware more efficiently.As in any architecture based on NUMA (Non-Uniform Memory Access), binding of a process or thread to a CPU and its local memory is very important for good performance. With the introduction of SMT it now becomes important even to differenciate between binding to a core and CPU binding.
Task
A task is another name for process used by IBM.Thread
A process can create several threads which share most of the memory
while maintaining their own stack and registers. OpenMP programs
usually use threads to implement their parallel execution model.
