问题标签 [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 回答
764 浏览

python - 使用 PyCuda(或其他?)在 Python 中的嵌套 for 循环上进行并行编程

我的 python 函数的一部分如下所示:

问题: len(longitude_aq)大约。320klen(longitude_meo)是 700 万。这使该代码的迭代次数接近 21000 亿次……

我必须迭代一个文件(那个longitude_aq)然后计算一些平均值,迭代第二个文件(那个longitude_meo)给定从第一个文件中提取的一些特征。

看来我不能以任何不同的方式进行。

可能的解决方案:并行编程。我的大学允许我访问他们的 HPC。他们有几个节点 + 几个 GPU 可访问(此处列出GPU,此处列出CPU)

目标:没有使用 Python 进行 CUDA 编程的经验,我想知道将我的代码转换为 HPC 可运行的东西的最简单方法是什么,从而使计算时间急剧下降。

0 投票
1 回答
1138 浏览

performance - MQL5 中的 OpenCL 代码不会将分布式作业分配给每个 GPU 内核

我使用 OpenCL 和 MQL5 为 MetaTrader 终端平台创建了一个基于 GPU 的指标。

我已经努力让我的 [ MetaTrader Terminal: Strategy Tester ] 优化工作必须在 GPU 上传输到最大。大多数计算都是由指标完成的。因此,我对指标进行了更改,并已完全转移到 GPU 上。

但是当我尝试在策略测试器部分进行优化时,真正的问题就出现了。
我看到的过程同时使用了我的 GPU 和 CPU,但对整个过程没有影响。

我怀疑该进程没有分配给每个 GPU 核心进行处理,而是所有 GPU 核心都在同一个进程或函数上工作以执行。

请让我知道我需要做什么才能让单个 GPU 工作以执行单个函数以提供更快的输出。

这是我的代码链接:Expert 的完整代码

我的代码的内核是:

请建议我使用 OpenCL 上的 GPU 在 MQL5 中分配具有不同值或帧的函数的出路。

已编辑

对于寻求挑战的人来说,这是一个巨大的挑战……甚至我也很想知道 OpenCL 和 MQL5 是否可以为优化任务做任何事情。我希望我能得到我所寻求的答案。

再次 编辑MAGPU.mqh文件

主要指标文件 CHECKMA.mq5文件

0 投票
2 回答
159 浏览

parallel-processing - 在没有串行分数的情况下加速

我在一个并行包上进行了一组实验,比如说superlu-dist,使用不同的处理器编号,例如:4, 16, 32, 64

我得到了每个实验的挂钟时间,比如:53.17s, 32.65s, 24.30s, 16.03s

加速公式为:

但是没有关于序列分数的信息。

我可以简单地取挂钟时间的倒数吗?

0 投票
2 回答
493 浏览

python - python joblib & random walk - [CONCURRENT] 进程调度的性能

这是我用于模拟一维反射随机游走的 python-3.6 代码,使用该模块在 Linux 集群机器上的工作人员joblib之间同时生成 400 个实现。K

但是,我注意到 for 的运行时间K=3比 for 更差K=1,而且 for 的运行时间K=5更差!

任何人都可以请参阅改善我使用的方法joblib吗?

0 投票
1 回答
1906 浏览

parallel-processing - 查找代码的串行和并行百分比

如果我知道 2 处理器系统和 4 处理器系统的作业完成时间,我如何计算 1 处理器系统所花费的时间(Ts)。我想知道这一点,所以我可以使用等式找到任何给定代码的序列百分比

其中 S 是代码的序列百分比和 N 个处理器

0 投票
1 回答
89 浏览

c - 并行化变量声明是否有益?

我想知道在编写并行程序以将变量声明插入并行部分时是否有益?因为阿姆达尔定律说,如果程序的更多部分是并行的,那就更好了,但我看不出并行化变量声明和返回语句的意义,例如,这是正常的并行代码:

写这个对 Am​​dahl 定律有好处吗(所以 100% 的程序是并行的):

0 投票
1 回答
63 浏览

multithreading - 针对特定繁重任务的阿姆达尔定律

我有一组可以完全并行执行的任务(通过 GSM 调制解调器发送短信),但一个短信任务不能。每个任务大约需要 10 秒才能执行。所以现在我正在尝试评估它在 4 个 GSM 调制解调器上的表现。

阿姆达尔定律

在我的情况下 p=1 因为任务是完全并行的,并且 s=4(GSM 调制解调器)

因此

问题 我怎样才能在我的计数中表示这种情况

例如,如果我有 5 个 GSM 调制解调器,但只有一个要发送的 SMS,我的任务根本不是并行的,但是根据这条定律,我知道加速比是 5。

所以它真的需要 10 秒,但根据阿姆达尔定律,我得到 10/5=2 秒

0 投票
1 回答
75 浏览

python-3.x - 我有一些算法,需要 5 个多小时才能给出输出。有什么办法可以减少处理时间?

我有一个由递归函数组成的确定性动态编程算法,当我增加数据点(下面代码中的 x 和 s)时,我的代码需要永远(超过 5 个小时)才能给我一个输出。

我听说有一种叫做并行计算的东西multiprocessing在 python 中使用模块,但我不确定这是否能解决我的问题,如果是的话,我根本不知道。

如果有人可以帮助我了解如何multiprocessing在 python 中使用模块或任何其他方式来减少处理时间,那就太好了。蒂亚:)

0 投票
1 回答
91 浏览

python - 如何在 Raspberry Pi3 上并行运行 TensorFlow 和其他一些处理

我想在 Raspberry Pi 3 上使用 PiCamera 运行连续流,并与该流并行执行其他计算。

我只需要从该流(进程)中获取它检测到的对象。我将在这里发布我到目前为止的代码。它没有进入computation()函数。它只是启动相机并检测那里的物体并停留在该过程中。

我尝试过使用multiprocessingPython 中的模块,但它似乎不起作用。

0 投票
4 回答
307 浏览

c++ - 查找点属于哪个三角形的优化技巧

我实际上在优化我的算法时遇到了一些麻烦:

我有一个磁盘(以 0 为中心,半径为 1)填充了三角形(不一定具有相同的面积/长度)。可能有大量的三角形(比如说从1k300k三角形)

我的目标是尽快找到一个点属于哪个三角形。该操作必须重复很长时间(大约10ktimes)。

现在我使用的算法是:我正在计算每个三角形中点的重心坐标。如果第一个系数介于 0 和 1 之间,我继续。如果不是,我就停下来。然后我用同样的想法计算第二个系数,第三个系数,我对每个三角形都这样做。

我想不出一种方法来使用我正在处理光盘的事实(以及我有一个欧几里得距离来帮助我直接“瞄准”好三角形的事实):如果我尝试计算距离我指向三角形的每个“中心”:

1)当我用重心坐标强制它时,它已经比我正在做的操作更多

2)我必须订购一个包含所有三角形的欧几里得距离的向量到我的点。

3)我绝对不能保证离我的点最近的三角形是好的三角形。

我觉得我错过了一些东西,我可以预先计算,一些东西可以帮助我在开始蛮力部分之前发现好的“区域”。

该算法已经并行化(使用 OpenMP):我正在并行调用以下函数。

下一步可能是查看 GPU 并行化,但我需要确保代码背后的想法足够好。

现在它大约2min30需要75k三角形和10k点,但这还不够快。


编辑:
Triangle2D使用特征矩阵来存储坐标