标签: parallel-processing

如何设置用于par的线程数

知道你可以设置用于所有.par操作的线程数,如下所示: collection.parallel.ForkJoinTasks.defaultForkJoinPool.setParallelism(parlevel: Int)

但是,是否可以设置仅用于一个.par调用的线程数?

parallel-processing scala

15
推荐指数
2
解决办法
6250
查看次数

python中的并行编程

我的项目是使用OpenMP在C中做一些并行的算法.现在我想用Python做同样的项目.有没有类似于openmp for python的东西?

python parallel-processing

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

在C#中快速将350M数字加载到double []数组中

我将在二进制文件中存储350M预先计算的双数,并在我的dll启动时将它们加载到内存中.有没有内置的方法可以并行加载它,或者我应该自己将数据拆分成多个文件并自己处理多个线程?

回答评论:我将在足够强大的盒子上运行这个dll,很可能只在64位的盒子上运行.因为无论如何所有对我的号码的访问都是通过属性,我可以将我的号码存储在几个数组中.

[更新]

大家好,谢谢你的回答!我期待在不同的盒子上进行大量的基准测试.关于需要:我想加快一个非常慢的计算,所以我要预先计算一个网格,将其加载到内存中,然后进行插值.

c# parallel-processing

14
推荐指数
4
解决办法
2034
查看次数

在scala中使用Futures而不是并行集合有什么好处?

在并行处理项目列表时,是否有充分理由增加Futures(vs parallel collection)的复杂性?

List(...).par.foreach(x=>longRunningAction(x))  
Run Code Online (Sandbox Code Playgroud)

VS

Future.traverse(List(...)) (x=>Future(longRunningAction(x)))
Run Code Online (Sandbox Code Playgroud)

parallel-processing scala actor

14
推荐指数
1
解决办法
1985
查看次数

在python多处理中修改对象

我有一大堆自定义对象,我需要执行独立(可并行化)的任务,包括修改对象参数.我尝试过使用Manager().dict和'sharedmem'ory,但两者都没有用.例如:

import numpy as np
import multiprocessing as mp
import sharedmem as shm


class Tester:

    num = 0.0
    name = 'none'
    def __init__(self,tnum=num, tname=name):
        self.num  = tnum
        self.name = tname

    def __str__(self):
        return '%f %s' % (self.num, self.name)

def mod(test, nn):
    test.num = np.random.randn()
    test.name = nn


if __name__ == '__main__':

    num = 10

    tests = np.empty(num, dtype=object)
    for it in range(num):
        tests[it] = Tester(tnum=it*1.0)

    sh_tests = shm.empty(num, dtype=object)
    for it in range(num):
        sh_tests[it] = tests[it]
        print sh_tests[it]

    print '\n' …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing multiprocessing

14
推荐指数
2
解决办法
9954
查看次数

无法打开并行群集的套接字

我正在尝试使用该parallel包,并发现makeCluster无法完成.我已经跟踪了以下几行newPSOCKnode:

con <- socketConnection("localhost", port = port, server = TRUE, 
    blocking = TRUE, open = "a+b", timeout = timeout)
Run Code Online (Sandbox Code Playgroud)

该命令停止(授予默认超时值很大).我怀疑这是因为我们的工作计算机上存在一些"过度热心的IT规则",但欢迎任何有关如何跟踪(和修复)问题根源的建议.这是Windows7-64,"Enterprise",R 3.0.1.

更多信息:内部调试会话,我设置timeout < - 10,但它仍然挂起 - 好像socketConnection被困在某处甚至无法检查超时值.

这是与Richie Cotton的数据相同的转储:

Browse[3]> ls.str()
arg :  chr "parallel:::.slaveRSOCK()"
cmd :  chr "\"C:/Users/carl.witthoft/Documents/R/R-3.0.1/bin/x64/Rscript\" -e \"parallel:::.slaveRSOCK()\" MASTER=localhost PORT=11017 OUT="| __truncated__
env :  chr "MASTER=localhost PORT=11017 OUT=/dev/null TIMEOUT=2592000 METHODS=TRUE XDR=TRUE"
machine :  chr "localhost"
manual :  logi FALSE
master :  chr "localhost"
methods :  logi TRUE …
Run Code Online (Sandbox Code Playgroud)

parallel-processing r

14
推荐指数
1
解决办法
7870
查看次数

是否有可能在Haskell中加速快速排名?

我有这个看似琐碎的并行快速实现,代码如下:

import System.Random
import Control.Parallel
import Data.List

quicksort :: Ord a => [a] -> [a]
quicksort xs = pQuicksort 16 xs -- 16 is the number of sparks used to sort

-- pQuicksort, parallelQuicksort  
-- As long as n > 0 evaluates the lower and upper part of the list in parallel,
-- when we have recursed deep enough, n==0, this turns into a serial quicksort.
pQuicksort :: Ord a => Int -> [a] -> [a]
pQuicksort _ [] = …
Run Code Online (Sandbox Code Playgroud)

parallel-processing profiling haskell quicksort

14
推荐指数
3
解决办法
1544
查看次数

如何强制某些目标组始终按顺序运行?

有没有办法让gmake永远不会从一组并行运行两个目标?

我不想使用.NOTPARALLEL,因为它强制整个Makefile按顺序运行,而不仅仅是所需的部分.

我还可以添加依赖项,以便一个依赖于另一个,但是然后(除了uglu)我需要构建所有它们以构建最后一个,这是不必要的.


我需要这个的原因是我的Makefile的一部分(只有一部分)调用ghc --make,它自己处理它的依赖.并且不可能在两个不同的目标上并行运行它,因为如果两个目标共享一些依赖关系,它们可以重写彼此的.o文件.(但ghc顺序调用很好.)

更新:举一个具体的例子.假设我需要在Makefile中编译两个程序:

  • prog1取决于prog1.hsmylib.hs;
  • prog2取决于prog2.hsmylib.hs.

现在,如果我调用ghc --make prog1.hs,它会检查它的依赖,既编译prog1.hsmylib.hs到各自的目标和接口文件和链接prog1.我打电话时也是如此ghc --make prog2.hs.因此,如果两个命令并行运行,则会覆盖mylib.o另一个命令,从而导致其严重失败.

但是,我需要它既不prog1依赖prog2也不反过来,因为它们应该单独编译.(实际上它们非常庞大,有很多模块,需要编译它们都会大大减慢开发速度.)

parallel-processing makefile gnu-make ghc

14
推荐指数
1
解决办法
2966
查看次数

加速地面集中所有对之间的L1距离

我有一个描述地面集的矩阵NxM(通常是10k X 10k元素).每行代表一个对象,每列代表一个特定的特征.例如,在矩阵中

   f1 f2 f3
x1 0  4  -1
x2 1  0  5
x3 4  0  0
x4 0  1  0
Run Code Online (Sandbox Code Playgroud)

对象x1在特征1中具有值0,在特征1中具有值4,在特征-1中具有值0.这个值是一般实数(double's).

我必须计算所有对象(所有对线)之间的几个自定义距离/不相似度.为了比较,我想计算L1(曼哈顿)和L2(欧几里德)距离.

我使用Eigen库来执行我的大部分计算.为了计算L2(欧几里得),我使用以下观察:对于两个大小为n的向量ab,我们有:

||a - b||^2 = (a_1 - b_1)^2 + (a_2 - b_2)^2 + ... +(a_n - b_n)^2
            = a_1^2 + b_1^2 - 2 a_1 b_1 + a_2^2 + b_2^2 - 2 a_2 b_2 + ... + a_n^2 + b_n^2 - 2 a_n b_n
            = a . a + b . …

c++ algorithm parallel-processing matrix eigen

14
推荐指数
1
解决办法
1035
查看次数

编写并行循环

我试图在一个简单的例子上运行并行循环.
我究竟做错了什么?

from joblib import Parallel, delayed  
import multiprocessing

def processInput(i):  
        return i * i

if __name__ == '__main__':

    # what are your inputs, and what operation do you want to 
    # perform on each input. For example...
    inputs = range(1000000)      

    num_cores = multiprocessing.cpu_count()

    results = Parallel(n_jobs=4)(delayed(processInput)(i) for i in inputs) 

    print(results)
Run Code Online (Sandbox Code Playgroud)

代码的问题在于,当在Python 3中的Windows环境下执行时,它会打开num_corespython实例来执行并行作业,但只有一个是活动的.这不应该是这种情况,因为处理器的活动应该是100%而不是14%(在i7-8个逻辑核心下).

为什么额外的实例没有做任何事情?

python windows parallel-processing joblib

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