Tag: 并行处理

如何从bash脚本并行运行多个程序?

我正在尝试编写一个同时运行多个程序的.sh文件 我试过这个 prog1 prog2 但是,运行prog1,然后等待prog1结束,然后启动prog2 … 那么我怎样才能平行运行呢?

Powershell可以并行运行命令吗?

我有一个PowerShell脚本来做一些图像批量处理,我想做一些并行处理。 Powershell似乎有一些后台处理选项,如开始工作,等待工作等,但我发现做并行工作的唯一好资源是写出脚本的文本并运行这些( PowerShellmultithreading ) 理想情况下,我想在.net 4中类似于foreach。 一些非常像: foreach-parallel -threads 4 ($file in (Get-ChildItem $dir)) { .. Do Work } 也许我会更好的下降到C#…

为什么并行包比使用apply慢?

我正在尝试确定何时使用parallel程序包来加快运行某些分析所需的时间。 我需要做的事情之一是创buildmatrix,比较两个dataframe中具有不同行数的variables。 我问了一个关于在StackOverflow上进行的有效方法的问题,并在我的博客上写了关于testing的问题。 因为我对最好的方法感到满意,所以我想通过并行运行来加速这个过程。 下面的结果是基于一个2GB的i7 Mac与8GB的RAM。 我感到惊讶的是, parallel包,特别是parSapply函数,比使用apply函数更糟糕。 下面是复制代码的代码。 请注意,我目前只使用我创build的两个列中的一个,但最终要同时使用这两个列。 执行时间http://jason.bryer.orghttp://img.dovov.comParalleVsApplyTiming.png require(parallel) require(ggplot2) require(reshape2) set.seed(2112) results <- list() sizes <- seq(1000, 30000, by=5000) pb <- txtProgressBar(min=0, max=length(sizes), style=3) for(cnt in 1:length(sizes)) { i <- sizes[cnt] df1 <- data.frame(row.names=1:i, var1=sample(c(TRUE,FALSE), i, replace=TRUE), var2=sample(1:10, i, replace=TRUE) ) df2 <- data.frame(row.names=(i + 1):(i + i), var1=sample(c(TRUE,FALSE), i, replace=TRUE), […]

并发编程和并行编程有什么区别?

并发编程和并行编程有什么区别? 我问谷歌,但没有find任何有助于我理解这种差异的东西。 你能举两个例子吗? 现在我发现这个解释: http : //www.linux-mag.com/id/7411 – 但是“并发是程序的一个属性”vs“并行执行是机器的属性”对于我来说是不够的 – 我还不能说什么是什么。

并发性:C ++ 11内存模型中的primefaces和易失性

一个全局variables在两个不同核心上的两个并发运行的线程之间共享。 线程写入和读取variables。 对于primefacesvariables,一个线程可以读取一个陈旧的值? 每个内核可能在其caching中具有共享variables的值,并且当一个线程写入其caching中的副本时,另一个内核中的另一个线程可能会从自己的caching中读取过时值。 或者编译器执行强大的内存sorting来从其他caching中读取最新值? c ++ 11标准库有std :: atomic支持。 这与volatile关键字有什么不同? 在上述情况下,volatile和atomictypes的performance会有什么不同?

并行执行shell进程

是否有一个工具可以在Windowsbatch file中并行执行多个进程? 我发现了一些有趣的工具( 并行和PPSS ),但是,我需要一个Windows平台的工具。 奖金:如果该工具还允许在几台机器之间以简单的方式分配进程,使用PsExec远程运行进程,那将是一件好事 。 例如:我想在下面的循环 for %F in (*.*) do processFile.exe %F 并行运行有限数量的processFile.exe实例以利用多核CPU。

我是否应该尽可能使用并行stream?

使用Java 8和lambdaexpression式,可以很容易地将集合作为stream进行迭代,并且使用并行stream也很容易。 来自docs的两个例子,第二个使用parallelStream的例子: myShapesCollection.stream() .filter(e -> e.getColor() == Color.RED) .forEach(e -> System.out.println(e.getName())); myShapesCollection.parallelStream() // <– This one uses parallel .filter(e -> e.getColor() == Color.RED) .forEach(e -> System.out.println(e.getName())); 只要我不关心顺序,使用并行总是有益的。 人们可能会认为将更多内核的工作划分得更快。 还有其他的考虑吗? 什么时候应该使用并行stream,何时应该使用非并行stream? (这个问题被要求引发关于如何和何时使用并行stream的讨论,不是因为我认为总是使用它们是一个好主意。)

每个核心的最佳线程数

比方说,我有一个4核CPU,我想在最短的时间内运行一些进程。 这个过程是理想的可并行化的,所以我可以在无数的线程上运行它的块,每个线程都花费相同的时间。 由于我有4个内核,我不希望通过运行比内核更多的线程来提高速度,因为单个内核只能在给定时刻运行单个线程。 我对硬件了解不多,所以这只是一个猜测。 在比线程更多的线程上运行可并行化的进程是否有好处? 换句话说,如果我使用4000个线程而不是4个线程来运行,我的进程会更快,更慢,还是大约相同的时间?

并发VS并行 – 有什么区别?

并发VS并行 – 有什么区别? 任何例子

Java 8并行stream中的自定义线程池

是否有可能为Java 8 并行stream指定自定义线程池? 我找不到任何地方。 想象一下,我有一个服务器应用程序,我想使用并行stream。 但是,应用程序是大型的,multithreading的,所以我想划分它。 我不想在另一个模块的应用程序块任务的一个模块中运行缓慢的任务。 如果我不能为不同的模块使用不同的线程池,这意味着我不能在大多数现实世界的情况下安全地使用并行stream。 试试下面的例子。 有一些CPU密集型任务在单独的线程中执行。 任务利用并行stream。 第一个任务是打破的,所以每一步需要1秒钟(由线程睡眠模拟)。 问题是其他线程卡住,等待中断的任务完成。 这是人为的例子,但想象一下,一个servlet应用程序和一个长期运行的任务提交给共享fork连接池的人。 public class ParallelTest { public static void main(String[] args) throws InterruptedException { ExecutorService es = Executors.newCachedThreadPool(); es.execute(() -> runTask(1000)); //incorrect task es.execute(() -> runTask(0)); es.execute(() -> runTask(0)); es.execute(() -> runTask(0)); es.execute(() -> runTask(0)); es.execute(() -> runTask(0)); es.shutdown(); es.awaitTermination(60, TimeUnit.SECONDS); } private […]