In this chapter…:

In this chapter… CONDITIONS OF PARALLELISM PROBLEM PARTITIONING AND SCHEDULING PROGRAM FLOW MECHANISMS SYSTEM INTERCONNECT ARCHITECTURES Sumit Mittu, Assistant Professor, CSE/IT, Lovely Professional University 2

CONDITIONS OF PARALLELISM Hardware and Software Parallelism:

PROGRAM PARTITIONING AND SCHEDULING Grain Packing and Scheduling:

PROGRAM PARTITIONING AND SCHEDULING Grain Packing and Scheduling Sumit Mittu, Assistant Professor, CSE/IT, Lovely Professional University 13 Fundamental Objectives To partition program into parallel branches, program modules, micro-tasks or grains to yield shortest possible execution time Determining the optimal size of grains in a computation Grain-size problem To determine both the size and number of grains in parallel program Parallelism and scheduling/synchronization overhead trade-off Grain Packing approach Introduced by Kruatrachue and Lewis (1988) Grain size measured by number of basic machine cycles (both processor and memory) needed to execute all operations within the node

PROGRAM PARTITIONING AND SCHEDULING Grain Packing and Scheduling:

PROGRAM PARTITIONING AND SCHEDULING Static Multiprocessor Scheduling:

PROGRAM PARTITIONING AND SCHEDULING Static Multiprocessor Scheduling Sumit Mittu, Assistant Professor, CSE/IT, Lovely Professional University 17 Node Duplication scheduling To eliminate idle time and further reduce communication delays among processor, nodes can be duplicated in more than one processors Grain Packing and Mode duplication are often used jointly to determine the best grain size and corresponding schedule. Steps involved in grain determination and process of scheduling optimization: Step 1: Construct a fine-grain program graph Step 2: Schedule the fine-grain computation Step 3: Perform grain packing to produce the coarse grains Step 4: Generate a parallel schedule based on the packed graph