在Python中检测*可用* CPU数量的便携方式
根据这个问题和答案 - Python multiprocessing.cpu_count()在4核Nvidia Jetson TK1上返回'1' - Python multiprocessing.cpu_count()
在某些系统上的功能输出反映了主动使用的CPU数量,而不是CPU的数量实际上可以通过调用Python程序使用。
一个常见的Python习惯用法是使用return-value cpu_count()
来初始化a中的进程数Pool
。但是,在使用这种“动态CPU激活”策略的系统上,该习惯用法相当严重(至少在相对静止的系统上)。
是否有一些直接(和可移植)方式来获取Python 可用处理器的数量(与当前使用的数量相反)?
笔记:
这个问题是不被接受的答案来回答如何找出使用python CPU的数量,因为在上方挂了一个问题,说明这个问题,打印的内容
/proc/self/status
显示所有4个内核为可用的程序。在我看来,“可移植”排除了涉及解析内容的任何方法
/proc/self/status
,其格式可能因Linux的发行版本而异,并且在OS X上甚至不存在。(对于任何其他伪文件也是如此,同样。)
解决方案
我不认为你会得到任何真正便携的答案,所以我会给出一个正确的答案。
正确*为Linux的回答是len(os.sched_getaffinity(pid))
,哪里pid
可能是0
当前进程。这个函数在Python 3.3及更高版本中公开; 如果你以前需要它,你将不得不做一些奇特的cffi
编码。
编辑:您可能会尝试查看是否可以使用函数(int omp_get_num_procs();
如果存在),这是我在此问题上找到的唯一有意义的答案,但我还没有从Python中尝试过。
本文首发于Python黑洞网,博客园同步跟新
在Python中检测*可用* CPU数量的便携方式的更多相关文章
- Python中的单例模式的几种实现方式的优缺点及优化
单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. ...
- Python中的单例模式的几种实现方式的及优化
单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. ...
- Python中四种运行其他程序的方式
原文地址:http://blog.csdn.net/jerry_1126/article/details/46584179 在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在 ...
- Python黑科技 | Python中四种运行其他程序的方式
在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程,可以使用win32proc ...
- python中检测mysql的主键唯一性异常
有两种方法: 1.直接检测是什么异常(查mysql文档找出异常代码) import os import mysql_operate.mysql_connect as mysql import re d ...
- python中检测某个变量是否有定义
目录 第一种方法使用内置函数locals() 第二种方法使用内置函数dir() 第三种方法使用内置函数vars() 第一种方法使用内置函数locals() 'testvar' in locals(). ...
- Python 中 open()文件操作的方式
Python的open方法用来打开一个文件.第一个参数是文件的位置和文件名,第二个参数是读写模式: f=open('/1.txt','w') 读写模式的类型有: rU 或 Ua 以读方式打开, 同时提 ...
- Python中包(package)的调用方式
一.什么是Python Package 如何区分你看到的目录是一个Python Package包呢?其实很简单,你只要看这个名录下是否有“__init__.py”这个文件就好了,如果有那么就是Pyt ...
- python中package机制的两种实现方式
当执行import module时,解释器会根据下面的搜索路径,搜索module1.py文件. 1) 当前工作目录 2) PYTHONPATH中的目录 3) Python安装目录 (/usr/loca ...
随机推荐
- jquery 的几种写法和常见问题
为了理解页面初始化事件的编写和执行方式,特此记录下页面加载事件的语句方式: //最简单的加载事件语句 $(function(){ alert("这个提示框最先弹出")//这个用的最 ...
- mysql 性能调优 参数随写
set global innodb_buffer_pool_size = 12*1024*1024*1024;set global bulk_insert_buffer_size = 12582912 ...
- five hundred miles
- C# DataTable转json 时间格式化
1.NewTonSoft.json public static string DataTableToJson(DataTable dt) { ) { return ""; } el ...
- FTP上传下载文件(面向对象版)
# 服务端 import socketserver import os import json import hashlib import struct class MySocketServer(so ...
- OpenCV2马拉松第9圈——再谈对照度(对照度拉伸,直方图均衡化)
收入囊中 lookup table 对照度拉伸 直方图均衡化 葵花宝典 lookup table是什么东西呢? 举个样例,假设你想把图像颠倒一下,f[i] = 255-f[i],你会怎么做? for( ...
- C#设计模式:状态者模式(State Pattern)
一,什么是状态设计模式? 1,定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新. 2,当一个对象的内部状态改变时允许改变其行为,这个对象看起来像是 ...
- VUE $SET源码
- MyBatis中XML 映射配置文件的简单介绍
官网写的比较具体,可以查看以下的网站: http://www.mybatis.org/mybatis-3/zh/configuration.html 另外,实际用到标准的CRUD的操作和查询列表, & ...
- 使用python开启你的opencv之旅---图像的读入,存储
python的便捷是如此的引人着迷,而opencv给python提供的接口使我们能够使用python来快速验证我们的想法,或者与别的模块快速结合,在这个系列文章我会通过jupyter notebook ...