论文标题
为联合计划带来线际上的缓存福利 - 扩展结果和技术报告
Bringing Inter-Thread Cache Benefits to Federated Scheduling -- Extended Results & Technical Report
论文作者
论文摘要
由有向无环图(DAG)建模的硬实时任务的多处理器调度利用模型呈现的固有的并行性。对于DAG任务,一个节点表示在可用处理器之一上执行对象的请求。在一个DAG任务中,一个对象可能有多个执行请求,每个对象都以一个不同的节点表示。这些独特的执行请求提供了一个机会,可以通过协调对象作为并行任务中的线程的协调调度来减少其组合的缓存开销。这项工作的目的是通过将缓存捆绑包的算法纳入零星DAG任务集的联合计划中,实现这一机会。 这是将指令缓存共享共享的第一项工作中的工作。结果是用对象和线程(DAG-OT)的DAG模型的修改。在dag-ot模型下,节点的描述明确包括其基础可执行对象和线程数。在可能的情况下,分配了相同可执行对象的节点被折叠成一个节点。捆绑套装时加入线程。与DAG模型相比,具有缓存感知调度的DAG-OT模型在合成评估中将分配给单个任务的核心数量减少了约20%,在新型的并行计算平台实现中,分配给了20%。通过减少分配核心的数量,DAG-OT模型能够安排以前不可行的任务集的子集。
Multiprocessor scheduling of hard real-time tasks modeled by directed acyclic graphs (DAGs) exploits the inherent parallelism presented by the model. For DAG tasks, a node represents a request to execute an object on one of the available processors. In one DAG task, there may be multiple execution requests for one object, each represented by a distinct node. These distinct execution requests offer an opportunity to reduce their combined cache overhead through coordinated scheduling of objects as threads within a parallel task. The goal of this work is to realize this opportunity by incorporating the cache-aware BUNDLE-scheduling algorithm into federated scheduling of sporadic DAG task sets. This is the first work to incorporate instruction cache sharing into federated scheduling. The result is a modification of the DAG model named the DAG with objects and threads (DAG-OT). Under the DAG-OT model, descriptions of nodes explicitly include their underlying executable object and number of threads. When possible, nodes assigned the same executable object are collapsed into a single node; joining their threads when BUNDLE-scheduled. Compared to the DAG model, the DAG-OT model with cache-aware scheduling reduces the number of cores allocated to individual tasks by approximately 20 percent in the synthetic evaluation and up to 50 percent on a novel parallel computing platform implementation. By reducing the number of allocated cores, the DAG-OT model is able to schedule a subset of previously infeasible task sets.