问题标签 [mclapply]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
91 浏览

r - Can mclapply work with a CompressedRleList?

Can mclapply work with a CompressedRleList?

For example, I have a vector of cigars (a), and the cigarToRleList returns CompressedRleList given that vector:

If I try to run mclapply on b I get this error:

Coercing b to a list doesn't seem to help as this list is of length 1:

Any idea how to get mclapply work with the CompressedRleList structure?

0 投票
1 回答
192 浏览

r - Efficient way to split a vector of cigars using mclapply

I have a very large vector of cigars:

That I'd like to transform to a vector of splitted cigars - the logic is as follows: whenever I find a number followed by an N, I have to split it, that is why I splited "32M465N3M" to "32M","465N","3M"; and "3S4I3D45N65M" to "3S4I3D", "45N", "65M"; and "44M2D1I" did not get split because it had no "N" in it.

My vector is very large so ideally I'd like to use the parallel capabilities of the cluster. I'd like to use mclapply with ncores.

Ideally, I'd like to define something like this:

where the length of my.vector.split is length(my.vector) + (number of Ns)*2.

Note. The HPC cluster I am using does not have the latest bioconductor installed so I cannot use cigartoRleList, and other nice cigar operation tools.

0 投票
1 回答
78 浏览

r - 使用 mclapply 将所有数字相加的有效方法,除了伴随 I 的数字

我有以下向量:

我想将其转换为以下向量:

此类结果的逻辑如下,因为"4M1D5M15I1D10M"我添加了所有数字,除了字符前面的数字"I",即 4+1+5+1+10=21(我没有添加 15,因为它在前面"I"),然后在 21 之后粘贴一个 N,变成"21N".

同样的"3M",没有"I"字符,所以它就变成了"3N";和最后一个一样,4+3=7(我没有加 2,因为它在一个 之前"I"),变成"7N".

请注意,my.vector 非常大,因此我想通过 mclapply 使用 HPC 服务器的并行功能。理想情况下,我会运行这样的东西来得到我的结果:

为了定义我的功能,我尝试了以下方法:

虽然不确定这种功能的效率......

0 投票
2 回答
9341 浏览

r - 通过使用多核和并行编程加速 data.table 组

我有一个大代码,聚合步骤是当前速度方面的瓶颈。

在我的代码中,我想加快数据分组步骤以更快。我的数据的 SNOTE(简单的非平凡示例)如下所示:

对于如此大的数据示例,这非常快,但就我而言,我仍在寻找进一步的加速。就我而言,我有多个内核,所以我几乎可以肯定一定有一种方法可以使用这种计算能力。

我愿意将我的数据类型更改为 data.frame 或 idata.frame 对象(理论上 idata.frame 应该比 data.frames 更快)。

我做了一些研究,似乎 plyr 包有一些并行功能可能会有所帮助,但我仍在努力为我正在尝试做的分组做这件事。在另一篇 SO 帖子中,他们讨论了其中一些想法。由于它使用了 foreach 函数,我仍然不确定通过这种并行化可以实现多少。根据我的经验,对于数百万个快速操作来说, foreach 函数并不是一个好主意,因为内核之间的通信工作最终会减慢并行化工作的速度。

0 投票
2 回答
1108 浏览

r - Knitr:将块代码输出重定向到终端

我想监视嵌入在 knitr 文件中的一些相当冗长的并行计算。

计算依赖于我编写的包,相关函数使用 mclapply 来自多核包中的 mclapply 进行并行化。此函数使用utils包中的txtProgressBar的稍微修改的实现输出进度条以监视计算进度。每次mclapply迭代完成时,进度条都会打印到终端并通过 fifo 连接进行更新。

这在从文件中获取或直接调用函数时工作正常,但我找不到让它在 knitr 中工作的方法。我已经尝试了相关的块选项,我可以将消息和警告重定向到终端,但不能重定向到进度条。任何人都可以帮忙吗?

很抱歉没有提供一个最小的工作示例,但我不知道如何在此设置中制作一个。

0 投票
2 回答
2334 浏览

r - mclapply 随机返回 NULL

当我使用 mclapply 时,有时(实际上是随机的)它会给出不正确的结果。这个问题在 Internet 上的其他帖子中得到了相当详尽的描述,例如 ( http://r.789695.n4.nabble.com/Bug-in-mclapply-td4652743.html )。但是,没有提供解决方案。有谁知道如何解决这个问题?谢谢!

0 投票
3 回答
890 浏览

r - 在 R 中使用 mclapply 抑制警告

随着mclapply()所有发出的警告似乎被压制:

虽然lapply会给:

关于如何避免丢失警告的任何提示?

0 投票
1 回答
470 浏览

r - mclapply 内核在不间断睡眠中花费大量时间

这是一个有点笼统的问题,对此我深表歉意,但我无法生成重现该行为的代码示例。我的问题是:我通过将数据集细分为数据框列表,然后使用 mclapply 在 24 核 Linux 服务器的 16 核上运行评分函数来对较大的数据集(约 1100 万行,274 维)进行评分. 列表中的每个数据帧都分配给一个衍生实例并进行评分,返回一个预测数据帧列表。虽然 mclapply 正在运行各种 R 实例,但它们在不间断睡眠中花费了大量时间,超过了它们在运行中花费的时间。有没有其他人使用 mclapply 经历过这种情况?我是 Linux 新手,从操作系统的角度来看,这有意义吗?谢谢。

0 投票
2 回答
1438 浏览

r - 使用 mclapply 时,每个单核都比其无与伦比的版本慢

我正在学习 R 中的并行计算,我发现这发生在我的实验中。

简而言之,在下面的示例中,为什么大多数 'user' in 的值都t小于 in mc_t?我的机器有 32GB 内存,2 个 4 核 CPU 和 8 个超线程。

并且sessionInfo()

澄清:对不起,我的描述可能模棱两可。我知道并行对于整个任务来说仍然更快。但是,时间计数器只是在计算函数中,mclapply没有考虑每个子进程的设置开销时间。所以我仍然很困惑为什么这个纯粹的计算(即m%*%t(m))步慢。

0 投票
0 回答
914 浏览

r - tm_map 在 Linux 上的 R 3.0.1 中有 parallel::mclapply 错误

我在平台上使用 R 3.0.1:i486-pc-linux-gnu(32 位)。我正在尝试使用 tm 库中的 tm_map。我的 SmartStopWord 列表中有 4080 个单词。但是当我执行这段代码时:

我收到此错误:

有谁知道这个的解决方案?