首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不带并行的Repa

不带并行的Repa
EN

Stack Overflow用户
提问于 2011-12-28 13:53:44
回答 1查看 448关注 0票数 7

我真的很喜欢Repa的接口,即使不考虑它的并发能力,而且我实际上需要repa的数组是顺序的,因为我的数组相对较小,在它们上并行化是无用的,甚至是有害的。

但是,我在使用parallel-io的程序中使用了并行化,因此我将其编译为-threaded并使用+RTS -Nx运行。这就实现了repa的并行化。有没有办法关闭repa的并发特性?

嗯,在写这篇文章的时候,我知道我不太可能需要除了DIM1之外的任何东西,所以也许我应该切换到Vector。但尽管如此,这个问题的答案将是有用的。

我在并行运行时收到的警告消息是

代码语言:javascript
复制
Data.Array.Repa: Performing nested parallel computation sequentially.
  You've probably called the 'force' function while another instance was
  already running. This can happen if the second version was suspended due
  to lazy evaluation. Use 'deepSeqArray' to ensure that each array is fully
  evaluated before you 'force' the next one.

实际上,我的代码中没有force

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-06 17:00:38

使用http://code.ouroborus.net/repa/repa-head的REPA3开发版本。它有一个版本的"force“(如何称为computeS),它将按顺序计算数组。

Repa不会自动对小阵列上的操作进行序列化。使用(map F xs),运行时与'xs‘的大小一样取决于'f’在做什么。Repa不会尝试计算出'f‘在做什么(那会很难),所以它不知道计算会有多昂贵。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8652363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档