The Berkeley Open Infrastructure for Network Computing (BOINC) is an opensource middleware system for volunteer and desktop grid computing. In this paper, we propose BNBTEST, a BOINC version of the distributed branch-andbound method. The crucial issues of the distributed branch-and-bound method are traversing the search tree and loading the balance. We developed a subtask packaging method and three different subtask distribution strategies to solve these.Keywords BOINC, branch-and-bound method, distributed computing, volunteer computing, desktop grid
IntroductionMany problems in the areas of operations research, and artificial intelligence can be defined as combinatorial optimization problems. The branch-and-bound method (B&B) is a universal and well known algorithmic technique for solving problems of that type. The root of the tree is the original problem, and the other nodes represent subproblems to be solved. Though the algorithm considerably decreases the computational time required to explore the entire solution space, running time remains unbearable. Using parallel or distributed processing is one of the most popular ways to resolve this issue. The implementation of B&B algorithms on parallel machines was studied in numerous papers [11,13,15,20,[24][25][26]. All of these solvers are based on parallel computation frameworks that are flexible and only useful for tightly-coupled or shared-memory distributed systems.Over the last decade, we have observed an emergent growth of new HPC platform volunteer computing grids or desktop grids (DGs) [17]. Unlike conventional parallel computers, this platform has not been sufficiently explored as a target for branch-andbound methods. DGs are a highly dynamic and heterogeneous distributed computing platform. BOINC [9] is one of the typical DGs platforms, which has been developed by a team based at the Space Sciences Laboratory (SSL) at the University of California. It was originally developed to support the SETI@home [10] project before it became useful as a platform for other distributed applications in areas as diverse as mathematics, medicine, molecular biology, climatology, and astrophysics. BOINC has recently become widely popular, in both theory and practice. Devising an efficient B&B implementation for BOINC is a challenging and practically important problem. The approach proposed in our paper addresses this issue.We implemented a branch-and-bound solver for the NP-hard 0-1 knapsack problem [8]. The classical knapsack problem is defined as follows: given a set of n items, each item j having an integer profit p j and an integer weight w j , one needs to choose a subset of items such that their overall profit is maximized while the overall weight does not exceed the given capacity c. The knapsack problem is stated as the following integer programming model:It is worth noting that our approach is not specific to the knapsack problem, and we will use it to implement other branch-and-bound algorithms. The knapsack problem was chosen as one of the most basic a...