标签: parallel-processing

可以/我应该在GPU上运行此代码吗?

我正在研究一个统计应用程序,它在一个数组中包含大约10-30万个浮点值.

有几种方法在嵌套循环中对数组执行不同但独立的计算,例如:

Dictionary<float, int> noOfNumbers = new Dictionary<float, int>();

for (float x = 0f; x < 100f; x += 0.0001f) {
    int noOfOccurrences = 0;

    foreach (float y in largeFloatingPointArray) {
        if (x == y) {
            noOfOccurrences++;
        }
    }

    noOfNumbers.Add(x, noOfOccurrences);
}
Run Code Online (Sandbox Code Playgroud)

当前的应用程序是用C#编写的,在Intel CPU上运行,需要几个小时才能完成.我不了解GPU编程概念和API,所以我的问题是:

  • 是否有可能(并且有意义)利用GPU来加速这样的计算?
  • 如果是:有没有人知道任何教程或获得任何示例代码(编程语言无关紧要)?

任何帮助将受到高度赞赏.

c c++ parallel-processing cuda gpu

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

是否可以限制Parallel.ForEach的核心?

Parallel.ForEach在我的代码中使用了一个.我的所有8个内核都达到了100%.这对于在服务器上运行的其他应用程序来说很糟糕.是否有可能将执行限制为4核心?

.net c# parallel-processing foreach

41
推荐指数
3
解决办法
2万
查看次数

并行运行shell脚本

我有一个shell脚本

  1. 随机播放一个大文本文件(600万行和6列)
  2. 根据第一列对文件进行排序
  3. 输出1000个文件

所以伪代码看起来像这样

file1.sh 

#!/bin/bash
for i in $(seq 1 1000)
do

  Generating random numbers here , sorting  and outputting to file$i.txt  

done
Run Code Online (Sandbox Code Playgroud)

有没有办法运行这个shell脚本parallel来充分利用多核CPU?

在这一刻, ./file1.sh按顺序执行1到1000次运行并且速度非常慢.

谢谢你的帮助.

unix linux parallel-processing bash shell

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

在Java中并行化任务的最简单方法是什么?

说我有一个类似的任务:

for(Object object: objects) {
    Result result = compute(object);
    list.add(result);
}
Run Code Online (Sandbox Code Playgroud)

并行化每个compute()的最简单方法是什么(假设它们已经可并行化)?

我不需要一个严格符合上述代码的答案,只需一般答案.但是如果您需要更多信息:我的任务是IO绑定的,这是针对Spring Web应用程序的,任务将在HTTP请求中执行.

java parallel-processing multithreading

40
推荐指数
3
解决办法
4万
查看次数

OCaml的并行化能力是什么状态?

我有兴趣将OCaml用于项目,但是我不确定它的并行化功能在哪里.OCaml中是否有消息传递功能?OCaml能否有效地使用1个以上的CPU?

我读到的关于这个主题的大部分内容是在2002 - 2006年写的,我最近没有看到任何东西.

谢谢!

parallel-processing ocaml

40
推荐指数
2
解决办法
9190
查看次数

使2个函数同时运行

我试图让2个函数同时运行.

def func1():
    print 'Working'

def func2():
    print 'Working'

func1()
func2()
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?

python parallel-processing multithreading

39
推荐指数
4
解决办法
10万
查看次数

我可以使用"cabal install"来使用多个内核吗?

有谁知道如何cabal install利用并行性?我正在使用GHC编译,虽然我不知道GHC本身是否可以进行并行构建,但肯定cabal install可以并行运行多个编译,不是吗?至少对于独特的独立包装?

有谁知道它是否可能以及如何做到这一点?

parallel-processing haskell multicore build cabal

39
推荐指数
3
解决办法
4582
查看次数

并行流,收集器和线程安全

请参阅下面的简单示例,该示例计算列表中每个单词的出现次数:

Stream<String> words = Stream.of("a", "b", "a", "c");
Map<String, Integer> wordsCount = words.collect(toMap(s -> s, s -> 1,
                                                      (i, j) -> i + j));
Run Code Online (Sandbox Code Playgroud)

最后,wordsCount{a=2, b=1, c=1}.

但我的流非常大,我想要并行工作,所以我写道:

Map<String, Integer> wordsCount = words.parallel()
                                       .collect(toMap(s -> s, s -> 1,
                                                      (i, j) -> i + j));
Run Code Online (Sandbox Code Playgroud)

但是我注意到这wordsCount很简单HashMap所以我想知道我是否需要明确要求并发映射以确保线程安全:

Map<String, Integer> wordsCount = words.parallel()
                                       .collect(toConcurrentMap(s -> s, s -> 1,
                                                                (i, j) -> i + j));
Run Code Online (Sandbox Code Playgroud)

非并发收集器是否可以安全地与并行流一起使用,还是在从并行流收集时只应使用并发版本?

java parallel-processing concurrency java-8 java-stream

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

在R中并行运行for循环

我有一个for循环,它是这样的:

for (i=1:150000) {
   tempMatrix = {}
   tempMatrix = functionThatDoesSomething() #calling a function
   finalMatrix =  cbind(finalMatrix, tempMatrix)

}
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何让它平行吗?

我在网上尝试了这个例子,但我不确定语法是否正确.它也没有太多提高速度.

finalMatrix = foreach(i=1:150000, .combine=cbind) %dopar%  {
   tempMatrix = {}
   tempMatrix = functionThatDoesSomething() #calling a function

   cbind(finalMatrix, tempMatrix)

}
Run Code Online (Sandbox Code Playgroud)

parallel-processing r parallel-foreach

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

等待具有OnlyOnFaulted Continuation的任务会导致AggregateException

我有一些简单的代码作为repro:

var taskTest = Task.Factory.StartNew(() =>
{
    System.Threading.Thread.Sleep(5000);

}).ContinueWith((Task t) =>
{
    Console.WriteLine("ERR");
}, TaskContinuationOptions.OnlyOnFaulted);

try
{
    Task.WaitAll(taskTest);
}
catch (AggregateException ex)
{
    foreach (var e in ex.InnerExceptions)
        Console.WriteLine(e.Message + Environment.NewLine + e.StackTrace);
}
Run Code Online (Sandbox Code Playgroud)

但是,我在try catch块中抛出一个意外的TaskCanceledException(它在AggregateException InnerExceptions对象中)."任务被取消了".

为什么我得到这个例外?任务的Continuation永远不会触发,它没有生成任何异常,但在等待时我仍然得到聚合异常....

我希望有人能解释一下这对我有多大意义:)

c# parallel-processing task pfx task-parallel-library

38
推荐指数
1
解决办法
6989
查看次数