问题标签 [parallelism-amdahl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
performance - 多核处理器中并行编程的性能测量
嗨,我正在研究计算机体系结构,我试图了解 Amdahl 的加速测量定律。假设我们有双核处理器并执行程序X。我们想将程序速度提高3倍,我们购买了8核处理器。在这种情况下,程序 X 应该并行化多少百分比?
cpu-architecture - 达到最大加速
如果应用程序只有 80% 的执行时间可以并行运行,那么您可以实现的最大加速比是多少?
我做了这样的事情,
我不确定我尝试的天气是对还是错?请说清楚。
parallelism-amdahl - 找不到从并行度计算加速的公式
我有这个问题,我不太了解加速机制。
我有一个有 2 个执行阶段的程序。第一阶段占用 1 个时间单位,只能顺序执行。第二阶段需要 3 个时间单位来执行,但可以并行化。
如何计算我可以实现的最大加速?我不是在寻找答案,而是我需要计算它的公式。
java - 多线程编程的非预期结果
我在使用多线程 Java 程序时遇到了麻烦。该程序由具有多线程的整数数组的拆分总和组成,而不是切片的总和。问题是计算时间不会通过增加线程数来减少(我知道在计算时间比线程数少之后线程数是有限的)。我希望在线程数限制之前看到执行时间减少(并行执行的好处)。我在运行方法中使用变量 fake 来使时间“可读”。
parallel-processing - 使用 10 对 40 处理器时,您能获得什么加速?
假设您要执行两个求和:一个是 10 个标量变量的求和,一个是一对二维数组的矩阵求和,维度为 10 x 10。现在让我们假设只有矩阵求和是可并行化的;使用 10 对 40 处理器时,您能获得什么加速?
我的理解:
10x10 矩阵 + 10 个标量变量 = 110t
使用 10 个处理器,(100/10)t + 10t = 20t
加速=110/20=5.5;
使用 40 个处理器,(100/40)t + 10t = 12.5t
加速=110/12.5=8.8;
解决方案书中给出的信息是,使用 10 个处理器我们可以获得大约55%的潜在加速,但使用 40 个处理器时只有22%。
我了解 55%,但那 22% 是怎么来的?
python-3.x - 在 Python 中并行化 for 循环
我编写了一个运行速度非常慢的神经网络,所以我希望通过并行化某个循环来加快它的速度。
我不确定 GIL 的实施以及 GIL 的工作方式以及它是否与我相关。
代码如下所示:
循环train()
是我想要并行化的循环,因为batch
它包含一组可以独立处理的训练样本 (20)。
parallel-processing - Tensorflow:多GPU训练不能让所有GPU同时运行
我有一台具有 3x 1080 GPU 的机器。下面是训练代码:
在我运行培训后:
您会看到,每当第一个 GPU 运行时,其他两个 GPU 将处于空闲状态,反之亦然。交替频率约为 0.5 秒。
对于单个 GPU,训练速度在 3 左右650 [images/second]
,
而我只1050 [images/second]
得到了 3 个 GPU 。
对这个问题有任何想法吗?
performance - 将元组有效处理为固定大小的向量
在 Chapel 中,同质元组可以像小的“向量”一样使用
(例如,a = b + c * 3.0 + 5.0;
)。
但是,由于没有为元组提供各种数学函数,因此我尝试了norm()
多种方式编写函数并比较了它们的性能。我的代码是这样的:
chpl --fast test.chpl
我用(通过自制软件安装的 OSX10.11 上的 Chapel v1.16 和 4 核)编译了上面的代码。然后,norm_3tuple()
,norm_loop()
和norm_loop_param()
给出几乎相同的速度(0.45 秒),而norm_reduce()
速度要慢得多(大约 30 秒)。我检查了top
命令的输出,然后norm_reduce()
使用了所有 4 个核心,而其他功能只使用了 1 个核心。所以我的问题是...
norm_reduce()
慢是因为reduce
并行工作并且并行执行的开销远大于这个小元组的净计算成本?- 鉴于我们想要避免
reduce
3 元组,其他三个例程基本上以相同的速度运行。这是否意味着显式 for 循环对于 3 元组的成本可以忽略不计(例如,通过--fast
选项启用循环展开)? - 在
norm_loop_param()
中,我也尝试param
对循环变量使用关键字,但这给了我很少或没有性能提升。如果我们只对同质元组感兴趣,是否根本不需要附加param
(为了性能)?
对于很多问题,我很抱歉,如果有任何关于有效处理小元组的建议/建议,我将不胜感激。非常感谢!
python - 如何在自动测试中使用 autotest.client.parallel 模块
我想使用自动测试:http: //autotest.readthedocs.io/en/latest/index.html 来测试我的 SQL 项目。
目前,我可以将自动测试作为一个进程运行,它可以从 Excel 文件中读取 SQL 并逐行运行 SQL 代码。我想要做的是同时从我的 Excel 文件中运行多行 SQL。似乎有一个名为并行的模块:http ://autotest.readthedocs.io/en/latest/_modules/autotest/client/parallel.html?highlight=parallel
我不知道如何将它用作我的代码的一部分,这个可以像多个线程/进程一样并行运行吗?如何设置每次运行的大小?
我尝试在我的 main/execute_reg 函数中调用此函数,但那里没有发生任何事情。
或者,如果有任何其他实现建议,我可以做一些基本的多线程编码。
第一次在这里提问,如果我的问题有任何问题,我们深表歉意。
谢谢!
c++ - 如何并行化循环的矩阵排序?
我正在尝试for(){...}
使用 OpenMP 并行化一个循环,该循环采用N
“表”的许多“行”N*M
并按升序对每一行进行排序。
我添加了#pragma omp parallel
,#pragma omp for schedule
指令,但没有看到任何变化,就好像它什么也没做一样。
这是完整的程序:
出了什么问题,在这种情况下我应该如何使用 OpenMP 添加并行化?
另外,不知道为什么,但是当尝试A
使用大数字
(如int N = 480;int M = 600;
)打印矩阵时,某些值未排序。
是印刷问题吗?