Tag: 多处理

在Python中获得nproc命令的相同输出

当使用cgroups来限制可用的CPU数量,比如在Docker中使用–cpuset-cpus标志时, nproc命令会在考虑到这个限制的情况下打印出可用的CPU数量。 Python的multiprocessing.cpu_count()打印主机中的CPU数量,而不考虑cgroup的限制。 应该调用Python的哪个函数来得到nproc返回的相同数字? 我希望避免使用Python运行nproc二进制文件。

我们可以在Docker中运行多进程程序吗?

我有一些代码使用这样的多进程: import multiprocessing from multiprocessing import Pool pool = Pool(processes=100) result = [] for job in job_list: result.append( pool.apply_async( handle_job, (job) ) ) pool.close() pool.join() 这个程序正在计算非常大的数据集。 所以我们需要多个进程来同时处理这个工作来提高性能。 我被告知,对于主机系统,一个docker集装箱只是一个过程。 所以我想知道如何在Docker中处理我的多进程? 以下是我的关心: 由于容器只是一个进程,我的多进程代码在进程中会变成multithreading吗? 表演会下降吗? 因为我使用多进程的原因是同时完成工作以获得更好的性能。