Python中文
首页
教程
问答
标签
搜索
登录
注册
为什么Python要在多处理中提前计算一些计算呢
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我使用的是带有英特尔处理器的Ubuntu 17.04 64位® 核心™ i7-7500U CPU@2.70GHz× 4和16gb RAM。<br/> 所以当我运行这个程序时,它使用一个内核,而不是所有的4个内核</p> <pre><code>import time import multiprocessing def boom1(*args): print(5**10000000000) def boom2(*args): print(5**10000000000) def boom3(*args): print(5**10000000000) def boom4(*args): print(5**10000000000) if __name__=="__main__": array = [] p1 = multiprocessing.Process(target=boom1, args=(array,)) p2 = multiprocessing.Process(target=boom2, args=(array,)) p3 = multiprocessing.Process(target=boom3, args=(array,)) p4 = multiprocessing.Process(target=boom4, args=(array,)) p1.start() p2.start() p3.start() p4.start() p1.join() p2.join() p3.join() p4.join() print('Done') </code></pre> <p>现在,如果我在每个函数中打印10的低功耗:</p> <pre><code>print(5 ** 10000000) </code></pre> <p>现在,在很短的一段时间内,一个核处理100%,然后所有4个核都执行100%。 为什么会这样?它不应该从所有核心都执行100%开始吗</p> <p>我所知道的是,python在自身之前执行一些操作,因此是从单个核心执行这些操作的。如果是这样的话,那么python作为一种解释语言有什么意义呢?或者我遗漏了什么吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>大多数语言都有常量折叠优化:当出现常量之间的操作时,编译器将执行该操作并用单个常量结果替换表达式</p> <p>Python也能做到这一点。我希望您的多节点操作只是在每个节点上启动print join的序列</p> <p>如果要在四个节点上获得更长的运行时间,请尝试在解析时无法计算的表达式。例如,在参数列表中传递基数并使用它而不是5,或者让每个进程在1-10范围内选择一个随机数并将其添加到指数中。这将强制运行时评估</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何重塑数组、迭代列的所有行并将重塑后的数组分配给新列?Python/Pandas/Numpy
6 回答
如何重塑数组的形状?
4 回答
如何重塑文本数据以适应keras的LSTM模型
2 回答
如何重塑未对齐的数据集,并使用numpy丢弃剩余数据?
7 回答
如何重塑此数据以使用绘图
8 回答
如何重塑此数据帧?
3 回答
如何重塑此数据集以适应RNN
7 回答
如何重塑没有列的数组?
2 回答
如何重塑测试数据帧,使其维数与训练和预测工作中使用的维数相同?
5 回答
如何重塑系列以在StandardScaler中使用它
10 回答
如何重塑线性回归的数据
1 回答
如何重塑线性回归的数据?
3 回答
如何重塑表格?
9 回答
如何重塑要堆叠的重复宽数据帧?
8 回答
如何重塑输入以放入二维层?
9 回答
如何重塑输入神经网络的三通道数据集
5 回答
如何重塑这个numpy数组
1 回答
如何重塑这个numpy数组以排除“额外维度”?
1 回答
如何重塑这个numpy阵列?
2 回答
如何重塑这个数据帧
2 回答