使用超线程运行模拟使运行时间加倍

2023-12-09

我使用用 python/numpy/cython 编写的模拟。 由于我需要对许多模拟运行进行平均,因此我使用多处理模块来批量运行所有单独的模拟运行。

在办公室,我有一个带 HT 的 i7-920 工作站。我家里有一台 i5-560,没有。 我认为我可以在办公室中每批运行两倍的模拟实例,并将运行时间减少一半。令人惊讶的是,与我的家庭工作站上花费的时间相比,每个实例的运行时间增加了一倍。也就是说,在家中并行运行 3 个模拟实例大约需要 8 分钟,而在办公室运行 6 个实例大约需要 15 分钟。使用“cat /proc/cpuinfo”我验证了“siblings”= 8 和“cpu cores”= 4,因此启用了 HT。

我不知道任何“总运行时间守恒”定律(尽管从科学的角度来看它可能非常有趣:)),并且希望这里有人可能会对这个难题有所启发。


超线程可能适合某些类型的工作负载。密集的数字计算不是其中之一 - 当您想要进行一些数字运算时,您最好关闭超线程。 超线程提供的是任务之间“自由的上下文切换”,但CPU只有这么多的执行单元。

在这种情况下,它可能会让事情变得更糟,因为 O.S.无法知道哪些进程在单独的内核上运行(它们将在其中获得全部性能),以及哪些进程在同一内核上运行,只是在不同的“超线程”上。

(实际上,我敢打赌 Linux 内核可以提供一种方法来对此进行精细控制,但 Python 的多处理模块只会启动使用默认资源分配的额外进程)。

底线:如果可以的话,关闭 HT - 至少你会充分利用 4 个核心。

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

使用超线程运行模拟使运行时间加倍 的相关文章

  • 按每个元素中出现的数字对字符串列表进行排序[重复]

    这个问题在这里已经有答案了 我有一个脚本 其目的是对不断下载到服务器上的空间数据集文件进行排序和处理 我的列表目前大致如下 list file t00Z wrff02 grib2 file t00Z wrff03 grib2 file t0
  • 使用ideone时如何传入命令行参数?

    我正在使用 ideone 在线解释器 http ideone com http ideone com 来测试一些 C 和 Python 程序 如何指定命令行参数而不是使用 STDIN 输入 看起来你不能 但是快速破解应该做的伎俩 stati
  • pandas read_csv 之前预处理数据文件

    我使用 SAP 的数据输出 但它既不是 CSV 因为它不引用包含其分隔符的字符串 也不是固定宽度 因为它具有多字节字符 它是一种 固定宽度 字符 为了将其放入 pandas 我当前读取文件 获取分隔符位置 对分隔符周围的每一行进行切片 然后
  • 在 Python 中延迟转置列表

    所以 我有一个延迟生成的可迭代的三元组 我试图弄清楚如何将其转换为 3 个可迭代对象 分别由元组的第一个 第二个和第三个元素组成 然而 我希望这件事能懒惰地完成 所以 举例来说 我希望 1 2 3 4 5 6 7 8 9 将变成 1 4 7
  • 如何更改Linux服务器中的MySQL表名不区分大小写?

    我正在开发一个旧网站 该网站曾经托管在 Apple 服务器上 当它迁移到新的 Linux 服务器时 它停止工作 我很确定这是因为 php 脚本中使用的所有 MySQL 查询对于表名都有不同的大小写组合 我不知道为什么原始开发人员在创建表名或
  • 在 python 中发送标头[重复]

    这个问题在这里已经有答案了 我有以下 python 脚本 我想发送 假 标头信息 以便我的应用程序就像 Firefox 一样运行 我怎么能这么做呢 import urllib urllib2 cookielib username passw
  • 在多核上运行 python 线程

    我知道Python 2 7不允许在不同的内核上运行多个线程 你需要使用multiprocessing模块以实现某种程度的并发性 我正在看concurrent futuresPython 3 4 中的模块 是否使用ThreadPoolExec
  • 无法使用Python请求会话模块登录网站

    我刚刚开始进行网络抓取 对于我的第一个项目 我尝试使用 requests Session 登录 artofproblemsolving com 并访问另一个用户的帐户 这是我的代码 import requests LOGIN URL htt
  • 如何在Python中手动对数字列表进行排序?

    规格 Ubuntu 13 04 Python 3 3 1 背景 Python的初学者 遇到了这个 手动排序 问题 我被要求做的事情 让用户输入 3 个数值并将它们存储在 3 个不同的变量中 不使用列表或排序算法 手动将这 3 个数字从小到大
  • 右键单击 QPushButton 上的 contextMenu

    对于我的应用程序 我在 Qt Designer 中创建了一个 GUI 并将其转换为 python 2 6 代码 关于一些QPushButton 与设计器创建 我想添加右键单击上下文菜单 菜单选项取决于应用程序状态 如何实现这样的上下文菜单
  • Python FTP下载550错误

    我编写了一个 ftp 爬虫来下载特定文件 它会一直工作 直到找到要下载的特定文件 然后抛出此错误 ftplib error perm 550 该文件存在于我的下载文件夹中 但文件大小为 0 kb 我需要转换某些内容才能下载吗 我可以访问 f
  • Pandas 中每列的曲线拟合 + 外推值

    我有一个包含大约 300 列的数据集 每一列都与深度相关 Pandas DataFrame 的简化版本看起来像这样 import matplotlib pyplot as plt import numpy as np import pand
  • 使用 Python-VLC 的 PyInstaller:无属性“media_player_new”错误

    我使用 Python VLC 创建视频播放器 并使用 PyInstaller 在 Windows 10 计算机上生成可执行文件 最初 它给了我错误 Import Error Failed to load dynlib dll libvlc
  • 机器学习的周期性数据(例如度角 -> 179 与 -179 相差 2)

    我使用 Python 进行核密度估计 并使用高斯混合模型对多维数据样本的可能性进行排名 每一条数据都是一个角度 我不确定如何处理机器学习的角度数据的周期性 首先 我通过添加 360 来删除所有负角 因此所有负角都变成了正角 179 变成了
  • 使用具有可变数量索引的 numpy mggrid

    如何将 numpy mgrid 与可变数量的索引一起使用 我在 github 上找不到任何人将其与硬编码值以外的任何内容一起使用的示例 import numpy as np np mgrid 1 10 1 10 this works fin
  • Python GTK3 Treeview 向上或向下移动选择

    如何在树视图中向上或向下移动所选内容 我的想法是 我可以使用向上和向下按钮将选择向上移动一行或向下移动一行 我的 Treeview 使用 ListStore 不确定这是否重要 首先 我将使用我熟悉的 C 代码 如果您在将其翻译为 Pytho
  • 在字符串内打印单引号

    我想输出 XYZ s ABC 我在Python IDLE中尝试了以下3条语句 第一条和第二条语句输出 a before 带打印功能的第三条语句不输出 before 作为 Python 新手 我想了解为什么 之前输出 在第 1 条和第 2 条
  • 为什么我会在 Python 字符串格式中使用除 %r 之外的其他内容?

    我偶尔会使用 Python 字符串格式 这可以像这样完成 print int i Float f String s 54 34 434 some text 但是 这也可以这样做 print int r Float r String r 54
  • JSONDecodeError:额外数据:Python [重复]

    这个问题在这里已经有答案了 我使用以下代码从文件加载 json file file name obj list with open file as f for json obj in f obj list append loads json
  • 如何仅读取 CSV 文件每行的第一列 [重复]

    这个问题在这里已经有答案了 如何在Python中读取CSV文件每行的第一列 我的数据是这样的 1 abc 2 bcd 3 cde 我只需要循环第一列的值 另外 当我在 calc 中打开 csv 文件时 每行中的数据都在同一个单元格中 这正常

随机推荐

  • ImportError:谷歌应用引擎上没有名为flask的模块

    我正在关注这个tutorial我正在尝试开发一个基本的 Flask 应用程序以在 Google App Engine 上运行 我使用的是 Windows 并且每一步都严格遵循指南 我已经设置了虚拟环境并使用以下命令测试了烧瓶是否在其中imp
  • 字体大小 vs 行高 vs 实际高度

    This问题的答案说font size定义框的高度 以便所有字母 包括上升部分和下降部分 都可以容纳 但为什么有一个span40 像素font size and line height实际大小为 45px 如果我正确理解链接的问题 那么 X
  • XCode:当用户单击 UITextbox 时显示 UIDatePicker

    我已经对这个话题进行了彻底的研究 发现人们在许多网站上发布了完全相同的问题 包括 righthere在堆栈溢出中 我已尝试了所有建议 但无法让 UIDatePicker 实际显示 我采取什么方法似乎并不重要 我尝试使用继承模型 在该模型中
  • 是否可以在不停止 iPod 音乐的情况下播放声音?

    是否可以在不停止 iPod 音乐的情况下在应用程序中播放声音 现在我正在使用以下命令 但它会停止 iPod 音乐 soundPath NSBundle mainBundle pathForResource mySound ofType mp
  • Google 地图显示来自 json 的路线

    我遇到的下一个问题是显示基本 JSON 的路线 我在后端进行此调用 curl to https maps googleapis com maps api directions json 我将响应 json 发送回前端 在前端 我尝试渲染路线
  • Ansible 循环 JSON 数组包含对象并替换文件中 JSON 中找到的每个元素

    我有这个 JSON foo1 somevalue1 foo2 somevalue2 zoo1 somevalue111 zoo2 somevalue222 其中我需要在 ansible 和 JSON 数组中的每个对象中循环每个键 对值 我喜
  • Java中的正则表达式匹配器\G(上一场比赛的结束)的例子会很好[重复]

    这个问题在这里已经有答案了 你有边界匹配器 G 的任何有用的例子吗 请给我一些现实世界的例子 Java 源代码值得赞赏 从 掌握正则表达式 Jeffrey E F Friedl 中 我得到了一个解析 HTML 的有用示例 但我不确定如何翻译
  • iOS 8 旋转方法弃用 - 向后兼容性

    在iOS 8中 界面旋转的方法有已弃用 这包括 willRotateToInterfaceOrientation duration didRotateFromInterfaceOrientation willAnimateRotationT
  • 使用 LINQ 从 XML 文件中选择元素

    我有这样的 XML 结构
  • Python:存储大数据结构

    我目前正在用 python 做一个项目 该项目使用相对较大的字典 大约 800 MB 我尝试使用 pickle 来存储其中一本字典 但出现了 MemoryError 在 python 中保存此类文件的正确方法是什么 我应该使用数据库吗 Py
  • 如何从 Bash 中的字符串中删除最后 n 个字符?

    我有一个变量var在包含字符串的 Bash 脚本中 echo var some string rtf 我想删除该字符串的最后四个字符并将结果分配给一个新变量var2 以便 echo var2 some string 我怎样才能做到这一点 你
  • IBM DataPower 3.7.1.x 与 WCF 客户端相关的问题

    我尝试在 WCF 中使用 IBM DataPower 3 7 1 x Web 服务 但收到以下错误消息 找不到 System IdentityModel Tokens X509SecurityToken 令牌类型的令牌身份验证器 根据当前的
  • Nodejs 中的 setInterval 奇怪行为

    我想每秒运行一次函数 而函数本身需要 3 秒来执行 结果是每个间隔的执行时间相差
  • 同一 3D 轴中的多条独立线

    I would like to draw multiple independent lines in a 3D plot in Python It looks like 我是 Python 新手 你能帮我吗 您必须使用 matplotlib
  • PHP计算数组元素[重复]

    这个问题在这里已经有答案了 你好 有人可以解释一下为什么这会返回 一个数组由 0 个元素组成 arr array 1 3 5 count count arr if count 0 echo An array is empty else ec
  • 使 glReadPixel() 运行得更快

    我想要一种非常快速的方法来为我的应用程序捕获 openGL 帧缓冲区的内容 一般来说 glReadPixels 用于将framebuffer的内容读取到缓冲区中 但这很慢 我试图通过创建 4 个线程使用 glReadPixels 从 4 个
  • 为什么我的 ListView 和 CheckBox id 变得混乱?

    我正在女巫单元中实现带有复选框的 ListView 但问题是 当我签入一个单元格并向下滚动列表时 它会变得混乱 其他单元格也会被检查 我需要在 getView 方法中做其他事情吗 这是我的 CustonAdapter public clas
  • 选择矩阵中一行的一些值

    在带有矩阵的 R 中 m lt matrix 1 20 ncol 4 colnames m lt letters 1 4 如果我只想选择一个值 它就可以了 像这样 subset m m 4 17 但如果我想要 3 个值 就会出现错误 看这个
  • JSTL c:out 不显示变量的值

    我正在关注教程关于春天我应该在控制器中设置一个变量 以便在呈现请求的 jsp 中打印 代码如下 Controller public class HelloController RequestMapping value hello htm p
  • 使用超线程运行模拟使运行时间加倍

    我使用用 python numpy cython 编写的模拟 由于我需要对许多模拟运行进行平均 因此我使用多处理模块来批量运行所有单独的模拟运行 在办公室 我有一个带 HT 的 i7 920 工作站 我家里有一台 i5 560 没有 我认为