SummaryThis paper presents how parallel advanced graph partitioning algorithms can be designed and improved with the use of global application states monitoring of distributed programs. The proposed algorithms have been implemented inside a novel distributed program design framework Program Execution Governed by Asynchronous Supervision of States in Distributed Applications (PEGASUS DA). This framework provides system support for the design of execution control in distributed applications based on automated global state monitoring. Two strategies for the control design of advanced parallel/distributed graph partitioning algorithms are presented and discussed. In the first one, the parallel algorithm control runs on top of the popular graph partitioning METIS tool. The second control strategy is based on genetic programming so that partitioning primitives and the overall algorithmic control can be freely designed by the user. Advanced partitioning methods have been conveniently embedded inside the global state monitoring driven PEGASUS DA framework which controls partitioning distributed actions at the level of processes and threads. The use of the framework allowed easy design and testing of different graph optimization strategies. The presented graph partitioning methods are illustrated by experiments with benchmark graphs. The experiments have comparatively assessed the obtained graph partitioning quality (visible improvement has been observed) and have identified benefits of the proposed approach for programmers.
Read full abstract