如何进行 F# 测量以获得加速

2023-12-23

假设单机有8核。 在 Haskell 中,您可以使用以下命令进行编译threaded选项,然后在运行时使用+RTS -Nx指定要使用的核心数量。例如

$ myprg args // sequential run
$ myprg args +RTS -N1 // parallel run on 1..8 cores
$ myprg args +RTS -N2
$ myprg args +RTS -N4
$ myprg args +RTS -N8

由此,您可以使用越来越多的核心来获取运行时,然后可以使用它来获得加速并绘制图表。

假设我有一个并行程序,例如,您将如何在 F# 中执行此操作在代码中使用并行映射?

EDIT:我发现有并行选项 http://msdn.microsoft.com/en-us/library/system.threading.tasks.paralleloptions.maxdegreeofparallelism.aspx e.g. MaxDegreeOfParallelism which may是我需要的,但不确定它的确切行为,我必须以编程方式使用它,只要它的行为符合预期即可,即MaxDegreeOfParallelism= 程序应使用的核心数,而不是并行“任务”或线程数。

EDIT: ProcessorAffinity确实限制了要使用的核心数量,但似乎它在 Mono 中没有正确实现。我在 Windows 上检查过,它似乎可以工作。尽管使用它并不是一个好主意。运行时系统应该能够更好地决定如何管理和调度任务。还,MaxDegreeOfParallelism是关于“并行级别”,它基本上设置生成的任务数量,因此可用于改变粒度。


F# 构建本机 .NET 程序集。程序集遵循为运行时 (CLR) 指定的规则,默认情况下,该规则在所有 CPU 内核上具有关联性。您可以限制 CLRfewer通过设置核心数System.Diagnostics.Process.GetCurrentProcess().ProcessorAffinity.

对于 Mono 环境,这个答案似乎不完整。ProcessorAffinity value 是一个位掩码 http://msdn.microsoft.com/en-us/library/system.diagnostics.processthread.processoraffinity.aspx, so 0肯定是一个无效条件。我还想知道为什么 setter 没有按照 MSDN 中的描述抛出异常。

我会用schedutils检查 Mono 亲和力并检查是否MONO_NO_SMP未设置环境标志。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何进行 F# 测量以获得加速 的相关文章

  • 为什么在 CUDA 中启动 32 倍数的线程?

    我参加了 CUDA 并行编程课程 并且看到了许多 CUDA 线程配置的示例 其中通常将所需的线程数四舍五入到最接近的 32 倍数 我知道线程被分组为 warp 并且如果您启动 1000 个线程 GPU 无论如何都会将其四舍五入到 1024
  • 从“parallel”包中的非基础 R 包调用函数,而无需在函数中将它们库化

    假设我正在尝试运行以下代码 library gregmisc library parallel myfunction lt function x combinations 10 x 1 10 cl lt makeCluster getOpt
  • 如何构造 Network.HTTP.Conduit.Request 对象?

    试图构建一个Request with 网络 HTTP 管道 http hackage haskell org packages archive http conduit 1 1 0 1 doc html Network HTTP Condu
  • 如何推翻受歧视的工会

    我正在尝试对受歧视的联盟实施折叠 DU称为Expr 表示程序表达式 并且通常是递归的 我正在尝试编写一个折叠 以递归方式累积 Exprs 上的操作结果 下面是我尝试写的折叠 let rec foldProceduralExpr folder
  • haskell复制目录的方法是什么

    我发现自己用 Haskell 编写越来越多的脚本 但在某些情况下 我真的不确定如何 正确 地做到这一点 例如递归地复制目录 a la unixcp r 由于我主要使用 Linux 和 Mac OS 所以我通常会作弊 import Syste
  • `arr fst` 是如何自然变换的?

    I asked 这个问题 https stackoverflow com q 62733726 11143763不久以前 这是关于以下箭头定律 arr fst first f f arr fst Category k gt k b c gt
  • ~/.cabal/config 中的“共享”是什么意思?

    我想 共享 会让cabal install更快 对吧 共享的默认值为 False 我们应该使用 True 还是 False 来共享 thanks 这意味着 还构建动态链接 又名共享 版本的库 这些版本与cabal install cabal
  • 如何计算函数被调用的次数,FP方式

    我目前正在通过SICP http mitpress mit edu sicp 与哈斯克尔 练习 1 15 询问一个函数被调用了多少次 这个想法可能是您应该使用替换方法 但我想知道如何在代码中执行此操作 在命令式语言中 我们可以保留一个全局变
  • 链表分区函数及反转结果

    我编写了这个 F 函数来将列表分区到某个点并且不再进一步 很像之间的交叉takeWhile and partition let partitionWhile c l let rec aux accl accr match accr with
  • 将 2D 数组的分布式块发送到 MPI 中的根进程

    我有一个 2D 数组 分布在 MPI 进程网格中 本例中为 3 x 2 进程 数组的值是在数组块分配到的进程内生成的 我想在根进程中将所有这些块收集在一起以显示它们 到目前为止 我有下面的代码 这会生成一个笛卡尔通信器 找出 MPI 进程的
  • F# 可以重构为 pointfree 风格吗?

    在研究与编程相关的主题时 我遇到了一个无点 http www haskell org haskellwiki Pointfreelambdabot 中 Haskell 的重构工具 想知道 F 是否可以重构为 pointfree 风格 我并不
  • Haskell 中存在量化值的列表

    我想知道为什么这段代码不进行类型检查 LANGUAGE ScopedTypeVariables Rank2Types RankNTypes OPTIONS fglasgow exts module Main where foo forall
  • F# 中灵活类型注释的用途是什么?

    我正在学习 F 我不明白灵活类型的目的 或者更好的是 我无法理解这样写的区别 set TextOfControl c Control s c Text lt s 并写下 set TextOfControl c T when T gt Con
  • ExcelDna F# 和可选参数

    对于标量 即非类似数组 可选参数 我将使用以下模式
  • 完全限定名称、带导入声明的非限定名称解析不同

    这有效 open System let f Action fun gt Unchecked defaultof lt gt But this let f System Action fun gt Unchecked defaultof lt
  • 为什么在 haskell 中不带括号不可能进行负数相乘

    乘法5 3在 haskell gchi 中给了我一个错误 但乘以5 3 工作正常 为什么需要括号 ghci GHCi version 7 4 1 http www haskell org ghc for help Loading packa
  • F# 中的底部/未定义值?

    有一个方便的不明确的 http www haskell org haskellwiki BottomHaskell 中的值可以用作代码中尚未定义的函数 路径的存根 F 中有类似的东西吗 具体来说 您可以这样定义这样的值 let undefi
  • 自动函子实例

    给定以下代数类型 ghci gt data Foo a Foo a 然后我实例化其中之一 ghci gt let f Foo foo 最后 我想打电话给fmap将函数应用为 a gt b gt Foo a gt Foo b ghci gt
  • 如何编写将布尔值返回到一个函数的函数

    我在这里发现了一个类似的问题 它问了几乎相同的问题 但又不完全一样 我的问题是如何将 a gt Bool 类型的函数列表组合成一个也是 a gt Bool 的函数 Ex compose a gt Bool gt a gt Bool comp
  • 如何在 Haskell 中编写 MST 算法(Prim 或 Kruskal)?

    我可以用 C 或 Java 编写 Prim 和 Kruskal 算法来查找最小生成树 但我想知道如何在 Haskell 中以 O mlogm 或 O mlogn 实现它们 纯函数式程序更好 多谢 正如斯文宁森所说 优先搜索队列 http h

随机推荐

  • 两个 Azure 移动服务(.NET 后端)共享同一数据库

    我有两个共享同一个 Azure 数据库的 Azure 移动服务 NET 后端 假设服务 X 和 Y 该数据库由服务 X 首次运行时 创建 并创建了模式名称 X 的表 TA 然后我运行服务 Y 它在同一数据库中创建了相同的表 TA 和 TB
  • 如何在 iPhone sdk 中序列化一个简单的对象?

    我有一本对象字典 它们都是应该可序列化的 POCO 对象 我应该采用什么技术将它们写入磁盘 我正在寻找最简单的选项来编写一些列表来保存状态 我想我有3个选择 plist 文件 然而 这似乎仅限于仅存储预定义的对象 字符串 数字等 而不是对象
  • 在 Eclipse 中哪里可以看到项目的构建进度?

    Question 我正在使用 Eclipse for Java EE Mars 2 当我构建项目时 我在Console window 在哪里可以看到项目构建进度和错误 Window gt Show View gt Progress 为了进步
  • 通过 AJAX 请求执行操作 DNN MVC

    我的DNN MVC开发历程中还出现了另一个问题 我想知道这是否是我犯了一个错误的错误 缺失功能 下面我将尝试解释这个问题 我想要实现什么 我想通过调用 AJAX post 在控制器中执行操作 到目前为止它有效 但是 当我尝试将一些变量返回到
  • 使用 PyAV 将视频直接读入 Numpy(无迭代)

    是否可以使用 PyAV 将视频直接读入 3D Numpy 目前 我正在循环每一帧 i 0 container av open myvideo avi for frame in container decode video 0 if i 0
  • Jupyter 笔记本中的阻塞式交互式绘图

    我正在尝试从 Jupyter 笔记本中获得一个交互式的 阻塞的 matplotlib 窗口 也就是说 我希望 matplotlib 窗口出现并在笔记本中执行暂停 直到它关闭 但我的代码的各种看似合理的排列似乎不起作用 以下产生预期结果 ma
  • 在模板函数中包含不变假设

    考虑一个典型的有限差分应用 assuming T size gt 2 void process T double T0 double T const int T size bool periodic for int i 0 i lt T s
  • 词干、词形与频率的词形还原(过滤和分析)

    好的 我正在尝试添加一个word tag 但我不确定这是否是正确的方法 抱歉我是新手 from nltk corpus import wordnet as wn Count the words word count Counter word
  • HttpURLConnection 被锁定

    我有一个在 tomcat 下运行的线程 它创建一个 HttpUrlConnection 并通过 BufferedInputStream 读取它 获取某些网址的数据后 它会停止 我得到了进程的 jstack 其中显示 HttpUrlConne
  • 我们如何使用 Python seaborn relplot 在所有子图上绘制垂直线?

    用于创建绘图的 Python 代码如下 这将根据以下内容创建子图 variable s sb relplot x timestamp y value hue variable row variable kind line facet kws
  • 使用 PIL 在图片上叠加文本

    我只是想在图片上写一些文字 可能有一些简单的效果 如阴影 我怎样才能用 PIL 做到这一点 首先安装Python图像库 pip install Pillow 注意 您可能需要更改字体文件的路径font fname import numpy
  • Python 中的似然比测试

    我在 Python 2 7 中计算似然比检验时遇到问题 我有两个模型和相应的似然值 我相信比较模型 L2 是否优于模型 L1 如果模型密切相关 的规则是查看 2 log L2 L1 然后我想找到对应于 2 log L2 L1 的 p 值 并
  • 在 Internet Explorer 10 中将文本保存到本地文件中

    我需要能够将字符串保存到本地文件中 基于中的代码here http thiscouldbebetter wordpress com 2012 12 18 loading editing and saving a text file in h
  • 当我确定我的函数已定义时,为什么我会在错误控制台上看到“函数未定义”?

    我使用的代码应该根据单选按钮选择更改表单的 操作 属性 目前不起作用 我正在尝试找出原因 根据我的 Firefox 错误控制台 函数 submitForm 未定义 但我确信它已定义 有人可以帮忙吗 代码如下 头部内部 q1 指单选按钮的名称
  • PHP/MYSQLI:PHP 中 mysqli_query 失败

    首先 我是 mysql i 语言的菜鸟 只知道 PHP 的基础知识 注意 我不管理或拥有 无权访问当前托管网页的服务器 但是我可以访问 phpMyAdmin 页面 也就是说 我有一个网页 我正在上面尝试一些东西 现在我正在尝试创建一个链接到
  • 更改 ggplot2 中条带文本背景的高度无法按预期工作

    Load libraries library ggplot2 library gtable Build plot d lt ggplot mtcars aes x gear geom bar aes y gear stat identity
  • 如何在测试查找期间将 MavenProject 注入到 mojo 中?

    这是我的测试 maven plugin testing harness 3 3 0 junit 5 6 2 import java io File import org apache maven plugin testing Abstrac
  • 禁止删除 git 中的 master 分支

    我正在尝试设置一个 git hook 来禁止任何人删除master alpha and beta我们存储库的分支 有人能帮忙吗 我从来没有做过 git hook 所以我不想在没有一点帮助的情况下尝试自己开发自己的 git hook 直接用一
  • CloudFormation——可以有嵌套映射吗?

    是否可以在 CloudFormation 中嵌套映射 如下例所示 Mappings Regions us east 1 Environments dev ImageId something Subnet something qa
  • 如何进行 F# 测量以获得加速

    假设单机有8核 在 Haskell 中 您可以使用以下命令进行编译threaded选项 然后在运行时使用 RTS Nx指定要使用的核心数量 例如 myprg args sequential run myprg args RTS N1 par