Solutions to Parallel and Distributed Computing Problems: Lessons from Biological Sciences
by Albert Y. Zomaya, Fikret Ercal, Stephan Olariu
6.1 INTRODUCTION
Different portions of an application task often require different types of computation. In general, it is impossible for a single machine architecture with its associated compiler, operating system, and programming tools to satisfy all the computational requirements in such an application equally well. One type of heterogeneous computing (HC) environment consists of a suite of different types of machines, high-speed interconnections, interfaces, operating systems, communication protocols, and programming environments that provide a variety of architectural capabilities. Such an HC environment can be orchestrated to perform an application that has diverse execution requirements [17, 20, 22, 32, 46, 47, 50]. An application task can be decomposed into subtasks, where each subtask is computationally homogeneous (well-suited to a single machine), and different subtasks may have different machine architectural requirements. These subtasks may have data dependencies among them. A group of independent tasks, known as a meta-task, can also be executed in the HC environment. The tasks in a meta-task have no data dependencies among them, and may have different architectural requirements.
Once the set of subtasks or independent tasks to be executed is known, the following decisions must be made: matching, i.e., assigning subtasks or independent tasks to machines, and scheduling, i.e., ordering subtask or independent task execution for each machine and (for subtasks) ordering ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access