Resource allocation for heterogeneous computing systems: performance criteria, robustness measures, optimization heuristics, and properties - Briceno Guerrero, Luis Diego, author; Siegel, Howard Jay, advisor; Maciejewski, Anthony A., advisor; Böhm, Anton Pedro Willem, 1948-, committee member; Jayasumana, Anura P., committee member; Smith, James T., committee member (Colorado State University. Libraries, 2010)
Heterogeneous computing (HC) is the coordinated use of different types of machines, networks, and interfaces to maximize the combined performance and/or cost effectiveness of the system. The application environments studied in this research are: a weather data processing system, a massive multi-player on-line gaming system, and a distributed satellite image processing system. Each one of these application environments was simulated on different computation platforms. Contributions for each environment: (1) mathematical model of environment, (2) defined a performance criterion, (3) defined robustness metric, (4) designed resource allocation heuristics based on performance and robustness measures, and (5) conducted simulation studies for evaluating and comparing heuristic techniques. We consider an iterative approach that decreases the finishing time of machines by repeatedly executing a resource allocation heuristic to minimize the make span of the considered machines and tasks. For each successive iteration, the make span machine of the previous iteration and the tasks assigned to it are removed from the set of considered machines and tasks. The contribution include identifying which characteristics heuristics need to generate improvement with the iterative approach, showing that the effectiveness of the iterative approach is heuristic dependent, and deriving a theorem to identify which heuristics cannot attain improvements.
Department Head: Anthony A. Maciejewski.
Keywords: Computing algorithms; heterogeneous computing; robustness; resource allocation; heuristics; Heterogeneous computing; Parallel processing (Electronic computers); Heuristic programming