python - 为什么使用更多工人时任务需要更长的时间
问题描述
我目前正在努力理解为什么使用更多工人时单个任务会变慢。例如,有一个工人,每个任务大约需要 0.5 秒,而有六个工人,每个任务大约需要 1 秒。我正在使用的计算机有 8 个内核,所以我没想到会发生这种变化。
你能告诉我我做错了什么,或者为什么会有这种差异?下面是我正在使用的代码:
from dask.distributed import Client, LocalCluster
def compute():
for _ in range(30000000):
3*4
def gathered(list_):
pass
if __name__ == "__main__":
cluster = LocalCluster(n_workers=6, threads_per_worker=1)
client = Client(cluster)
graph = {}
node_names = []
for i in range(24):
node_name = ('final_model', i+1)
node_names.append(node_name)
graph.update({
node_name: (compute,)
})
graph.update({
"gathered": (
gathered,
node_names
)
})
client.get(graph, 'gathered')
client.close()
感谢您的时间/帮助!
解决方案
计算机很复杂。例如,您可能有四个物理核心,它们报告为八个逻辑核心。它们不是完全平行的。此外,您可能会强调机器的其他部分,例如内存层次结构。很难说。
推荐阅读
- nginx - nginx 服务器中的 Modsecurity waf
- java - 如何在 STS 3.9.4 中安装 JPA
- jquery - PDFMake 去除 pdf 周围的边框
- java - ElasticSearch RestClient 对 ResponseHits API 的响应而不是 Response API 不起作用
- android - No update app after click on notification
- php - 如何防止双引号在 JSON 代码中被转义
- amazon-web-services - Jenkins BlueOcean step for deployment to AWS Lambda
- passwords - How to escape double quotes on schtasks passwords
- ios - Hindi and Gujarati font show in textview in IOS(Swift)?
- ios - 核心位置 plist 不起作用(Xcode 9.4/iOS 11.4)