c++ - 为多处理器查找 DAG 的静态调度 - 库?

标签 c++ python parallel-processing scheduling directed-acyclic-graphs

<分区>

我有一个所有任务的依赖关系图,以及每个任务的成本。现在我想计算给定数量的 CPU 的调度。我发现了很多关于调度算法的论文,最优调度器对于我的问题规模(大约 100 个节点)来说似乎太昂贵了,因为它是一个 NP-hard 问题。我会接受一种启发式方法,最好是一种具有接近最佳值的界限的方法。我现在的问题是:我真的必须自己编写代码吗?这个应该已经解决过很多次了,很容易应用到项目管理中,说不定有什么东西?

如果您碰巧知道 python 中的一个库,那将是完美的,或者下一个最好的是 C++,否则我会满足于其他任何东西。

最佳答案

这是一个很常见的问题。它也出现在硬件设计中。 已经有很多关于算法的工作来解决它。

如果你打算自己写点什么,先看看“胡氏算法”。

如果您只想要一个解决方案,这些功能已内置到架构综合程序中。 查看有关高级综合和逻辑综合的维基百科页面。 有几种专业工具可以处理这个问题,前提是您可以通过学校或工作获得这些工具。

您通常可以免费获得一些大学类(class),它们也可以解决这个问题。 我不是最新的当前可用的。一个非常古老的是 Berkeley 的 MIS II。它的脚本语言是 Tcl,而不是 Python。

关于c++ - 为多处理器查找 DAG 的静态调度 - 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20614349/

相关文章:

python - NumPy 就地排序如何在 View 上工作?

Scala并行收集运行时令人费解

c++ - 使用类设置 win32 应用程序的更好方法?

c++ - 答案不明确 c++

python - numba 中的@jit 和@vectorize 有什么区别?

python - 从python中的列表中获取第一个非空字符串

r - 在 R 中进行并行处理时是否应该使用每个核心?

multithreading - 是否可以在没有Mex的情况下在Matlab中并行加载数据文件以进行计算

C++ 模板,从 vc2005 移植到 2013

c++ - 在 C++ 中 Hook 调用函数?