The IPU is a true BSP machine. It faithfully follows all aspects of the BSP paradigm. The phases loop through supersteps following three particular steps.
- Local computation, with emphasis on the locality. All used memory must be local, and each tiles local memory is where the computations are performed.
- Communication, where each process has opportunity to send or request (and then receive) from other memory locations
- and Barrier Synchronization, where all processes halt until the superstep starts a new loop.
A key note is how faithfully the IPU implements the BSP paradigm to allow the compiler to provide known guarantees, and help the user to comprehend the way to program the device.