Parallel Processing and Applied Mathematics

Parallel programs require an interprocess synchronization. There are many synchronization paradigms, but almost all of them explicitly or implicitly use waiting. We propose another approach. Instead of waiting for a condition, a process can interrupt / abandon the current activity when the condition is met. We propose to use conditions reflecting the global application state and we give a proposal how to construct such conditions. We discuss questions concerning semantics of the proposed system how and when the conditions are evaluated and in what situations an interrupt can occur. The synchronization system allows simple and compact parallel algorithm implementations. As a practical example a parallel branch and bound algorithm with dynamic load balancing is shown. The usage of interrupts and cancellations enabled us to avoid superfluous computations, which often decrease the efficiency in parallel branch and bound programs.