Questions tagged «parallel-processing»

与并行处理形成鲜明对比的是,并行处理可确保启动/执行/完成以并行方式执行的所有线程级和/或指令级任务,并确保同时执行的代码路径完成。

2
使用xargs并行运行程序
我目前有当前脚本。 #!/bin/bash # script.sh for i in {0..99}; do script-to-run.sh input/ output/ $i done 我希望使用xargs并行运行它。我努力了 script.sh | xargs -P8 但是执行上述操作一次只能执行一次。-n8也没有运气。在要在循环脚本中执行的行的末尾添加&会尝试一次运行该脚本99次。我如何一次只执行8次循环,最多执行100次。

3
Python多处理:了解“块大小”背后的逻辑
哪些因素决定了此类chunksize方法的最佳论点multiprocessing.Pool.map()?该.map()方法似乎对其默认的块大小使用了任意启发式(如下所述);是什么激发了这种选择,并且基于某些特定的情况/设置,是否有一种更周到的方法? 示例-说我是: 传递iterable给的.map()元素大约有1500万; 24个核的机器上工作,使用默认processes = os.cpu_count()内multiprocessing.Pool()。 我天真的想法是给24名工人中的每人一个相等大小的块,即15_000_000 / 24625,000。大块应该在充分利用所有工人的同时减少营业额/间接费用。但这似乎没有为每个工人提供大批量生产的潜在弊端。这是一张不完整的图片,我想念什么? 我的问题的一部分源于if的默认逻辑chunksize=None:both.map()和.starmap()call .map_async(),看起来像这样: def _map_async(self, func, iterable, mapper, chunksize=None, callback=None, error_callback=None): # ... (materialize `iterable` to list if it's an iterator) if chunksize is None: chunksize, extra = divmod(len(iterable), len(self._pool) * 4) # ???? if extra: chunksize += 1 if len(iterable) == …

5
Parallel.ForEach与添加到列表
我正在尝试运行连接到远程站点(通过网络)并返回通用列表的多个功能。但是我想同时运行它们。 例如: public static List<SearchResult> Search(string title) { //Initialize a new temp list to hold all search results List<SearchResult> results = new List<SearchResult>(); //Loop all providers simultaneously Parallel.ForEach(Providers, currentProvider => { List<SearchResult> tmpResults = currentProvider.SearchTitle((title)); //Add results from current provider results.AddRange(tmpResults); }); //Return all combined results return results; } 正如我所看到的,可能同时发生多次插入“结果” …


7
在node.js中协调并行执行
node.js的事件驱动编程模型使协调程序流变得有些棘手。 简单的顺序执行变成嵌套的回调,这很容易(尽管有些麻烦以至于要写下来)。 但是并行执行呢?假设您有三个可以并行运行的任务A,B,C,当它们完成后,您要将其结果发送给任务D。 对于前叉/连接模型,这将是 叉子A B叉 C叉 加入A,B,C,运行D 我该如何在node.js中编写它?是否有最佳做法或食谱?我是否必须每次都手动解决方案,还是有一些带有帮助程序的库?

5
为什么OpenMP不允许!=运算符?
我正在尝试编译以下代码: #pragma omp parallel shared (j) { #pragma omp for schedule(dynamic) for(i = 0; i != j; i++) { // do something } } 但我收到以下错误:错误:控制谓词无效。 该OpenMP的标准规定,对于parallel for构造它“仅仅”允许以下的运营商之一:<,<=,> >=。 我不明白不允许这样做的理由i != j。对于,我可以理解,static schedule因为编译器需要预先计算分配给每个线程的迭代次数。但是我不明白为什么在这种情况下会出现这种限制。有什么线索吗? 编辑:即使我做了for(i = 0; i != 100; i++),尽管我可以放“ <”或“ <=”。



5
是否有一个简单的基于进程的python并行映射?
我正在寻找一个简单的基于进程的python并行映射,即一个函数 parmap(function,[data]) 它将在不同进程上的[data]的每个元素上运行函数(嗯,在不同的内核上,但是AFAIK,在python中的不同内核上运行的唯一方法是启动多个解释器),并返回结果列表。 是否存在这样的东西?我想要一些简单的东西,所以一个简单的模块会很好。当然,如果不存在这样的东西,我会为一个大图书馆而定:-/

10
科学计算中的F#性能
我很好奇F#性能与C ++性能相比如何?我问了一个关于Java的类似问题,我得到的印象是Java不适合进行大量数字运算。 我已经读到F#应该具有更高的可扩展性和更高的性能,但是与C ++相比,这种实际性能如何?有关当前实施的具体问题是: 浮点运算的效果如何? 它允许矢量指令吗 对优化编译器有多友好? 它有多少内存占用空间?是否允许对内存局部性进行细粒度控制? 它是否具有用于分布式存储处理器(例如Cray)的容量? 在涉及大量处理的计算科学中,它具有哪些有趣的功能? 是否有使用它的实际科学计算实现? 谢谢


5
在C#中并行运行三种方法的最简单方法
我使用三种方法进行一些数字运算,如下所示 results.LeftFront.CalcAi(); results.RightFront.CalcAi(); results.RearSuspension.CalcAi(geom, vehDef.Geometry.LTa.TaStiffness, vehDef.Geometry.RTa.TaStiffness); 每个函数彼此独立,并且可以在没有死锁的情况下并行计算。 没有完成包含方法直到所有三个方法都完成时,并行计算这些方法的最简单方法是什么?




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.