Off-line mapping of real-time applications onto massively parallel processor arrays

On-chip networks (NoCs) used in chip-multiprocessors (CMPs) pose significant challenges to both on-line and off-line real-time scheduling approaches. They have large numbers of potential contention points, have limited internal buffering capabilities, and network control operates at the scale of small data packets. Therefore, precise schedulability analysis requires scalable algorithms working on hardware models with a level of detail that is unprecedented in real-time scheduling. We consider here an off-line scheduling approach, and we target massively parallel processor arrays (MPPAs), which are CMPs with large numbers (hundreds) of processing cores. We first identify and compare the hardware mechanisms supporting precise timing analysis and efficient resource allocation in existing MPPA platforms. We determine that the NoC should ideally provide the means of enforcing a global communications schedule that is computed off-line and which is synchronized with the scheduling of computations on processors. On the software side, we propose a novel allocation and scheduling method capable of synthesizing such global computation and communication schedules covering all the execution, communication, and memory resources in an MPPA. To allow an efficient use of the hardware resources, our method takes into account the specificities of MPPA hardware and implements advanced scheduling techniques such as pre-computed preemption of data transmissions and pipelined scheduling. We evaluate our technique by mapping two signal processing applications, for which we obtain good latency, throughput, and resource use figures. Key-words: real-time scheduling, MPPA, NoC ha l-0 09 19 41 1, v er si on 1 16 D ec 2 01 3 Répartition hors ligne d’applications temps-réel sur des architectures massivement parallèles Résumé : Les réseaux sur puce utilisés dans les architectures multiprocesseurs sur puce posent de nouveaux défis concernant les méthodes d’ordonnancement en ligne et hors ligne. Ils contiennent un grand nombre de points potentiels de contention, ont des capacités interne de mise en mémoire tampon limitées, et le contrôle du réseau s’opère à l’échelle des paquets de données. Par conséquent, une analyse d’ordonançabilité précise nécessite des algorithmes de faible complexité et qui travaillent sur des modèles d’architectures matérielles d’une précision et d’un niveau de détail sans précédent dans le domaine de l’ordonnancement temps-réel. Nous considérons ici une approche d’ordonnancement hors ligne, et nous ciblons des architectures massivement parallèles (MPPAs), qui sont des multiprocesseurs sur puce avec un grand nombre (de l’ordre de plusieurs centaines) de cœurs de calcul. Dans un premier temps, nous identifions et comparons les mécanismes matériels qui permettent une analyse temporelle précise, et une allocation des ressources efficace pour les plateformes MPPA existantes. Nous determinons ainsi que, dans l’idéal, le réseau sur puce devrait fournir les moyens d’imposer un ordonnancement global des communications qui soit calculé hors ligne, et synchronisé avec l’ordonnancement des calculs sur les processeurs. Côté logiciel, nous proposons une méthode inédite d’allocation et d’ordonnancement capable de synthétiser de tels ordonnancements des calculs et des communications, qui inclue toutes les ressources de calcul, de communication et de mémoire dans un MPPA. Afin de permettre une utilisation efficace des ressources matérielles, notre méthode prend en compte les spécificités matérielles des MPPAs, et implante des techniques d’ordonnancement avancées telles que la préemption précalculée des transmissions de données, et l’ordonnancement pipeliné. Nous évaluons notre technique sur deux applications de traitement de signal, pour lesquelles nous obtenons de bons résultats en termes de latence, de cadence et d’utilisation des ressources. Mots-clés : ordonnancement, temps-réel, MPPA, NoC ha l-0 09 19 41 1, v er si on 1 16 D ec 2 01 3 Off-line mapping of real-time applications onto massively parallel processor arrays 3