Bounding the minimal completion time in high-performance parallel processing. (15th March 2006) - Lundberg, Lars; Broberg, Magnus; Klonowska, Kamilla
Many parallel systems used in high-performance computing do not allow process relocation at run-time. It is thus important to find a good allocation of processes to processors. As the problem of finding an allocation that results in minimal completion time is NP-hard, one has to resort to heuristic algorithms for finding good allocations. One major drawback with heuristic algorithms is that we do not know whether the result is close to optimal or it is worthwhile to continue the heuristic search for better allocations. In this paper, we present a method for finding an upper bound on the minimal completion time for a given program. If the completion time using the current allocation is above this bound, we know that it is worthwhile to continue the search for better allocations. The bound, which is optimally tight using the available information, is based on some parameters derived from the program and describing the hardware platform. A practical demonstration of the method is presented using a tool that produces the bound for multithreaded C-programs executing in a parallel Sun/Solaris environment.