首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >访问附加到训练类的数据时的多cpu使用率

访问附加到训练类的数据时的多cpu使用率
EN

Stack Overflow用户
提问于 2013-06-07 19:32:41
回答 1查看 114关注 0票数 1

我有一个应用程序,它使用许多继承自HasTraits的类。其中一些类管理对数据的访问,另一些类提供分析数据的函数。这对于gui来说非常有效--我可以检查数据和分析代码是否做了它应该做的事情。但是,我注意到,当我使用这些类进行gui较少的计算时,系统上的所有cpus最终都会被使用。

下面是一个显示cpu使用率的小示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from traits.api import HasTraits, List, Int, Enum, Instance
import numpy as np
import psutil
from itertools import combinations

"""
Small example of high CPU usage by traited classes
"""

class DataStorage(HasTraits):
    nsamples = Int(2000)
    samples  = List

    def _samples_default(self):
        return np.random.randn(self.nsamples,2000).tolist()

    def sample_samples(self,indices):
        """ return a 2D array of data at indices """
        return np.array(
                [self.samples[i] for i in indices])

class DataAccessor(HasTraits):
    """ Class that grabs data and computes something """
    measure = Enum("correlation","covariance")
    data_source = Instance(DataStorage,())

    def compute_measure(self,indices):
        """ example of some computation """
        samples = self.data_source.sample_samples(indices)
        percentage = psutil.cpu_percent(interval=0, percpu=True)
        if self.measure == "correlation":
            result = np.corrcoef(samples)
        elif self.measure == "covariance":
            result = np.cov(samples)
        return percentage

# Run a simulation to see cpu usage
analyzer = DataAccessor()
usage = []
n_iterations = 0
max_iterations = 500
for combo in combinations(np.arange(2000),500):
    # evaluate the measurement on a subset of the data
    usage.append(analyzer.compute_measure(combo))
    n_iterations += 1
    if n_iterations > max_iterations:
        break
    print n_iterations

use_percents = np.array(usage).T

当我在一台运行CentOS的8-cpu机器上运行它时,top报告python进程大约为600%。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> use_percents.mean(1)

显示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
array([ 67.05548902,  67.06906188,  66.89041916,  67.28942116,
        66.69421158,  67.61437126,  99.8007984 ,  67.31996008])

问题:

我的计算是令人尴尬的并行,所以有其他cpus可用来划分工作将是很棒的。有人知道这里发生了什么吗?一个简单的python版本在单个cpu上使用100%。

有没有一种方法可以在不重写所有没有特征的类的情况下,将所有的东西都保存在单个cpu上?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-07 21:20:59

特征不会导致CPU使用率。在没有特征的情况下重写这段代码很容易,您将看到您得到了相同的CPU使用模式(至少,我是这样做的)。

相反,您可能看到的是您的numpy构建所链接的BLAS库的CPU使用率。numpy.corrcoeff()调用numpy.cov()numpy.cov()的大部分计算由numpy.dot()调用完成,该调用使用BLAS进行矩阵-矩阵乘法。如果它是一个优化的BLAS库,那么它通常会在内部使用非Python线程来在CPU之间拆分这些计算。您必须参考优化的BLAS库的文档,以了解如何更改这一点。

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

https://stackoverflow.com/questions/16991658

复制
相关文章
python计算windows的cpu使用率
import os def get_cpu_load(): """ Returns a list CPU Loads""" result = [] cmd = "WMIC CPU GET LoadPercentage " response = os.popen(cmd + ' 2>&1','r').read().strip().split("\r\n") for load in response[1:]: result.append(int(load))
用户7718188
2021/11/02
1.7K0
CPU使用率--负载
而 CPU 使用率,是单位时间内 CPU 繁忙情况的统计,跟平均负载并不一定完全对应。比如:
陈不成i
2021/05/24
2.8K0
python计算windows的cpu使用率
import os def get_cpu_load(): """ Returns a list CPU Loads""" result = [] cmd = "WMIC CPU GET LoadPercentage " response = os.popen(cmd + ' 2>&1','r').read().strip().split("\r\n") for load in response[1:]: result.append(int(load))
用户7365393
2021/11/02
1K0
python计算windows的cpu使用率
import os def get_cpu_load(): """ Returns a list CPU Loads""" result = [] cmd = "WMIC CPU GET LoadPercentage " response = os.popen(cmd + ' 2>&1','r').read().strip().split("\r\n") for load in response[1:]: result.append(int(load))
用户7705674
2021/11/01
7190
聊聊 top 命令中的 CPU 使用率
平常我们使用 top 命令来查看系统的性能情况,在 top 命令中可以看到很多不同类型的 CPU 使用率,如下图红框中标出部分:
用户7686797
2021/06/15
4.8K0
聊聊 top 命令中的 CPU 使用率
LINUX下查看CPU使用率的命令
今天就来好好学习下Linux下如何查看CUP的使用率: 监控CPU的性能一般包括以下3点:运行队列、CPU使用率和上下文切换。 对于每一个CPU来说运行队列最好不要超过3,例如,如果是双核CPU就不要超过6。如果队列长期保持在3以上,说明任何一个进程运行时都不能马上得到cpu的响应,这时可能需要考虑升级cpu。另外满负荷运行cpu的使用率最好是user空间保持在65%~70%,system空间保持在30%,空闲保持在0%~5% 。
软测小生
2019/07/05
50.1K0
LINUX下查看CPU使用率的命令
Elasticsearch集群CPU使用率过高的问题
本文描述问题及解决方法同样适用于 腾讯云 Elasticsearch Service(ES)。
岳涛
2021/03/22
13.7K1
Elasticsearch集群CPU使用率过高的问题
[694]linux查看CPU使用率
参考:https://blog.csdn.net/Alicia_N/article/details/87604709 https://blog.csdn.net/qq_32670879/article/details/85259916
周小董
2020/01/13
4.6K0
[694]linux查看CPU使用率
Linux监测进程cpu使用率、内存使用率的工具 - WGCLOUD
WGCLOUD是一款优秀的开源运维监控平台,安装部署方便,轻量实用,分布式,自动化,高性能,对主流平台兼容性好
那年十八
2022/09/17
10.2K0
Linux监测进程cpu使用率、内存使用率的工具 - WGCLOUD
CPU负载与CPU使用率之区别
1、简介 存储、内存和 CPU(中央处理器)等系统资源不足会极大地影响应用程序的性能。因此,监控这些组件至关重要。
名字是乱打的
2022/07/17
1.9K0
linux 查看 CPU 使用率
以上转自:https://blog.csdn.net/Alicia_N/article/details/87604709 ---------------------------------------------------------------------------------
微风-- 轻许--
2019/08/01
31.2K0
CPU使用率--进程排查
1.总使用率高,但进程使用率很低,6个进程,但nginx和php-fpm均是sleep,stress才是运行的进程。
陈不成i
2021/05/24
2.2K0
linux 监控 cpu使用率
示例:点击 -> 性能监控 [root@wangzi go]# cat /proc/stat cpu 25187586 4339 20108620 1703341684 3875717 0 58452 0 0 0 pytho代码: #!/usr/bin/env python # coding=utf-8 # author: brownwang # mail: 277215243@qq.com # datetime:2019/3/31 1:03 PM # web: https://www.bthlt.com
葫芦
2019/04/17
3.6K0
调试 .NET Core 中的高 CPU 使用率
本教程将介绍如何调试 CPU 使用率过高的情况。 使用提供的示例 ASP.NET Core Web 应用 源代码存储库,可以故意造成死锁。 终结点将停止响应并遇到线程累积问题。 你将了解如何使用各种工具,通过几条关键的诊断数据诊断此情况。
呆呆
2022/01/09
1.3K0
Android 8.0以后CPU使用率的方案研究
由于Android 8.0以后Google的权限限制,SDK再也拿不到进程CPU的实时占用率,只能拿到自己本身进程的Jiffies,而由于拿不到系统整体Jiffies的情况下,就没办法衡量CPU当前的消耗状况了,也没办法根据当前CPU状态实时做一些策略调整。因此进行深入研究以后,给出Android 8.0以后判断CPU状态的几个参考方案(非标准答案)。 方案1 - 通过单位时间汇编指令数获取CPU频率 (1)基础概念: 1)Jiffies 全局变量jiffies用来记录自系统启动以来产生的节拍的总数。启动
腾讯移动品质中心TMQ
2019/05/16
14.5K3
Android 8.0以后CPU使用率的方案研究
App性能测试—CPU使用率
CPU使用率是性能测试是一项重要指标,CPU占用过高会使得设备运行程序出现卡顿与发热,甚至出现应用程序Crash,影响用户体验。在排除硬件环境的限制下,应用程序应该尽可能少的占用CPU。
清风穆云
2021/08/09
5.4K0
Linux下CPU使用率过高的排查方法
查看CPU使用 在 Linux 系统下,使用 top 命令查看 CPU 使用情况。
用户8989785
2021/09/13
8.4K0
查看CPU和内存使用率前十的PID
linux 下 取进程占用内存(MEM)最高的前10个进程 linux 下 取进程占用 cpu 最高的前10个进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux 下 取进程占用内存(MEM)最高的前10个进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
98k
2019/04/18
4.5K0
c# 检测cpu使用率[测试通过]
创建一个控制台应用程序,代码如下 using System; using System.Collections.Generic; using System.Linq; using System.Text; //引用2命名空间 using System.Diagnostics; using System.Threading; namespace ConsoleApplication1 { class Program { static void Main(string[] a
磊哥
2018/04/26
1.8K0
点击加载更多

相似问题

在Python中使用多播时的高CPU使用率

10

使用单标签训练数据的多类多标签分类

11

如何查找java类的cpu使用率(%)

11

libsvm .多类分类的训练数据格式

11

CPU使用率和CPU使用率之间的差异?

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文