In MaCS, there are only workers (no controller as in PaCCS)who work independently and are responsible for all operations.When a worker exhausts its work pool, it attempts to steal work, first locally, and if that fails, remotely. Locally, work is stolen from the shared region of the other workers’ (the victim)work pool and is entirely performed without the victim’s awareness of the steal. Remotely, a worker uses GPI’s onesided
communication to find a victim, without disturbing it, and to issue a work request in case a victim with a surplus of work is found. This aims at reducing the number of attempts to steal remotely and the time spent on load balancing.However, the steal operation requires the victim’s cooperation and involves introducing a polling step, where each worker checks for remote steal requests. In the presence of one, the
victim worker writes directly to the thief’s private region of the work pool, again using GPI’s one-sided communication and avoiding any intermediate buffering. While the victim returns to the solving process, the write operation proceeds asynchronously.