Lieu de réalisation
En ligne
Langue :
François Févotte (Intervention), Luiz Faria (Intervention)
Conditions d'utilisation
Droit commun de la propriété intellectuelle
Citer cette ressource :
François Févotte, Luiz Faria. GroupeCalcul. DataFlowTasks.jl. [Vidéo]. Canal-U. (Consultée le 27 février 2024)


Mise en ligne : 1 décembre 2023
  • document 1 document 2 document 3
  • niveau 1 niveau 2 niveau 3

DataFlowTasks.jl is a Julia package dedicated to parallel programming on multi-core shared memory CPUs. From user annotations (READWRITEREADWRITE) on program data, DataFlowTasks.jl automatically infers dependencies between parallel tasks. Behind the scenes, the user annotations are used to automatically infer task dependencies by constructing and analyzing a directed acyclic graph based on how tasks access the underlying data. The premise is that, for certain kinds of algorithms where constant re-use of data is of paramount importance for performance, it is simpler to specify how tasks depend on data than to directly specify how tasks depend on each other (e.g. manually adding synchronization primitives such as waitfetch, etc).

During this talk, we will discuss the main design principles of DataFlowTasks, as well as when and how DataFlowTasks can be used to effortlessly implement parallel algorithms. We will illustrate the use of DataFlowTasks to parallelize complex, real-life problems, such as:

  • Computation of the longest common subsequence
  • Block Cholesky factorization of dense matrix
  • LU factorization of a hierarchical matrix