标签: parallel-processing

如何并行运行sql server存储过程?

我想做的事情如下:

exec sproc1 and sproc2 at the same time
when they are both finished exec sproc3
Run Code Online (Sandbox Code Playgroud)

我可以用dts做到这一点.有没有办法在transact sql中做到这一点?或者有没有办法使用批处理脚本(例如vbs或powershell)?

sql t-sql sql-server parallel-processing dts

8
推荐指数
2
解决办法
1万
查看次数

MPI中的向量用法(C++)

我是MPI编程的新手,很难学习,直到通过定义结构创建Derived数据类型我才成功.现在我想在我的结构中包含Vector,并希望在整个Process中发送数据.对于前:

struct Structure{

//Constructor 
Structure(): X(nodes),mass(nodes),ac(nodes) {

//code to calculate the mass and accelerations
}
//Destructor
Structure() {}

//Variables
double radius;
double volume;
vector<double> mass;
vector<double> area;

//and some other variables

//Methods to calculate some physical properties
Run Code Online (Sandbox Code Playgroud)

现在使用MPI我想在整个过程中发送结构中的数据.我可以创建包含的MPI_type_struct向量并发送数据吗?

我尝试通过论坛阅读,但我无法从那里的回复中得到清晰的图片.希望我能够获得一个清晰的想法或方法来发送数据

PS:我可以单独发送数据,但是如果我们认为域非常大(比如10000*10000),那么使用MPI_Send/Recieve发送数据的开销可能是

c++ parallel-processing vector mpi

8
推荐指数
1
解决办法
2万
查看次数

C++ 0x线程没有加速

我编写了一个程序,用于使用c ++ 0x线程搜索数组中的最大值(用于学习目的).为了实现,我使用了标准线程未来的类.但是,并行化功能不断显示与非并行化相同或更差的运行时间.

代码如下.我试图将数据存储在一维数组,多维数组中,最后得到几个数组.但是,没有选择取得好成绩.我试图从Eclipse和命令行编译和运行我的代码,仍然没有成功.我也尝试过类似的测试而不使用数组.并行化只提高了20%的速度.从我的角度来看,我运行非常简单的并行程序,没有锁和几乎没有资源共享(每个线程在他自己的数组上运行).什么是瓶颈?

我的机器配备2.2 GHz英特尔酷睿i7处理器和8 GB内存,运行Ubuntu 12.04.

const int n = 100000000;

int a[n], b[n], c[n], d[n];

int find_max_usual() {
    int res = 0;
    for (int i = 0; i < n; ++i) {
        res = max(res, a[i]);
        res = max(res, b[i]);
        res = max(res, c[i]);
        res = max(res, d[i]);
    }
    return res;
}

int find_max(int *a) {
    int res = 0;
    for (int i = 0; i < n; ++i)
        res = max(res, a[i]); …
Run Code Online (Sandbox Code Playgroud)

c++ parallel-processing multithreading future c++11

8
推荐指数
1
解决办法
1081
查看次数

使用X.par.view和X.view.par构建Scala并行视图?

根据关于并行收集和在互联网上搜索的论文,并行集合应该与视图一起工作,但我不清楚它们之间的区别

coll.par.view.someChainedIterations
Run Code Online (Sandbox Code Playgroud)

coll.view.par.someChainedIterations
Run Code Online (Sandbox Code Playgroud)

似乎coll.view.par放弃了集合的视图:

scala> val coll = 1 to 3
coll: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3)

scala> coll.view.par
res2: scala.collection.parallel.ParSeq[Int] = ParArray(1, 2, 3)

scala> coll.par.view
res3: java.lang.Object with scala.collection.parallel.ParSeqView[Int,scala.collection.parallel.immutable.ParSeq[Int],scala.collection.immutable.Seq[Int]] = $anon$1(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

但我不知道为什么.它是一个功能还是一个bug?

parallel-processing scala scala-collections parallel-collections

8
推荐指数
1
解决办法
355
查看次数

R中的并行和多核处理

我认为这是R的能力极端,但是这里......

我在R中做了一些繁重的处理,其中我编写了一个函数,它可以通过一次调用完成所有腿部工作.但是,我想要连接或使用多个核心.

我看过Parallel包,它已经被弃用了.我理想地喜欢将函数称为新线程.

我理解并行计算的复杂性并不是世界上最简单的东西,但如果有人知道某些有用的软件包或我忽略的任何东西,我会很感激.

干杯

parallel-processing multicore r

8
推荐指数
1
解决办法
1万
查看次数

插入符号中列车的并行执行失败,未找到功能

昨天我更新了我的R包,从那以后并列执行列车功能失败了.

似乎从工作者中调用的某些函数不可用.这些函数至少是flatTable和probFunction.

我在生产机器上遇到了这个问题,并且能够在干净的Windows 7 x64 VM上重现它.

我在下面添加了一个最小的工作示例 亲爱的stackoverflow用户:非常感谢!

# R 3.0.2 x64, RStudio Version 0.98.490, Windows 7 x64

data(iris)
library(caret) # 6.0-21
library(doParallel) # 1.0.6

model <- "rf"

# Fail
?probFunction
?flatTable

fitControl <- trainControl(
  method = "repeatedcv"
  , number = 5  ## 5-fold CV
  , repeats = 1   ## repeated one times
  , verboseIter =TRUE
)

#### Sequential Version ####

# Runs
train(Species ~ ., data = iris, method = model, trControl = fitControl)

#### Parallelized version ####

# …
Run Code Online (Sandbox Code Playgroud)

parallel-processing r r-caret

8
推荐指数
1
解决办法
7407
查看次数

如何在Rust中的自定义单线程迭代器上并行`map(...)`?

我有一个MyReader实现Iterator并生成Buffers的地方Buffer : Send.很快就会MyReader生成很多东西Buffer,但我有一个CPU密集型的工作要对每个Buffer(.map(|buf| ...))这是我的瓶颈,然后收集结果(有序).我希望将CPU密集型工作并行化 - 希望能够使用工作窃取来执行它们,以及核心数量允许的速度.

编辑:更准确.我正在努力rdedup.MyStructChunker哪些读取io::Read(通常是stdio),查找数据的部分(块)并产生它们.然后map()假设,对于每个块,计算它的sha256摘要,压缩,加密,保存并返回摘要作为结果map(...).已保存数据的摘要用于构建index数据.正在处理的块之间的顺序map(...)无关紧要,但是从每个块 返回的摘要map(...)需要以与找到块相同的顺序收集.实际save到文件步骤被卸载到另一个线程(写入线程).有问题的PR的实际代码

我希望我可以使用rayon它,但rayon期望一个已经可以并行的迭代器 - 例如.一个Vec<...>或类似的东西.我发现没有办法得到一个par_iterMyReader-我的读者是非常单线程的性质.

simple_parallel,但文件说,它不推荐用于一般用途.我想确保一切都能正常运作.

我可以采用spmc队列实现和自定义thread_pool,但我正在寻找经过优化和测试的现有解决方案.

还有pipeliner但不支持有序地图.

parallel-processing multithreading rust

8
推荐指数
1
解决办法
526
查看次数

aiohttp:速率限制并行请求

API通常具有用户必须遵循的速率限制。例如,让我们接受50个请求/秒。顺序请求需要0.5-1秒,因此太慢了,无法接近该限制。但是,使用aiohttp的并行请求超出了速率限制。

为了尽可能快地轮询API,需要对并行调用进行速率限制。

到目前为止,我发现的示例装饰了session.get,大致像这样:

session.get = rate_limited(max_calls_per_second)(session.get)
Run Code Online (Sandbox Code Playgroud)

这对于顺序调用非常有效。尝试在并行调用中实现此功能无法按预期进行。

这是一些示例代码:

async with aiohttp.ClientSession() as session:
    session.get = rate_limited(max_calls_per_second)(session.get)
    tasks = (asyncio.ensure_future(download_coroutine(  
          timeout, session, url)) for url in urls)
    process_responses_function(await asyncio.gather(*tasks))
Run Code Online (Sandbox Code Playgroud)

问题在于它将限制任务的排队速度。与的执行gather将或多或少地同时发生。两全其美;-)。

是的,我在aiohttp处发现了一个类似的问题:设置每秒的最大请求数,但没有答复回答限制请求速率的实际问题。同样,来自Quentin Pradet的博客文章仅在限制队列速率上起作用。

总结一下:如何限制并行请求的每秒aiohttp请求数?

python parallel-processing python-asyncio aiohttp

8
推荐指数
2
解决办法
2266
查看次数

进度条使用tqdm和多进程将代码速度降低5倍

我使用tqdm将进度条添加到了2.7 python代码中,但是它大大降低了我的代码速度。如果没有进度条,则需要12秒,而使用进度条则需要57秒。

没有进度条的代码如下所示:

p = mp.Pool()
combs = various combinations
result = p.map(self.parallelize, combs)
p.close()
p.join()
Run Code Online (Sandbox Code Playgroud)

带有进度条的代码如下:

from tqdm import tqdm
p = mp.Pool()
combs = various combinations
result = list(tqdm(p.imap(self.parallelize, combs), total = 5000))
p.close()
p.join()
Run Code Online (Sandbox Code Playgroud)

有没有一种更好的方法不会降低我的代码速度呢?

python parallel-processing multiprocess progress-bar tqdm

8
推荐指数
1
解决办法
911
查看次数

如何在此示例中添加并行计算?

我有一种算法,可以在给定段上同步计算某个积分。我想使用Control.Parallel库,或者par :: a -> b -> b将并行计算添加到此算法。我怎样才能做到这一点?

integrate :: (Double -> Double) -> Double -> Double -> Double
integrate f a b =
  let
    step     = (b - a) / 1000
    segments = [a + x * step | x <- [0..999]]
    area x   = step * (f x + f (x + step)) / 2
  in sum $ map area segments
Run Code Online (Sandbox Code Playgroud)

algorithm parallel-processing haskell

8
推荐指数
1
解决办法
208
查看次数