问题标签 [pmap]

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 投票
2 回答
663 浏览

memory-leaks - Solaris:pmap 报告的虚拟内存大小与 ps 不同

我有一个在 Solaris (SunOS m1001 5.10 sun4v sparc) 上运行的进程,并且正在监视使用的总虚拟内存。

定期运行 ps 表明 VSZ 随着时间的推移呈线性增长,跃迁 80kbytes,并且它一直在增长,直到达到 4GB 限制,此时它的地址空间不足,事情开始分崩离析。

我怀疑内存泄漏,并决定使用 pmap 进一步调查。但是 pmap 显示 VSZ 根本没有增长,而是保持稳定。此外,所有文件映射、共享内存映射和堆都保持相同的大小。

我的第一个问题是:为什么 ps 和 pmap 会为同一个进程产生不同的 VSZ?

我可以想象堆大小的计算方式不同(例如堆使用量与最高堆指针),因此开始考虑堆碎片的方向。然后,我使用 libumem 和 mdb 生成有关不同时间分配内存的详细报告,并注意到分配的内存绝对没有差异。

所以我的第二个问题是:找出导致 ps 报告的 VSZ 增长的原因的最佳方法是什么。

0 投票
2 回答
690 浏览

performance - 如何获得并发函数(pmap)以使用 Elixir 中的所有内核?

我是 Elixir 的新手,我开始阅读 Dave Thomas 出色的Programming Elixir。我很好奇我可以将“pmap”函数的并发性带到多远,所以我迭代地将平方的项目数从 1,000 增加到 10,000,000。出于好奇,我看了看输出htop我这样做的输出,通常 CPU 使用率达到峰值,如下所示:

htop 输出

在展示了书中的例子后,戴夫说:

而且,是的,我刚刚启动了 1,000 个后台进程,并且使用了我机器上的所有内核和处理器。

我的问题是,为什么我的机器上只有核心 1、3、5 和 7 亮起?我的猜测是,这与我的iex进程只是一个操作系统级别的进程有关,而 OSX 正在管理该进程的范围。这就是这里发生的事情吗?是否有某种方法可以确保所有内核都用于性能密集型任务?

0 投票
2 回答
269 浏览

clojure - clojure pmap - 为什么我不使用所有核心?

我正在尝试使用 clojurepantomime库从大量tif文档(以及其他文档)中提取/ocr 文本。

我的计划是使用 pmap 对一系列输入数据(来自 postgres 数据库)应用映射,然后使用 tika/tesseract OCR 输出更新同一个 postgres 数据库。这一直工作正常,但是我在 htop 中注意到许多内核有时处于空闲状态。

无论如何要调和这一点,我可以采取哪些步骤来确定为什么这可能会在某处阻塞?所有处理都发生在一个 tif 文件上,并且每个线程都是完全互斥的。

附加信息:

  1. 一些 tika/tesseract 过程需要 3 秒,其他需要 90 秒。一般来说,tika 受 CPU 限制很大。根据 ,我有足够的可用内存htop
  2. postgres 在会话管理中没有锁定问题,所以我认为这不会阻碍我。
  3. 也许某个地方future正在等待deref?怎么知道在哪里?

任何提示表示赞赏,谢谢。下面添加的代码。

0 投票
1 回答
139 浏览

multithreading - 如何在clojure中生成n个线程

我想知道如何在 clojure 中创建 n 个线程。有一个名为“estimate-value”的函数,它可以估计一个值并返回结果。现在我想使用 pmap 或 pcalls 创建 n 个线程,每个线程可以计算一个估计值,然后组合 n 个结果并返回最终估计值。我的代码是

我确信函数估计值是正确的。但是当我运行并得到一个错误时:

如何修复此计算值函数?谢谢!

0 投票
1 回答
435 浏览

parallel-processing - 玩具示例的 pmap 慢

我正在 Julia 中测试并行性,看看我的机器上是否有加速(我正在选择一种语言来实现新算法)。我不想花大量时间写一个巨大的例子,所以我在发布版本 Julia 0.4.5(Mac OS X 和双核)上做了以下测试:

pmap比 map (>20x) 慢得多,并且分配的内存远远超过 10x。我究竟做错了什么?

谢谢。

0 投票
1 回答
629 浏览

clojure - 为什么 pmap|reducers/map 不使用所有 cpu 内核?

我正在尝试解析一个包含一百万行的文件,每一行都是一个 json 字符串,其中包含有关一本书的一些信息(作者、内容等)。我正在使用iota加载文件,因为OutOfMemoryError如果我尝试使用slurp. 我也在使用cheshire来解析字符串。该程序只需加载一个文件并计算所有书籍中的所有单词。

我的第一次尝试包括pmap做繁重的工作,我认为这基本上会利用我所有的 cpu 内核。

虽然它似乎确实使用了所有核心,但每个核心很少使用超过 50% 的容量,我的猜测是它与 pmap 的批量大小有关,所以我偶然发现了一些相对较老的问题,其中一些评论引用了clojure.core.reducers库.

我决定使用以下方法重写函数reducers/map

但是 cpu 使用率更差,与之前的实现相比,它甚至需要更长的时间才能完成:

我究竟做错了什么?解析大文件时,mmap loading + reducers 是正确的方法吗?

编辑:是我正在使用的文件。

EDIT2:以下是使用iota/seq而不是的时间iota/vec

0 投票
1 回答
455 浏览

parallel-processing - 在 Julia 中使用 pmap 时修复参数

我已经定义了一个函数f(x, y, z)Julia我想并行计算、hold和fixedf的许多值。使用 什么是“最佳实践”方法?xyzpmap

如果它是类似的东西就好了pmap(f, x, y = 5, z = 8),这就是apply家庭如何处理 中的固定参数R,但它似乎没有那么简单。我已经设计了解决方案,但我发现它们并不优雅,并且我怀疑它们是否能很好地概括我的目的。

  • 我可以包装f一个函数gwhere g(x) = f(x, y = 5, z = 8). 然后我简单地打电话pmap(g, x)。这不像我想要的那么简约。
  • 我可以将 5 和 8 设置为定义的默认值,y然后调用. 这让我在我想修复某个变量的值的情况下感到不舒服,其中(有充分理由)在定义的时间没有定义,但会在被调用的时候定义。它有效,但它有点吓到我。zfpmap(f, x)yaaff
0 投票
1 回答
664 浏览

r - 朱莉娅 pmap 性能

我正在尝试将我的一些 R 代码移植到 Julia;基本上我在 Julia 中重写了以下 R 代码:

可以注意到,从一个核心升级到 11 个核心时,我的速度得到了显着提升。现在我正在尝试在 Julia 中做同样的事情:

正如人们注意到的那样,我没有得到任何 pmap 的加速。也许有人可以提出替代方案。

0 投票
1 回答
1945 浏览

function - Julia,多次运行函数,将结果保存在数组中

我正在 Julia 中建立一个微观模拟模型。我已经构建了我的函数结构,它对于 1 个“人”来说运行得很好。我想编写脚本通过模型运行 100000 多人并将结果保存在一个位置。

最终我想并行执行这个。

下面我包含了一个带有虚拟概率的简单工作版本的代码。

0 投票
1 回答
920 浏览

linux - alpine linux:pmap输出不显示RSS

我有一个运行 alpine linux 基本映像的 docker 容器,当我执行到 docker 容器中并运行命令时:

pmap -x [pid]

我在输出中看到的标题是:

Address Kbytes PSS Dirty Swap Mode Mapping

我实际上是在明确寻找 RSS(驻留集大小)。为什么这个标题没有出现在输出中?