【发布时间】:2023-12-29 16:15:01
【问题描述】:
我目前有一个可执行文件,它在运行时会使用我服务器上的所有内核。我想添加另一台服务器,并在两台机器之间拆分作业,但每个作业仍然使用它正在运行的机器上的所有内核。如果两台机器都忙,我需要下一个作业排队,直到两台机器中的一台空闲。
我认为这可能是由 python 控制的,但是我是一个新手,不确定哪个 python 包最适合这个问题。
我喜欢用于作业排队的“heapq”包,但它看起来像是为单个服务器使用而设计的。然后我查看了 Ipython.parallel,但它似乎更适合为每个核心(在一个或多个服务器上)创建单独的较小作业。
我在这里 (https://wiki.python.org/moin/ParallelProcessing) 看到了大量不同选项的列表,但我可以通过一些指导来解决此类问题。
任何人都可以提出一个可能有助于解决这个问题的软件包,或者解决这个问题的不同方法吗?
【问题讨论】:
-
这不是关于 Python 的问题,也不是任何具体的问题。您可能想使用生产者/消费者和公共队列(例如
rabbitmq)之类的概念自己创建一些东西,或者甚至可能使用像hadoop的`map-reduce 这样的框架,该框架旨在扩展大量数据的处理数据。 -
heapq 与作业管理没有任何关系。它是一种特定类型的二叉树的实现。
标签: python ipython distributed