标签: parallel-processing

快速(矢量化)方法,以从第二DF中找到属于同等大小的矩形(由两个点给出)的一个DF中的点

我的数据框"A"看起来像这样:

type    latw    lngs    late    lngn
0   1000    45.457966   9.174864    45.458030   9.174907
1   1000    45.457966   9.174864    45.458030   9.174907
2   1000    45.458030   9.174864    45.458094   9.174907
3   1000    45.458094   9.174864    45.458157   9.174907
4   1000    45.458157   9.174864    45.458221   9.174907
5   1000    45.458221   9.174864    45.458285   9.174907
6   1000    45.458285   9.174864    45.458349   9.174907
7   1000    45.458349   9.174864    45.458413   9.174907
8   1000    45.458413   9.174864    45.458477   9.174907
9   1000    45.458477   9.174864    45.458540   9.174907
10  1000    45.458540   9.174864    45.458604   9.174907
11  1000    45.458604   9.174864    45.458668   9.174907
12  1000 …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing numpy dataframe pandas

5
推荐指数
1
解决办法
278
查看次数

用零并行填充std :: vector

我想std::vector<int>用openmp 填充零。如何快速做到这一点?

我听说循环遍历向量将每个元素设置为零很慢,而且std::fill快得多。现在还是这样吗?

将std :: vector <int>的每个值重置为0的最快方法

我是否必须手动将std::vector<int>区域划分为多个区域,#pragma omp for在每个线程上使用循环,然后std::fill在循环中使用?

c++ parallel-processing vector openmp

5
推荐指数
1
解决办法
872
查看次数

使R包中的函数可并行化的最佳实践是什么?

我开发了一个包含令人难以置信的并行功能的R包.

我希望以对用户透明的方式实现这些功能的并行化,而不管他/她的OS(至少理想情况下).

我环顾四周看看其他软件包作者是如何导入基于foreach的Parallelism的.例如,Max Kuhn的caret包导入foreach要使用,%dopar%依赖 于用户指定并行后端.(使用了几个示例doMC,这在Windows上不起作用.)

注意doParallel适用于Windows和Linux/OSX并使用内置parallel包(请参阅此处的注释以进行有用的讨论),导入doParallelregisterDoParallel()在用户指定parallel=TRUE为参数时调用函数是否有意义?

parallel-processing r parallel-foreach r-package

5
推荐指数
2
解决办法
585
查看次数

为什么矩阵乘法在具有7个内核的工作站上比在我的笔记本电脑上运行速度慢?

我运行了以下matlab代码:

rng(1)
matrix_size = 200;
iterations = 100000;
A = rand(matrix_size);
B = rand(matrix_size);

profile on
for i = 1:iterations
  A * B;
end
profile off
Run Code Online (Sandbox Code Playgroud)

在我的MacAir(Intel(R)Core(TM)i5-4260U CPU @ 1.40GHz)上,这需要39秒.在具有7核(Intel(R)Xeon(R)CPU E5-2687W v4 @ 3.00GHz)的工作站上,这需要62秒.

我没有说明-singleCompThread.工作站有12个核心,但有5个单线程进程在运行.我(差不多)有7个核心给自己.他们一直都是最大限度的.

怎么会这样?

运行上面的代码时-singleCompThread,它在54s内完成.

parallel-processing matlab

5
推荐指数
1
解决办法
143
查看次数

如何获得multiprocessing.Pool.apply_async的结果

我想在Python中获取Pool.apply_async运行的函数的结果.

如何将结果分配给父进程中的变量?我试图使用回调,但似乎很复杂.

python parallel-processing multiprocessing

5
推荐指数
2
解决办法
9839
查看次数

Openmp和std :: vector的缩减?

我想让这段代码并行:

std::vector<float> res(n,0);
std::vector<float> vals(m);
std::vector<float> indexes(m);
// fill indexes with values in range [0,n)
// fill vals and indexes
for(size_t i=0; i<m; i++){
  res[indexes[i]] += //something using vas[i];
}
Run Code Online (Sandbox Code Playgroud)

这个文章它的建议使用:

#pragma omp parallel for reduction(+:myArray[:6])
Run Code Online (Sandbox Code Playgroud)

这个问题中,评论部分提出了相同的方法.

我有两个问题:

  1. 我不知道m在编译时,从这两个例子看来,它似乎是必需的.是这样吗?或者,如果我可以在这种情况下使用它,我需要?在以下命令中替换#pragma omp parallel for reduction(+:res[:?])什么?m还是n
  2. 难道是相关的指标for是相对于indexesvals,而不是res,尤其是考虑到reduction是在后者做了什么?

但是,如果是这样,我该如何解决这个问题呢?

c++ parallel-processing vector openmp reduction

5
推荐指数
1
解决办法
3228
查看次数

在Dask DataFrame.apply()上,在处理实际行之前接收n行值1

在下面的代码片段中,我希望日志打印数字0 - 4.我知道数字可能不是那个顺序,因为任务将被分解为许多并行操作.

代码段:

from dask import dataframe as dd
import numpy as np
import pandas as pd

df = pd.DataFrame({'A': np.arange(5),
                   'B': np.arange(5),
                   'C': np.arange(5)})

ddf = dd.from_pandas(df, npartitions=1)

def aggregate(x):
    print('B val received: ' + str(x.B))
    return x

ddf.apply(aggregate, axis=1).compute()
Run Code Online (Sandbox Code Playgroud)

但是当运行上面的代码时,我会看到:

B val received: 1
B val received: 1
B val received: 1
B val received: 0
B val received: 0
B val received: 1
B val received: 2
B val received: 3
B val received: 4
Run Code Online (Sandbox Code Playgroud)

而不是0 …

python parallel-processing dask

5
推荐指数
2
解决办法
998
查看次数

两个函数并行多个参数和返回值

我有两个独立的功能.每个都需要很长时间才能执行.

def function1(arg):
     do_some_stuff_here
     return result1

def function2(arg1, arg2, arg3):
     do_some_stuff_here
     return result2
Run Code Online (Sandbox Code Playgroud)

我想并行启动它们,得到它们的结果(知道哪个是哪个)并在之后处理结果.根据我的理解,多处理比Python 2.7中的线程(GIL相关问题)更有效.但是我有点迷失是否更好地使用Process,Pool或Queue以及如何以正确的pythonic方式为我的用例实现它们.

任何帮助赞赏;)

python parallel-processing python-2.7 python-multiprocessing

5
推荐指数
1
解决办法
3853
查看次数

Dask分布式诊断网页无法正常工作

我已经dask在我的集群上运行,但我似乎无法访问诊断网页.着陆页可见,如下所示:

在此输入图像描述

但是所有链接都挂起并且从不加载页面.

调度程序在此输出时正常启动:

[hoffmand@h05u06 ~]$ dask-scheduler --scheduler-file dask-scheduler.json
distributed.scheduler - INFO - -----------------------------------------------
distributed.scheduler - INFO -   Scheduler at:   tcp://10.36.105.16:8786
distributed.scheduler - INFO -       bokeh at:              0.0.0.0:8788
distributed.scheduler - INFO -        http at:              0.0.0.0:9786
distributed.bokeh.application - INFO - Web UI: http://127.0.0.1:8787/status/
distributed.scheduler - INFO - -----------------------------------------------
distributed.scheduler - INFO - Register tcp://10.36.107.15:37780
distributed.scheduler - INFO - Starting worker compute stream, tcp://10.36.107.15:37780
Run Code Online (Sandbox Code Playgroud)

python parallel-processing distributed-computing dask

5
推荐指数
1
解决办法
726
查看次数

多线程与并发与并行与异步编程之间有什么区别?

几天,我想知道这四种类型的编程之间有什么区别.我在谷歌搜索信息但我无法回答我的问题,所以我决定问你,有人可以向我解释一下吗?谢谢 !

java parallel-processing concurrency multithreading asynchronous

5
推荐指数
1
解决办法
3092
查看次数