相关疑难解决方法(0)

以编程方式查找计算机上的核心数

有没有办法以独立于平台的方式确定机器有多少来自C/C++的内核?如果不存在这样的事情,那么每个平台确定它(Windows/*nix/Mac)呢?

c c++

450
推荐指数
12
解决办法
19万
查看次数

明确关闭文件重要吗?

在Python中,如果您在未调用的情况下打开文件close(),或者关闭文件但未使用try- finally或" with"语句,这是一个问题吗?或者它是否足以作为编码实践依赖Python垃圾收集来关闭所有文件?例如,如果有人这样做:

for line in open("filename"):
    # ... do stuff ...
Run Code Online (Sandbox Code Playgroud)

...这是一个问题,因为文件永远不会被关闭,并且可能发生一个阻止它被关闭的异常?或者它肯定会在for声明结束时关闭,因为文件超出了范围?

python garbage-collection file

141
推荐指数
4
解决办法
6万
查看次数

docker容器使用多少个CPU?

假设我在一个生成多个进程的docker容器中运行多处理服务,docker会使用主机的所有/多个内核/ CPU还是只有一个?

docker

94
推荐指数
2
解决办法
5万
查看次数

如何控制进程运行的核心?

我可以理解如何编写一个使用多个进程或线程的程序:fork()一个新进程并使用IPC,或创建多个线程并使用这些通信机制.

我也理解上下文切换.也就是说,只有一次CPU,操作系统为每个进程安排时间(并且有大量的调度算法),从而我们实现了同时运行多个进程.

现在我们拥有多核处理器(或多处理器计算机),我们可以在两个独立的核心上同时运行两个进程.

我的问题是关于最后一个场景:内核如何控制进程运行的核心?哪些系统调用(在Linux,甚至是Windows中)在特定核心上安排进程?

我问的原因是:我正在为学校开展一个项目,我们将在那里探索最近的计算主题 - 我选择了多核架构.关于如何在这种环境中编程(如何监视死锁或竞争条件)似乎有很多材料,但在控制各个核心本身方面却没有太多.我希望能够编写一些演示程序并提供一些汇编指令或C代码,以实现"看,我在第二个内核上运行无限循环,查看该特定内核的 CPU利用率峰值" .

任何代码示例?还是教程?

编辑:为了澄清 - 很多人都说这是操作系统的目的,应该让操作系统处理这个问题.我完全同意!但那时我所要求的(或试图感受到)是操作系统实际上做的事情.不是调度算法,而是"一旦选择了核心,必须执行哪些指令才能让核心开始获取指令?"

multicore intel instruction-set system-calls

57
推荐指数
4
解决办法
5万
查看次数

如何在Linux中为C或C++中的进程设置CPU关联?

是否有一种编程方法可以为Linux操作系统在c/c ++中为进程设置CPU亲和性.

c linux smp affinity

34
推荐指数
4
解决办法
3万
查看次数

在Python中获取处理器信息

有没有办法找到处理器信息...(我需要名字)

我需要运行解释器的处理器的名称.我检查了sys模块,但它没有这样的功能.

如果需要,我也可以使用外部库.

python processor

27
推荐指数
6
解决办法
4万
查看次数

在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 可用处理器的数量(与当前使用的数量相反)?

笔记:

  1. 这个问题是不被接受的答案来回答如何找出使用python CPU的数量,因为在上方挂了一个问题,说明这个问题,打印的内容/proc/self/status显示所有4个内核为可用的程序.

  2. 在我看来,"可移植"排除了涉及解析内容的任何方法/proc/self/status,其格式可能因Linux的发行版本而异,并且在OS X上甚至不存在.(对于任何其他伪文件也是如此,同样.)

python cpu

24
推荐指数
2
解决办法
2808
查看次数

如何在C语言的Linux中使用sched_getaffinity和sched_setaffinity?

我在尝试着:

  • 使用处理器固定同时运行16个副本(每个核心2个副本)

  • 在处理器固定(每个核心2个副本)的同时运行8个副本,并在某个功能说功能1完成后将处理器核心翻转到最远的核心.

我面临的问题是如何选择最远的处理器.

有些朋友建议使用sched_getaffinity和sched_setaffinity,但我认为没有找到任何好的例子.

c linux schedule process affinity

14
推荐指数
3
解决办法
2万
查看次数

multiprocessing.cpu_count 返回错误的内核数

我尝试使用以下代码来确定笔记本电脑的核心数:

import multiprocessing
multiprocessing.cpu_count()
Run Code Online (Sandbox Code Playgroud)

结果是8,但是打开系统报告,可以看到我只有1个4核的CPU。

怎么了cpu_count()

python

6
推荐指数
1
解决办法
3851
查看次数

用于Windows的python 2.4中的cpuinfo

如何在python 2.4中获取cpuinfo.我想确定一台机器中的处理器数量.(代码应该是OS独立的).我已经为Linux编写了代码,但不知道如何使它适用于Windows.

import subprocess, re
cmd = 'cat /proc/cpuinfo |grep processor |wc'
d = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
lines = d.stdout.readlines()
lines = re.split('\s+', lines[0])
number_of_procs = int(lines[1])
Run Code Online (Sandbox Code Playgroud)

假设我没有在windows机器上安装cygwin,我只有python2.4.如果有一些可以为此目的调用的模块,或者为此功能编写代码的任何帮助,请告诉我.

谢谢,桑迪亚

python windows cpu-cores

1
推荐指数
1
解决办法
1867
查看次数