问题标签 [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.

0 投票
1 回答
49 浏览

performance - 多核处理器中并行编程的性能测量

嗨,我正在研究计算机体系结构,我试图了解 Amdahl 的加速测量定律。假设我们有双核处理器并执行程序X。我们想将程序速度提高3倍,我们购买了8核处理器。在这种情况下,程序 X 应该并行化多少百分比?

0 投票
1 回答
457 浏览

cpu-architecture - 达到最大加速

如果应用程序只有 80% 的执行时间可以并行运行,那么您可以实现的最大加速比是多少?

我做了这样的事情,

我不确定我尝试的天气是对还是错?请说清楚。

0 投票
1 回答
231 浏览

parallelism-amdahl - 找不到从并行度计算加速的公式

我有这个问题,我不太了解加速机制。

我有一个有 2 个执行阶段的程序。第一阶段占用 1 个时间单位,只能顺序执行。第二阶段需要 3 个时间单位来执行,但可以并行化。

如何计算我可以实现的最大加速?我不是在寻找答案,而是我需要计算它的公式。

0 投票
4 回答
95 浏览

java - 多线程编程的非预期结果

我在使用多线程 Java 程序时遇到了麻烦。该程序由具有多线程的整数数组的拆分总和组成,而不是切片的总和。问题是计算时间不会通过增加线程数来减少(我知道在计算时间比线程数少之后线程数是有限的)。我希望在线程数限制之前看到执行时间减少(并行执行的好处)。我在运行方法中使用变量 fake 来使时间“可读”。

意外结果截图

0 投票
0 回答
691 浏览

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% 是怎么来的?

0 投票
2 回答
314 浏览

python-3.x - 在 Python 中并行化 for 循环

我编写了一个运行速度非常慢的神经网络,所以我希望通过并行化某个循环来加快它的速度。

我不确定 GIL 的实施以及 GIL 的工作方式以及它是否与我相关。

代码如下所示:

循环train()是我想要并行化的循环,因为batch它包含一组可以独立处理的训练样本 (20)。

0 投票
1 回答
540 浏览

parallel-processing - Tensorflow:多GPU训练不能让所有GPU同时运行

我有一台具有 3x 1080 GPU 的机器。下面是训练代码:

在我运行培训后:

您会看到,每当第一个 GPU 运行时,其他两个 GPU 将处于空闲状态,反之亦然。交替频率约为 0.5 秒。

对于单个 GPU,训练速度在 3 左右650 [images/second]
而我1050 [images/second]得到了 3 个 GPU 。

对这个问题有任何想法吗?

0 投票
2 回答
117 浏览

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并行工作并且并行执行的开销远大于这个小元组的净计算成本?
  • 鉴于我们想要避免reduce3 元组,其他三个例程基本上以相同的速度运行。这是否意味着显式 for 循环对于 3 元组的成本可以忽略不计(例如,通过--fast选项启用循环展开)?
  • norm_loop_param()中,我也尝试param对循环变量使用关键字,但这给了我很少或没有性能提升。如果我们只对同质元组感兴趣,是否根本不需要附加param(为了性能)?

对于很多问题,我很抱歉,如果有任何关于有效处理小元组的建议/建议,我将不胜感激。非常感谢!

0 投票
0 回答
34 浏览

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 函数中调用此函数,但那里没有发生任何事情。

或者,如果有任何其他实现建议,我可以做一些基本的多线程编码。

第一次在这里提问,如果我的问题有任何问题,我们深表歉意。

谢谢!

0 投票
1 回答
291 浏览

c++ - 如何并行化循环的矩阵排序?

我正在尝试for(){...}使用 OpenMP 并行化一个循环,该循环采用N”的许多“行”N*M并按升序对每一行进行排序。

我添加了#pragma omp parallel,#pragma omp for schedule 指令,但没有看到任何变化,就好像它什么也没做一样。

这是完整的程序:

出了什么问题,在这种情况下我应该如何使用 OpenMP 添加并行化?

另外,不知道为什么,但是当尝试A使用大数字
(如int N = 480;int M = 600;)打印矩阵时,某些值未排序。

是印刷问题吗?