parallel-processing相关内容

Java-5 ThreadPoolExecutor 与 Java-7 ForkJoinPool 相比有什么优势?

Java 5以Executor框架的形式引入了线程池对异步任务执行的支持,其核心是java.util.concurrent.ThreadPoolExecutor实现的线程池.Java 7 以 java.util.concurrent.ForkJoinPool 的形式添加了一个替代线程池. 查看它们各自的 API,ForkJoinPool 在标准场景中提供了 ThreadPoolExecuto ..

使用mice R包并行计算多重插补

我想通过在 R 中使用 mice 来运行 150 个多重插补.但是,为了节省一些计算时间,我会撒谎将过程细分为并行流(如 Stef van Buuren 在“对缺失数据的灵活插补"中所建议的那样). 我的问题是:怎么做? 我可以想象两个选项: 选项 1: imp1 然后使用 complete 和 as.mids 将插补组合在一起 选项 2: imp1 通过添加 VA ..
发布时间:2021-12-30 21:44:16 其他开发

MPI 比 MapReduce 更适合哪些场景?

据我所知,MPI 使我能够更好地控制集群中不同节点的通信方式. 在 MapReduce/Hadoop 中,每个节点进行一些计算,与其他节点交换数据,然后整理其结果的分区.看起来很简单,但由于您可以迭代该过程,因此即使是 K-means 或 PageRank 等算法也能很好地拟合模型.在具有调度局部性的分布式文件系统上,性能显然是不错的.相比之下,MPI 让我可以明确控制节点如何相互发送消息. ..
发布时间:2021-12-30 21:44:03 其他开发

F#在科学计算中的表现

我很好奇 F# 的性能与 C++ 的性能相比如何?我问了一个关于 Java 的类似问题,我得到的印象是 Java 不适合大量的数字运算. 我读到 F# 应该具有更高的可扩展性和更高的性能,但与 C++ 相比,这种实际性能如何?有关当前实施的具体问题是: 它在浮点运算上的表现如何? 是否允许向量指令 它对优化有多友好编译器? 它的内存占用有多大?它是否允许对内存局部性进行细粒度控制 ..

SLURM `srun` 与 `sbatch` 及其参数

我试图了解 SLURM 的 srun 和 sbatch 命令.我会对一般性的解释感到满意,而不是对以下问题的具体答案,但这里有一些具体的混淆点,可以作为一个起点,让我了解我在寻找什么. 根据文档,srun 用于提交作业,和 sbatch 用于提交作业供以后执行,但我不清楚实际区别,它们的行为似乎相同.例如,我有一个有 2 个节点的集群,每个节点有 2 个 CPU.如果我连续执行 srun t ..
发布时间:2021-12-30 21:43:46 其他开发

这是对并行代码正确使用 numpy 种子吗?

我正在并行运行相同代码的 n 个实例,并且希望每个实例都使用独立的随机数. 为此,在开始并行计算之前我创建了一个随机状态列表,如下所示: import numpy.random 作为 randrand_states = [(rand.seed(rand.randint(2**32-1)),rand.get_state())[1] for j in range(n)] 然后我将rand_s ..
发布时间:2021-12-30 21:43:30 Python

在 Windows 批处理循环中,如何在继续之前等待生成的进程完成

我想在批处理文件中的循环内触发多个命令,如下所示: for/l %%x in (20170101,1,20170105) do (启动/等待 C:\Progra~1\Amazon\AWSCLI\aws s3 cp s3://bucket1/%%xs3://bucket2/%%x --recursive)#仅当上述所有命令完成时才在此处做其他事情 Start/wait 是否具有等待所有命令完成后 ..
发布时间:2021-12-30 21:43:21 其他开发

并行蒙特卡罗:可重复性还是真正的随机性?

我正在准备并行计算方面的大学考试.主要目的是尽可能加快地球磁场中电子漂移的蒙特卡洛模拟.我已经开发了具有两层并行化的东西: MPI 用于使代码在多台机器上运行 OpenMP 在单台计算机内运行并行模拟 现在问题来了:我想保持按需执行任务.最快的计算机必须能够执行更多的工作,而速度较慢的计算机必须能够执行更多的工作.问题划分是通过 master-worker 循环完成的,因此实现这个结 ..
发布时间:2021-12-30 21:43:10 其他开发

如何在 windows 中使用 CUDA 的协作组功能

我的 GPU 是 GeForce MX150,pascal 架构,CC.6.1、CUDA 9.1、Windows 10.虽然我的 GPU 是 pascal 但协作组不起作用.我想用它进行块间同步. 我发现我的 tcc 模式未激活. 我还发现它在 Windows 中的 wddm 中不活跃. 如何使用协作组? 如何在 Windows 中激活 tcc 模式? 感谢您的回复. 解决方案 ..

多个节点上的单个 R 脚本

我想利用来自多个节点的 CPU 内核来执行单个 R 脚本.每个节点包含 16 个内核,并通过 Slurm 工具分配给我. 到目前为止,我的代码如下所示: ncores 我在 UNIX shell 中通过以下命令执行它: mpirun -np 1 R --no-save another_file_path.Rout 这在单个节点上运行良好 ..
发布时间:2021-12-30 21:42:51 服务器开发

使用 OpenMP 按列和行并行化矩阵乘以向量

对于我的一些作业,我需要实现矩阵与向量的乘法,并按行和列对其进行并行化.我确实理解行版本,但我对列版本有点困惑. 假设我们有以下数据: 以及行版本的代码: #pragma omp parallel default(none) shared(i,v2,v1,matrix,tam) private(j){#pragma omp forfor (i = 0; i 这里计算正确,结果正确 ..
发布时间:2021-12-30 21:42:41 其他开发

并行执行多个PHP脚本,完成时得到通知

所以,这就是我想要做的 - 实际上不言自明: 启动 X 个“同时"进程(每个进程都绑定到不同的 php 脚本) 能够说全部什么时候完成 我已经研究了各种不同的方法,我可能会使用 exec 和后台进程.(关于这些行). 事情 - 我真的无法理解 - 是: 我不知道哪种方法是检查所有进程是否完成的最有效方法 (能够密切关注总体进度 - 例如 X out ofY完了,也是必须的 ..
发布时间:2021-12-30 21:42:32 PHP

Parallel.For() 和 Interlocked.CompareExchange():性能较差,结果与串行版本略有不同

我尝试使用 Parallel.For() 计算列表的平均值.我决定反对它,因为它比简单的串行版本慢四倍.然而,我对它产生的结果与串行结果不同这一事实很感兴趣,我认为了解原因会很有启发性. 我的代码是: public static double Mean(this IList list){双和 = 0.0;Parallel.For(0, list.Count, i => {双初始总和;双增量 ..
发布时间:2021-12-30 21:42:24 C#/.NET

如何在 MPI_Send() 中发送结构类型的变量?

我使用 MPI 用 C 编写了一个程序,其中结构变量将以环形方式发送到进程,并根据从该变量接收到的值,分配该特定进程的工作. 问题是我需要知道如何在 MPI_Send() 函数中发送一个结构变量,因为它在运行时给出了 INVALID DATATYPE,考虑下面的例子 结构信息{int ne, n, u, v, process, min, strip, mincost, b;统计;MPI_S ..
发布时间:2021-12-30 21:42:15 其他开发

未使用所需数量的处理器

我正在使用 openmp 并行运行以下 Fortran 代码,但只有一个处理器在工作.我在代码中添加了一些执行例程,例如 OMP_SET_NUM_THREADS 和 OMP_GET_NUM_THREADS 以遵循并行处理.这是代码的相关部分: 整数 a,b,omp_get_num_procs,omp_get_max_threads,&omp_get_num_threadsopen( unit=1 ..
发布时间:2021-12-30 21:42:07 其他开发

彼得森算法的错误实现?

我试图学习一些有关并行编程的知识,因此我尝试实现 Peterson 算法作为一个简单示例,其中一个共享计数器增加 2 个线程.我知道由于忙于等待,彼得森不是最佳选择,但我只是出于学习原因才尝试过. 我认为这段代码的临界区在线程函数 add 中,其中共享 counter 递增.所以我在计数器递增之前调用 enter_section 函数,在它之后调用 leave_function.这部分有错吗 ..
发布时间:2021-12-30 21:41:59 其他开发

错误 C3017:OpenMP 'for' 语句中的终止测试形式不正确

我有一个定义了所有变量的 for 循环 #pragma omp parallel forfor(long long l = 1; l 当我在 Visual Studio 2012 中使用 /openmp 命令行选项编译它时,它给了我 错误 C3017:OpenMP 'for' 语句中的终止测试形式不正确 我不知道为什么'for'语句的形式不正确. OpenMP 的正确语句是什么?如 ..