parallelism-amdahl相关内容

Python 多处理性能仅随着使用的内核数的平方根而提高

我正在尝试在 Python (Windows Server 2012) 中实现多处理,但无法达到我期望的性能改进程度.特别是对于一组几乎完全独立的任务,我希望通过增加内核实现线性改进. 我知道——尤其是在 Windows 上——打开新进程会产生开销 [1],而且底层代码的许多怪癖可能会阻碍一个干净的趋势.但理论上,对于完全并行化的任务,趋势最终仍应接近线性 [2];或者,如果我正在处理部分串 ..
发布时间:2022-01-12 12:36:42 Python

为什么 python 多处理比串行代码花费更多时间?如何加快这个速度?

我正在试用 Python 多处理模块.在下面的代码中串行执行时间为 0.09 秒,并行执行时间为 0.2 秒.由于我没有得到加速,我想我可能在某个地方出错了 import multiprocessing as mp从随机导入制服,randrange进口时间# m = mp.Manager()out_queue = mp.Queue()def flop_no(rand_nos, a, b):卡尔= ..

大型对象列表上的多处理 Pool.map() 缩放不良:如何在 python 中实现更好的并行缩放?

让我们定义: 来自多处理导入池将 numpy 导入为 np定义函数(x):对于我在范围内(1000):我**2返回 1 注意 func() 做了一些事情,它总是返回一个小数字 1. 然后,我比较 8 核并行 Pool.map() 与串行、python 内置 map() n=10**3a=np.random.random(n).tolist()使用 Pool(8) 作为 p:%timei ..

阿姆达尔定律和 GPU

我对阿姆达尔定律在 GPU 上的应用有一些疑问.例如,我有一个内核代码,我使用多个线程启动,比如 N.那么,在阿姆达尔定律中,处理器的数量将是 N 对吗?此外,对于使用大量线程的任何 CUDA 编程,我可以安全地假设 Amdahl 定律减少到 1/(1-p) 其中 p 代表并行代码吗?谢谢 解决方案 例如,我有一个带有数字的内核代码线程数,比如 N.所以,在阿姆达尔定律中,处理器的数量 ..
发布时间:2022-01-10 15:55:16 其他开发

阿姆达尔定律中的负加速?

阿姆达尔定律指出整个系统的加速是 an_old_time/a_new_time 其中 a_new_time 可以表示为 ( 1 - f ) + f/s',其中 f 是系统的分数这是通过一些修改增强的,s' 是系统的那部分增强的量.但是,在对s'求解这个方程后,似乎有很多情况s'是负数,这没有物理意义. 假设 s = 2(整个系统的速度提高 100%)和 f = 0.1(10% 的系统受到 ..

为什么python多处理比串行代码花费更多时间?如何加速?

我正在试用 Python 多处理模块.下面代码中串行执行时间为0.09秒,并行执行时间为0.2秒.由于我没有加速,我想我可能在某个地方出错 将多处理导入为 mp从随机进口制服,randrange导入时间# m = mp.Manager()out_queue = mp.Queue()def flop_no(rand_nos, a, b):校准 = []对于 rand_nos 中的 r:cals.a ..

大对象列表上的多处理 Pool.map() 缩放不佳:如何在 python 中实现更好的并行缩放?

让我们定义: from multiprocessing import Pool将 numpy 导入为 np定义函数(x):对于我在范围内(1000):我**2返回 1 注意 func() 做了一些事情,它总是返回一个小数 1. 然后,我将 8 核并行 Pool.map() 与内置 Python 的串行 map() 进行比较 n=10**3a=np.random.random(n).t ..

如何在 GridSearchCV( ..., n_jobs = ... ) 中找到最佳进程数?

我想知道,哪个更好地与 GridSearchCV( ..., n_jobs = ... ) 一起使用来为模型选择最佳参数集,n_jobs = -1 或 n_jobs 有很大的数字, 像 n_jobs= 30 ? 基于 Sklearn 文档: n_jobs = -1 意味着计算将在所有计算机的 CPU. 在我的 PC 上,我有一个 Intel i3 CPU,它有 2 个内核和 4 ..

将元组有效处理为固定大小的向量

在 Chapel 中,可以像使用小“向量"一样使用同构元组 (例如,a = b + c * 3.0 + 5.0;). 然而,由于元组没有提供各种数学函数,我尝试用多种方式为 norm() 编写函数并比较它们的性能.我的代码是这样的: proc norm_3tuple( x: 3*real ): real{返回 sqrt( x[1]**2 + x[2]**2 + x[3]**2 );}pr ..

否定阿姆达尔定律的速度会加快吗?

阿姆达尔定律指出,整个系统的速度提高了 an_old_time/a_new_time 其中 a_new_time 可以表示为(1-f)+ f/s',其中 f 是系统的一部分通过一些修改可以增强,而 s'是系统的这一部分得到增强的数量.但是,在解决了 s 的等式后,似乎在很多情况下 s 为负,这在物理上没有意义. 假设 s = 2 (整个系统的速度提高了100%)和 f = 0.1 ( ..

阿姆达尔定律和GPU

对于阿姆达尔定律在GPU方面的适用性,我有两个疑问。例如,我有一个用多个线程启动的内核代码,例如N。那么,根据阿姆达尔定律,处理器的数量将是N吗?另外,对于使用大量线程的任何CUDA编程,我是否可以安全地假设Amdahl定律简化为1 /(1-p),其中p代表并行代码? 谢谢 解决方案 例如,我有一个内核代码因此,在阿姆达尔定律中,处理器 的数量将为N对吗? 不完全是。 GPU ..
发布时间:2020-10-13 00:37:02 其他开发

为什么joblib.Parallel()比非并行计算花费更多的时间? Parallel()是否应该比非并行计算运行得更快?

一个 joblib 模块提供一个简单的帮助程序类,可以使用多处理来并行编写for循环. 此代码使用列表理解来完成这项工作: import time from math import sqrt from joblib import Parallel, delayed start_t = time.time() list_comprehension = [sqrt(i ** 2) for ..
发布时间:2020-05-24 21:18:08 Python

CyclicDist在多个语言环境中变慢

我尝试使用 CyclicDist 模块实现矩阵乘法. 当我使用一种语言环境与两种语言环境进行测试时,一种语言环境的速度要快得多.是因为两个Jetson纳米板之间的通信时间真的很大还是我的实现没有利用CyclicDist的工作方式吗? 这是我的代码: use Random, Time, CyclicDist; var t : Timer; t.start(); config c ..

我如何使用更多的CPU运行我的python脚本

我想使用更多的处理器来运行我的代码,以仅减少运行时间.虽然我尝试这样做,但未能获得预期的结果.我的代码很大,这就是为什么我在这里给出一个非常小而简单的代码(尽管它不需要并行作业来运行此代码)只是为了知道如何在python中进行并行作业.任何意见/建议将不胜感激. import numpy as np import matplotlib.pyplot as plt from scipy.int ..
发布时间:2020-05-18 20:12:00 Python

Python多处理性能仅会随着所使用内核数的平方根而提高

我正在尝试在Python(Windows Server 2012)中实现多处理,但是无法达到我期望的性能改进程度.特别是,对于几乎完全独立的一组任务,我期望具有更多核心的线性改进. 我了解到-尤其是在Windows上-打开新进程会涉及一些开销但是,当我运行多重处理时,在素数检查测试功能(下面的代码)上进行池化,我得到了接近完美的平方根关系,最高可达 N_cores=36 (物理核数)在服务器 ..
发布时间:2020-05-13 19:49:29 Python

在大型对象列表上,多处理Pool.map()的缩放比例较差:如何在python中实现更好的并行缩放比例?

让我们定义一下: from multiprocessing import Pool import numpy as np def func(x): for i in range(1000): i**2 return 1 请注意,func()会执行某些操作,并且总是返回一个很小的数字1. 然后,我比较一个8核并行Pool.map() v/s一个内置py ..