Each SMP has four Alpha 21064A processors, each processor has a 4MB direct-mapped L2 cache. These decisions are not a fundamental to the design of KeLP, though they do shed light on some performance limitations on the Alpha Cluster.
All threads execute the collective level code, analogously to SPMD execution.
The nodeIterator and procIterator constructs mask out execution with a conditional, so only the appropriate threads execute the appropriate loop bodies. A variant of the mover performs arithmetic updates like addition which is useful in multilevel methods. The communication thread waits on the semaphore. When the communication thread wakes up, it dereferences the Mover pointer, and carries out the various steps involved in moving the data. Because a Mover may encode a complicated communication pattern, the cost of enqueueing the descriptor is usually amortized over multiple data transmissions.