A parallel compiler maps iterations of a nested loop to processor elements
in a parallel array and schedules a start time for each iteration such
that the processor elements are fully utilized without being overloaded.
The compiler employs an efficient and direct method for generating a set
of iteration schedules that satisfy the following constraints: no more
than one iteration is in initiated per processor element in a specified
initiation interval, and a new iteration begins on each processor element
nearly every initiation interval. Since the iteration scheduling method
efficiently generates a set of schedules, the compiler can select an
iteration schedule that is optimized based on other criteria, such as
memory bandwidth, local memory size of each processor element, estimated
hardware cost of each processor element, etc. The iteration scheduling
method is useful for compilers where the underlying architecture is fixed,
as well as for an automated processor array synthesis system where the
nested loop is converted into a set of parallel processes for synthesis
into a parallel processor array.
Un compilateur de parallèle trace des itérations d'une boucle nichée aux éléments de processeur dans une rangée parallèle et programme une heure de départ pour chaque itération tels que les éléments de processeur sont entièrement utilisés sans être surchargée. Le compilateur utilise une méthode efficace et directe pour produire d'un ensemble de programmes d'itération qui satisfont les contraintes suivantes : pas plus d'une itération est dedans lancée par élément de processeur dans un intervalle indiqué de déclenchement, et une nouvelle itération commence sur chaque élément de processeur presque chaque intervalle de déclenchement. Puisque la méthode d'établissement du programme d'itération produit efficacement d'un ensemble de programmes, le compilateur peut choisir un programme d'itération qui est optimisé a basé sur d'autres critères, tels que la largeur de bande de mémoire, la capacité de la mémoire locale de chaque élément de processeur, le coût estimatif de matériel de chaque élément de processeur, etc... La méthode d'établissement du programme d'itération est utile pour des compilateurs où l'architecture fondamentale est fixe, aussi bien que pour un système automatisé de synthèse de rangée de processeur où la boucle nichée est convertie en ensemble de processus parallèles pour la synthèse en rangée parallèle de processeur.