Partitioning Problems in Parallel, Pipeline, and Distributed Computing
IEEE Transactions on Computers
An Optimal Execution Time Estimate of Static versus Dynamic Allocation in Multiprocessor Systems
SIAM Journal on Computing
STiNG: a CC-NUMA computer system for the commercial marketplace
ISCA '96 Proceedings of the 23rd annual international symposium on Computer architecture
Programming with threads
The SGI Origin: a ccNUMA highly scalable server
Proceedings of the 24th annual international symposium on Computer architecture
Using Recorded Values for Bounding the Minimum Completion Time in Multiprocessors
IEEE Transactions on Parallel and Distributed Systems
SIAM Journal on Computing
Scheduling Computer and Manufacturing Processes
Scheduling Computer and Manufacturing Processes
Optimal Worst Case Formulas Comparing Cache Memory Associativity
SIAM Journal on Computing
Visualization and Performance Prediction of Multithreaded Solaris Programs by Tracing Kernel Threads
IPPS '99/SPDP '99 Proceedings of the 13th International Symposium on Parallel Processing and the 10th Symposium on Parallel and Distributed Processing
WildFire: A Scalable Path for SMPs
HPCA '99 Proceedings of the 5th International Symposium on High Performance Computer Architecture
VPPB -- A Visualization and Performance Prediction Tool for Multithreaded Solaris Programs
IPPS '98 Proceedings of the 12th. International Parallel Processing Symposium on International Parallel Processing Symposium
Evaluating the Performance Implications of Binding Threads to Processors
HIPC '97 Proceedings of the Fourth International Conference on High-Performance Computing
Hi-index | 0.00 |
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.