parallel-processing相关内容
Java 5以Executor框架的形式引入了线程池对异步任务执行的支持,其核心是java.util.concurrent.ThreadPoolExecutor实现的线程池.Java 7 以 java.util.concurrent.ForkJoinPool 的形式添加了一个替代线程池. 查看它们各自的 API,ForkJoinPool 在标准场景中提供了 ThreadPoolExecuto
..
我想通过在 R 中使用 mice 来运行 150 个多重插补.但是,为了节省一些计算时间,我会撒谎将过程细分为并行流(如 Stef van Buuren 在“对缺失数据的灵活插补"中所建议的那样). 我的问题是:怎么做? 我可以想象两个选项: 选项 1: imp1 然后使用 complete 和 as.mids 将插补组合在一起 选项 2: imp1 通过添加 VA
..
据我所知,MPI 使我能够更好地控制集群中不同节点的通信方式. 在 MapReduce/Hadoop 中,每个节点进行一些计算,与其他节点交换数据,然后整理其结果的分区.看起来很简单,但由于您可以迭代该过程,因此即使是 K-means 或 PageRank 等算法也能很好地拟合模型.在具有调度局部性的分布式文件系统上,性能显然是不错的.相比之下,MPI 让我可以明确控制节点如何相互发送消息.
..
我很好奇 F# 的性能与 C++ 的性能相比如何?我问了一个关于 Java 的类似问题,我得到的印象是 Java 不适合大量的数字运算. 我读到 F# 应该具有更高的可扩展性和更高的性能,但与 C++ 相比,这种实际性能如何?有关当前实施的具体问题是: 它在浮点运算上的表现如何? 是否允许向量指令 它对优化有多友好编译器? 它的内存占用有多大?它是否允许对内存局部性进行细粒度控制
..
我试图了解 SLURM 的 srun 和 sbatch 命令.我会对一般性的解释感到满意,而不是对以下问题的具体答案,但这里有一些具体的混淆点,可以作为一个起点,让我了解我在寻找什么. 根据文档,srun 用于提交作业,和 sbatch 用于提交作业供以后执行,但我不清楚实际区别,它们的行为似乎相同.例如,我有一个有 2 个节点的集群,每个节点有 2 个 CPU.如果我连续执行 srun t
..
我有一个文件夹名称字典,我想以并行处理.在每个文件夹下,有一个我想以 系列 处理的文件名数组: folder_file_dict = {文件夹名称 : {file_names_key : [file_names_array]}} 最终,我将创建一个名为 folder_name 的文件夹,其中包含名称为 len(folder_file_dict[folder_name][file_names_k
..
我正在并行运行相同代码的 n 个实例,并且希望每个实例都使用独立的随机数. 为此,在开始并行计算之前我创建了一个随机状态列表,如下所示: import numpy.random 作为 randrand_states = [(rand.seed(rand.randint(2**32-1)),rand.get_state())[1] for j in range(n)] 然后我将rand_s
..
我想在批处理文件中的循环内触发多个命令,如下所示: for/l %%x in (20170101,1,20170105) do (启动/等待 C:\Progra~1\Amazon\AWSCLI\aws s3 cp s3://bucket1/%%xs3://bucket2/%%x --recursive)#仅当上述所有命令完成时才在此处做其他事情 Start/wait 是否具有等待所有命令完成后
..
我正在准备并行计算方面的大学考试.主要目的是尽可能加快地球磁场中电子漂移的蒙特卡洛模拟.我已经开发了具有两层并行化的东西: MPI 用于使代码在多台机器上运行 OpenMP 在单台计算机内运行并行模拟 现在问题来了:我想保持按需执行任务.最快的计算机必须能够执行更多的工作,而速度较慢的计算机必须能够执行更多的工作.问题划分是通过 master-worker 循环完成的,因此实现这个结
..
我的 GPU 是 GeForce MX150,pascal 架构,CC.6.1、CUDA 9.1、Windows 10.虽然我的 GPU 是 pascal 但协作组不起作用.我想用它进行块间同步. 我发现我的 tcc 模式未激活. 我还发现它在 Windows 中的 wddm 中不活跃. 如何使用协作组? 如何在 Windows 中激活 tcc 模式? 感谢您的回复. 解决方案
..
我想利用来自多个节点的 CPU 内核来执行单个 R 脚本.每个节点包含 16 个内核,并通过 Slurm 工具分配给我. 到目前为止,我的代码如下所示: ncores 我在 UNIX shell 中通过以下命令执行它: mpirun -np 1 R --no-save another_file_path.Rout 这在单个节点上运行良好
..
对于我的一些作业,我需要实现矩阵与向量的乘法,并按行和列对其进行并行化.我确实理解行版本,但我对列版本有点困惑. 假设我们有以下数据: 以及行版本的代码: #pragma omp parallel default(none) shared(i,v2,v1,matrix,tam) private(j){#pragma omp forfor (i = 0; i 这里计算正确,结果正确
..
所以,这就是我想要做的 - 实际上不言自明: 启动 X 个“同时"进程(每个进程都绑定到不同的 php 脚本) 能够说全部什么时候完成 我已经研究了各种不同的方法,我可能会使用 exec 和后台进程.(关于这些行). 事情 - 我真的无法理解 - 是: 我不知道哪种方法是检查所有进程是否完成的最有效方法 (能够密切关注总体进度 - 例如 X out ofY完了,也是必须的
..
我尝试使用 Parallel.For() 计算列表的平均值.我决定反对它,因为它比简单的串行版本慢四倍.然而,我对它产生的结果与串行结果不同这一事实很感兴趣,我认为了解原因会很有启发性. 我的代码是: public static double Mean(this IList list){双和 = 0.0;Parallel.For(0, list.Count, i => {双初始总和;双增量
..
我使用 MPI 用 C 编写了一个程序,其中结构变量将以环形方式发送到进程,并根据从该变量接收到的值,分配该特定进程的工作. 问题是我需要知道如何在 MPI_Send() 函数中发送一个结构变量,因为它在运行时给出了 INVALID DATATYPE,考虑下面的例子 结构信息{int ne, n, u, v, process, min, strip, mincost, b;统计;MPI_S
..
我正在使用 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
..
我试图学习一些有关并行编程的知识,因此我尝试实现 Peterson 算法作为一个简单示例,其中一个共享计数器增加 2 个线程.我知道由于忙于等待,彼得森不是最佳选择,但我只是出于学习原因才尝试过. 我认为这段代码的临界区在线程函数 add 中,其中共享 counter 递增.所以我在计数器递增之前调用 enter_section 函数,在它之后调用 leave_function.这部分有错吗
..
我有一个定义了所有变量的 for 循环 #pragma omp parallel forfor(long long l = 1; l 当我在 Visual Studio 2012 中使用 /openmp 命令行选项编译它时,它给了我 错误 C3017:OpenMP 'for' 语句中的终止测试形式不正确 我不知道为什么'for'语句的形式不正确. OpenMP 的正确语句是什么?如
..
相关:ParallelStream 上的 CompletableFuture 被批处理并且运行速度比顺序流慢? 我正在研究通过 parallelStream 和 CompletableFutures 并行化网络调用的不同方法.因此,我遇到过这种情况,Java 的 parallelStream 使用的 ForkJoinPool.commonPool() 的大小动态增长,从 ~ #Cores 到
..
在 dill 序列化/pickling 上构建了我的代码的重要部分后,我还尝试使用 pathos 多处理来并行化我的计算.悲情它是莳萝的自然延伸. 尝试运行嵌套时 from pathos.multiprocessing import ProcessingPoolProcessingPool().map(fn, args) 在另一个 ProcessingPool().map 中,然后我收到
..