Python 程序如何确定它正在哪个内核上运行?

2023-12-12

我需要调试一个使用以下命令的 Python 3 程序multiprocessing module.

我想跟踪(多核机器的)哪些核心正在使用以及如何使用。

Q:我正在寻找一种方法让 Python 代码确定哪个核心正在运行它。


我发现的最接近的是使用以下内容:

multiprocessing.current_process()._identity[0] - 1

Putting aside the fact that such code appears to be "going behind the API,"1 as far as I can tell, the code that initializes the _identity attribute makes no reference to the underlying hardware2, which I think is unsatisfactory.


1 For one thing, I can find no official documentation for the _identity attribute, as one would expect from the leading underscore in the name.
2 More specifically, this code evaluates something like next(_process_counter), where _process_counter is initially set to the value itertools.count(1), and uses the the result as the basis for the _identity attribute's value.


这绝对是操作系统特定的问题,但以下是在 Windows 中执行此操作的方法(source)。正如评论中提到的,处理器编号可能会一直在变化,除非您专门将任务固定到给定的核心(超出了本答案的范围)。

from ctypes import *
from ctypes import wintypes

class PROCESSOR_NUMBER(Structure):
    _fields_ = [("Group", wintypes.WORD),
                ("Number", wintypes.BYTE),
                ("Reserved", wintypes.BYTE)]

pn = PROCESSOR_NUMBER()

windll.kernel32.GetCurrentProcessorNumberEx(byref(pn))

print(pn.Number)

Edit:适用于 Ubuntu 20.04.5 (WSL)

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

Python 程序如何确定它正在哪个内核上运行? 的相关文章

  • 具有多处理功能的 Python 代码无法在 Windows 上运行

    以下简单的绝对初学者代码在 Ubuntu 14 04 Python 2 7 6 和 Cygwin Python 2 7 8 上运行 100 但在 Windows 64 位 Python 2 7 8 上挂起 我使用另一个片段观察到了同样的情况
  • Python:记录垃圾收集器

    我有一个 python 应用程序 有一些性能问题 我想将垃圾收集器的事件 特别是何时调用 添加到我的日志中 是否可以 thanks http docs python org library gc html gc set debug http
  • Python sqlite3游标没有属性commit

    当我运行这段代码时 path Scripts wallpapers single png conn sqlite3 connect Users Heaven Library Application Support Dock desktopp
  • conda 无法从 yml 创建环境

    我尝试运行下面的代码来从 YAML 文件创建虚拟 Python 环境 我在 Ubuntu 服务器上的命令行中运行代码 虚拟环境名为 py36 当我运行下面的代码时 我收到下面的消息 环境也没有被创建 这个问题是因为我有几个必须使用 pip
  • 如何在 ReportLab 段落中插入回车符?

    有没有办法在 ReportLab 的段落中插入回车符 我试图将 n 连接到我的段落字符串 但这不起作用 Title Paragraph Title n Page myStyle 我想要这样做 因为我将名称放入单元格中 并且想要控制单元格中的
  • 字典中的列表,Python 中的循环

    我有以下代码 TYPES hotmail type hotmail lookup mixed dkim no signatures S Return Path email protected cdn cgi l email protecti
  • Django 的 URL 覆盖率测试为 0%,为什么?

    使用姜戈鼻子 我对 URL 进行了测试 但 URL 覆盖率仍然为 0 为什么 python manage py 测试配置文件 这是我的报道 Name Stmts Miss Cover Missing profiles 0 0 100 pro
  • str.translate 给出 TypeError - Translate 采用一个参数(给定 2 个参数),在 Python 2 中工作

    我有以下代码 import nltk os json csv string cPickle from scipy stats import scoreatpercentile lmtzr nltk stem wordnet WordNetL
  • Django - 电子邮件发送两次

    每当我使用如下所示的电子邮件设置从views py调用下面的方法时 电子邮件的两份副本都会发送给收件人 并且我收到如下所示的错误 def sendEmailBasic request msg EmailMessage Request Cal
  • 在 matplotlib 中使用 yscale('log') 时缺少误差线

    在某些情况下 当使用对数刻度时 matplotlib 会错误地显示带有误差条的图 假设这些数据 例如在 pylab 内 s 19 0 20 0 21 0 22 0 24 0 v 36 5 66 814250000000001 130 177
  • Python 视频框架

    我正在寻找一个 Python 框架 它将使我能够播放视频并在该视频上绘图 用于标记目的 我尝试过 Pyglet 但这似乎效果不是特别好 在现有视频上绘图时 会出现闪烁 即使使用双缓冲和所有这些好东西 而且似乎没有办法在每帧回调期间获取视频中
  • Python正则表达式从字符串中获取浮点数

    我正在使用正则表达式来解析字符串中的浮点数 re findall a zA Z d d t 是我使用的代码 这段代码有问题 如果数字和任何字符之间没有空格 则不会解析该数字 例如 0 1 2 3 4 5 6 7 8 9 的预期输出为 0 1
  • 一起使用 Flask 和 Tornado?

    我是以下的忠实粉丝Flask 部分是因为它很简单 部分是因为它有很多扩展 http flask pocoo org extensions 然而 Flask 是为了在 WSGI 环境中使用而设计的 而 WSGI 不是非阻塞的 所以 我相信 它
  • 为什么“return self”返回 None ? [复制]

    这个问题在这里已经有答案了 我正在尝试获取链的顶部节点getTopParent 当我打印出来时self name 它确实打印出了父实例的名称 然而 当我回来时self 它返回 None 为什么是这样 class A def init sel
  • Spark中的count和collect函数抛出IllegalArgumentException

    当我使用时抛出此异常时 我尝试在本地 Spark 上加载一个小数据集count 在 PySpark 中 take 似乎有效 我试图搜索这个问题 但没有找到原因 看来RDD的分区有问题 有任何想法吗 先感谢您 sc stop sc Spark
  • 如何在C++中列出Python模块的所有函数名称?

    我有一个 C 程序 我想导入一个 Python 模块并列出该模块中的所有函数名称 我该怎么做 我使用以下代码从模块中获取字典 PyDictObject pDict PyDictObject PyModule GetDict pModule
  • 最小硬币找零问题——回溯

    我正在尝试用最少数量的硬币解决硬币找零问题 采用回溯法 我实际上已经完成了它 但我想添加一些选项 按其单位打印硬币数量 而不仅仅是总数 这是我下面的Python代码 def minimum coins coin list change mi
  • 如何使用Featuretools按列值从单个数据框中的多个列创建特征?

    我正在尝试根据之前的结果来预测足球比赛的结果 我在 Windows 上运行 Python 3 6 并使用 Featuretools 0 4 1 假设我有以下代表结果历史记录的数据框 原始数据框 https i stack imgur com
  • 在Python 3.2中,我可以使用http.client打开并读取HTTPS网页,但urllib.request无法打开同一页面

    我想打开并阅读https yande re https yande re with urllib request 但我收到 SSL 错误 我可以使用以下方式打开并阅读页面http client用这个代码 import http client
  • 从 pandas 数据框中绘制堆积条形图

    我有数据框 payout df head 10 复制以下 Excel 绘图的最简单 最智能和最快的方法是什么 我尝试过不同的方法 但无法让一切都到位 Thanks 如果您只想要一个堆积条形图 那么一种方法是使用循环来绘制数据框中的每一列 并

随机推荐

  • 将列表转换为矩阵

    我整个下午都在做一件简单的事情 但由于某种原因似乎无法正确完成 如何将列表转换为给定宽度的矩阵 例子 我得到了一个清单 例如 1 3 5 7 6 8 9 0 并想要创建一个矩阵 例如 1 3 5 7 6 8 9 0 通过谓词 list2ma
  • 如何将 Room TypeConverter 应用于实体的单个字段?

    我一直在尝试不同的解决方案来应用TypeConverter到房间数据库实体的单个字段 但我收到错误 Cannot figure out how to save this field into database You can conside
  • 从 C++ 拦截 Fortran STOP

    我准备了一个与旧版 Fortran 库的 C 接口 遗留库中的一些子例程遵循丑陋但可用的状态代码约定来报告错误 并且我使用此类状态代码从我的 C 代码中抛出可读的异常 它工作得很好 另一方面 有时遗留库会调用STOP 终止程序 即使病情可以
  • Flutter 导航栏 - 从另一个页面更改选项卡

    我希望能够以编程方式更改导航栏选项卡 我在 Page1 中有一个导航到 Page2 的按钮 当我执行此操作时 导航栏消失 因为我没有使用导航栏选择 page2 我有 4 个 dart 文件 分别是 navigationbar dart pa
  • 背景尺寸覆盖IE11未覆盖整个区域

    我要发疯了 IE11 拒绝用背景图像填充 DIV 的整个区域 即使我已将背景大小属性设置为 cover 考虑以下示例 CSS bg width 100 min height 220px background url bg jpg cente
  • WAMPServer phpMyadmin 超出最大执行时间 360 秒

    我刚刚安装了WampServer 当我访问我的项目页面时它有效 但是当我尝试导航 phpMyAdmin 时 我收到此错误 超过最大执行时间 360 秒 问题是什么 这里更好的解决方案是更改控制 phpMyAdmin 的配置 而不是更改php
  • 为按钮提供相等宽度约束时,自动布局未正确设置

    我看到很多解决方案并应用了自动布局约束 但我仍然没有得到所需的解决方案 当前结果 给予所有按钮的约束 查看层次结构 假设您想要的是让 3 个按钮彼此相等并使用 Interface Builder 填充屏幕宽度 没有代码 即 不以编程方式 这
  • 允许基于范围的 For 与枚举类吗?

    我有一个经常出现的代码块 我在其中循环了一个的所有成员enum class The for与新的相比 我目前使用的循环看起来非常笨重range based for 有没有办法利用新的 C 11 功能来减少我当前的冗长内容for loop 我
  • p:media 包含 PDF 文件会导致“文件不以 '%PDF-' 开头。” IE7 出现错误

    我在用着
  • 返回 true 或 false 或抛出异常 [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 java version 1 7 0 75 Hello 只是想知道比较以下两个函数的首选最佳实践是什么 第一个抛出 NullPointerException 应在调用函数中捕获该异常 如果
  • 如何在 Android 中的视图上收听双击? [复制]

    这个问题在这里已经有答案了 我想检测一个doubletap在视图上 例如button 然后知道它是哪个视图 我见过这个类似的问题但他们说这是重复的问题似乎并没有回答我的问题 我所能做的一切find是添加一个GestureDetector到活
  • onActivityResult 的intent.getPath() 没有给我正确的文件名

    我正在尝试以这种方式获取文件 final Intent chooseFileIntent new Intent Intent ACTION GET CONTENT String mimetypes application pdf choos
  • 模拟单元测试引发“停止调用未启动的修补程序”错误

    当运行下面的测试时 我得到了stop called on unstarted patcher def test get subvention internal no triggered admission self billing clus
  • 从 SQLite 获取 int 值

    我听说使用sqlite3 prepare v2代替sqlite exec从数据库获取整数 但我找不到任何示例 This页面也没有帮助 现在我从数据库获取字符串 所以我需要用atoi这似乎是缓慢且无效的 SO 上有很多类似的问题 但它们都是关
  • 在java中查找字符串中第n次出现的子字符串?

    我有一个字符串 它是 html 页面的完整内容 我试图找到第二次出现的索引 有人对如何实现这一目标有任何建议吗 这是一个有趣的镜头 public static int findNthIndexOf String str String nee
  • OpenGL ES 2.0 推荐的练习环境?

    我决定学习一些 OpenGL ES 2 0 并尝试为其选择一个练习平台 可能的目标平台可能是 Android iPhone 或 WebGL 但我不想花费太多时间和精力来正确设置环境 您会推荐 WebGL 来快速开始 OpenGL ES 2
  • iOS 7 XCode 5 Storyboard 将方向设置为横向

    我已将项目设置中允许的方向设置为仅横向 现在我想在故事板上进行设计 但故事板是纵向的 我只支持横向 所以我尝试使故事板面向横向 我转到模拟指标 但我没有看到任何说 方向 的东西 只是ViewController 的东西 如布局 扩展边缘 过
  • Numpy 的 FFT 与 Intel MKL

    Running numpy fft fft np eye 9 norm ortho 导致TypeError fft got an unexpected keyword argument norm 我正在使用 Intel MKL 运行 Num
  • 如何按日期对数组中的项目进行分组?

    给定以下对象数组 notes Game was played time 2017 10 04T20 24 30 00 00 sport hockey owner steve players 10 game id 1 notes Game w
  • Python 程序如何确定它正在哪个内核上运行?

    我需要调试一个使用以下命令的 Python 3 程序multiprocessing module 我想跟踪 多核机器的 哪些核心正在使用以及如何使用 Q 我正在寻找一种方法让 Python 代码确定哪个核心正在运行它 我发现的最接近的是使用