Abstract: Making efficient use of processes is a problem in scheduling. Scheduling is concerned with apportioning the workload among processes in the most equitable manner. According to this definition, loop splitting, self-scheduling, and expression splitting are examples of scheduling. Writing parallel programs is complicated by the desirability of balancing the workload among processes and, by implication, the available processors. For example, if one has sixteen processors available, so that one wants to use sixteen processes, but a loop being executed in parallel only has ten iterations. It is inefficient to have sixteen processors available but to be able to use only ten of them in a particular program section. If there is only a single loop, then only expression splitting can improve the situation. However, for nested loops, there is hope. This chapter discusses the problem of scheduling with reference to two nested small loops. The problem of small loops arises when the number of iterations of each of the loops is comparable to or smaller than the number of processes. The chapter presents the small-loop problem and several possible resolutions using the example of the multiplication of a vector by an array.
Publication Year: 1989
Publication Date: 1989-01-01
Language: en
Type: book-chapter
Indexed In: ['crossref']
Access and Citation
AI Researcher Chatbot
Get quick answers to your questions about the article from our AI researcher chatbot