Taskflow aims to streamline the building of parallel and heterogeneous applications using a lightweight task graph-based approach. Taskflow introduces an expressive task graph programming model to assist developers in the implementation of parallel and heterogeneous decomposition strategies on a heterogeneous computing platform. Our programming model distinguishes itself as a very general class of task graph parallelism with in-graph control flow to enable end-to-end parallel optimization. To support our model with high performance, we design an efficient system runtime that solves many of the new scheduling challenges arising out of our models and optimizes the performance across latency, energy efficiency, and throughput. We have demonstrated the promising performance of Taskflow in real-world applications. As an example, Taskflow solves a large-scale machine learning workload up to 29% faster, 1.5x less memory, and 1.9x higher throughput than the industrial system, oneTBB, on a machine of 40 CPUs and 4 GPUs. We have opened the source of Taskflow and deployed it to large numbers of users in the open-source community.
翻译:任务流旨在使用轻量级任务图表方法简化平行和多样化应用程序的建设。任务流引入了一个表达式任务图表编程模型,以协助开发者在一个多式计算平台上实施平行和多样化的分解战略。我们的程序流模式将自己区分为任务图平行和绘图控制流程的非常一般类别,以便实现端到端的平行优化。为了以高性能支持我们的模型,我们设计了一个高效的系统运行时间,以解决我们模型产生的许多新的排期挑战,并优化延缓性、能源效率和吞吐的性能。我们已经展示了任务流在现实世界应用程序中的有希望的业绩。例如,任务流解决了比工业系统、一个TBB(一个由40个CPU和4个GPU组成的机器)更高的大型机器学习工作量高达29%、1.5x记忆量和1.9x(一个TBB),我们打开了任务流的源头,并将其部署到开放源社区的大量用户中。