Minimizing I/Os in Out-of-Core Task Tree Scheduling - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Rapport (Rapport De Recherche) Année : 2017

Minimizing I/Os in Out-of-Core Task Tree Scheduling

Résumé

Scientific applications are usually described as directed acyclic graphs, where nodes represent tasks and edges represent dependencies between tasks. For some applications, such as the multifrontal method of sparse matrix factorization, this graph is a tree: each task produces a single output data, used by a single task (its parent in the tree). We focus on the case when the data manipulated by tasks have a large size, which is especially the case in the multifrontal method. To process a task, both its inputs and its output must fit in the main memory. Moreover, output results of tasks have to be stored between their production and their use by the parent task. It may therefore happen, during an execution, that not all data fit together in memory. In particular, this is the case if the total available memory is smaller than the minimum memory required to process the whole tree. In such a case, some data have to be temporarily written to disk and read afterwards. These Input/Output (I/O) operations are very expensive; hence, the need to minimize them. We revisit this open problem in this paper. Specifically, our goal is to minimize the total volume of I/O while processing a given task tree. We first formalize and generalize known results, then prove that existing solutions can be arbitrarily worse than optimal. Finally, we propose a novel heuristic algorithm, based on the optimal tree traversal for memory minimization. We demonstrate good performance of this new heuristic through simulations on both synthetic trees and realistic trees built from actual sparse matrices.
Les applications de calcul scientifique sont souvent décrites comme des graphes de tâches dirigés et acycliques, où les noeuds représentent les tâches et les arêtes représentent les dépendances entre tâches. Pour certaines applications, comme les méthodes multifrontales de factorisation de matrices creuses, le graphe correspondant est un arbre: chaque tâche produit un unique fichier de données en sortie qui est utilisé par une unique tâche (son père dans l’arbre). On s’intéresse ici dans le cas où les fichiers de données manipulés par les tâches sont de grande taille, ce qui est en particulier le cas dans les méthodes multifrontales. Pour traiter une tâche, ses fichiers d’entrée et de sortie doivent se trouver dans la mémoire principale. De plus, les fichiers de sortie doivent être stockés entre leur création et leur utilisation par la tâche père. Il peut donc arriver que, durant une exécution, la mémoire disponible soit inférieure à la mémoire minimum requise pour traiter l’arbre complet.Dans ce cas, certaines données doivent être temporairement transférées sur un disque pour être lues ultérieurement. Ces opérations d’Entrées/Sorties (E/S ou I/O en anglais) sont très coûteuses, d’où le besoin de les minimiser. Nous revisitons dans cet article ce problème ouvert. Plus précisément, notre objectif est de minimiser le volume total d’Entrées/Sorties effectuées en traitant un arbre de tâche donné. Nous commençons par formaliser et généraliser des résultats connus, puis nous prouvons que les solutions existantes peuvent être arbitrairement loin de l’optimal. Finalement, nous proposons une nouvelle heuristique, basée sur le parcours d’arbre minimisant l’utilisation mémoire. Nous établissons les bonnes performances de cette heuristique à travers des simulations sur des arbres synthétiques ainsi que des arbres réalistes construits à partir de matrices creuses réelles.
Fichier principal
Vignette du fichier
INRIA-9025.pdf (669.8 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01462213 , version 1 (08-02-2017)

Identifiants

  • HAL Id : hal-01462213 , version 1

Citer

Loris Marchal, Samuel Mccauley, Bertrand Simon, Frédéric Vivien. Minimizing I/Os in Out-of-Core Task Tree Scheduling. [Research Report] RR-9025, INRIA. 2017. ⟨hal-01462213⟩
219 Consultations
167 Téléchargements

Partager

Gmail Facebook X LinkedIn More