multithreading - 在不更改代码的情况下,8 CPU 云机器的运行速度是否会比 1 CPU CM 快 8 倍?
问题描述
我是初学者,但我对云计算、多线程和多处理一无所知。
我有一台带有 i7(4 核)的台式电脑,我想知道多 CPU 云机器或 8+ 核机器是否会比我的电脑更快地运行任何代码,而无需对代码进行任何更改。
机器是自行处理多个 CPU(或 8 个以上内核)上的任务分配,还是需要调整代码?(多线程或多处理)
为了论证,假设我运行一个简单的循环,如下所示:
results = {}
for i in range(10**8):
results[i] = i**2
这在我的 PC 上大约需要 67 秒(我同时在运行其他东西,所以我不确定这是否准确,但无论如何我的时间无关紧要)。
与单 CPU 4 核机器相比,在多 CPU 机器或 8+ 核机器上完全相同的代码会更快吗?
如果实际上需要进行更改,我将不胜感激任何初学者链接以了解多进程或多线程。
谢谢您的帮助。
解决方案
我不是专家,但我认为这实际上取决于您用于编写和运行代码的平台。某些语言可能原生支持多线程/多处理,因此代码运行速度会更快,但其他语言可能不支持。
有一件事是肯定的,你不能明确地说,在 %100 的情况下,具有更多内核/CPU 的机器将比具有更少内核/CPU 的机器更快地运行给定的代码段。
希望我能帮助解决问题。
编辑:这篇关于 python 中的多处理\多线程的中等帖子看起来不错 - Multithreading vs Multiprocessing in Python
推荐阅读
- python - Asyncio 和 Discord.py 超时上下文管理器应该在任务中使用
- pandas - 将列条目与数组或列表进行比较
- postgresql - 错误:函数 btrim(text[]) 不存在 - REGEXP_MATCHES 上的 BTRIM
- javascript - jQuery 在 laravel-mix (webpack) 中不起作用
- python - 使用 openpyxl 提取具有公式的单元格的值
- reactjs - 新文档未在 word 应用程序中打开,内容包含在 word 插件开发中 - React js
- rest - REST:当请求更改多个实体的状态时返回什么?
- java - java中SELECT的方法:返回什么以及如何关闭资源?
- redis - Windows 上的 Redis 抛出错误:READONLY You can't write against a read only slave., sPort: xxxxx , LastCommand:
- javascript - 如何使用 React Router 获取多个参数