Some Eecient Solutions to the Aane Scheduling Problem Part Ii Multidimensional Time

This paper extends the algorithms which were given in Part I to cases in which there is no aane schedule, i.e. to problems whose parallel complexity is polynomial but not linear. The natural generalization is to multi-dimensional schedules with lexicographic ordering as temporal succession. Multidimensional aane schedules, are, in a sense, equivalent to polynomial schedules, and are much easier to handle automatically. Furthermore, there is a strong connexion between multidimensional schedules and loop nests, which allows one to prove that a static control program always has a multidimensional schedule. Roughly, a larger dimension indicates less parallelism. In the algorithm which is presented here, this dimension is computed dynamically, and is just suucient for scheduling the source program. The algorithm lends itself to a \divide and conquer" strategy. The paper gives some experimental evidence for the applicability, performances and limitations of the algorithm. 1 2 R esum e Dans cet article, les algorithmes qui ont et e propos e dans la premi ere partie sont etendus au cas o u le programme source n'a pas de base de temps aane, c'est-a-dire a des algorithmes dont la complexit e parall ele est polynomiale mais non lin eaire. La solution naturelle est l'emploi de bases de temps a plusieurs dimensions, l'ordre de succession temporelle etant l'ordre lexi-cographique. Les bases de temps multidimensionnelles sont, en un certain sens, equivalentes a des bases de temps polynomiales, et sont beaucoup plus faciles a manipuler algorithmiquement. De plus, il y a une connexion forte entre bases de temps multidimensionnelles et nids de boucles, ce qui permet de d emontrer qu'un programme a contr^ ole statique a toujours une base de temps multidimensionnelle. En gros, plus grande est la dimension et moins il y a de parall elisme. Dans l'algorithme ici pr esent e, cette dimension est d etermin ee dynamiquement; elle est juste suusante pour permettre l'ordonnancement du programme source. Ennn, cet algorithme se pr^ ete a l'application de la strat egie \diviser pour r egner". On pr esente en conclusion quelques r esultats exp erimentaux permettant de juger du domaine d'application, des performances et des limitations de l'algorithme. 3 do i = 0,n do j = 0,i 1 s = s + a(i,j) end do end do Figure 1: A simple program with no linear schedule Instruction Domain 1 0 i n 0 j i