问题标签 [taskset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
108 浏览

python - 如何限制每个通过 gnu 并行启动的 python 进程使用一个 CPU?

如果我运行这个脚本

<my_bash_script.sh>然后包含在多个 cpu 而不是一个 cpu 上运行的每个 python 进程。python 函数同时使用 numpy 和 pytorch。因此,该选项taskset -c 0-4强加了 CPU 的最大数量,但它不保证每个进程将被限制为一个 CPU。

我试过了

但它没有用

我还添加到 python 脚本中

但这没有帮助

0 投票
1 回答
103 浏览

docker - 可以使用 taskset 或 systemd CPUAffinity=0 将 dockerd 和 containerd 固定到核心 0

我正在尝试查看是否可以将 dockerd 和 containerd 固定到 Linux 服务器上的核心 0,而将所有其他核心留给容器(使用 cpuset)。所以我在我的 systemd 单元上使用了这个:

我注意到子进程也被固定到核心 0(tasket 手册解释这是预期的行为):

我的问题是:

  1. 可以只固定父进程,但子进程可以使用 cpuset 在他们想要的地方运行
  2. 有没有人在做这个?我担心的是我想让一些敏感的进程不间断地工作,通过将中断和其他进程绑定到核心 0

谢谢,

0 投票
2 回答
49 浏览

awk - ksh cmd one-liner 一次 grep 多个 PID

我有一堆需要检查 CPU 亲和力的进程,所以我得到了这个:

for i in `ps -Fae | grep proc_name| awk '{print $2}'`; do taskset -acp $i;done

但我有一个问题,taskset 也显示了所有子进程的 pid,所以我得到了大量的数字以及它们的 cpu 亲和力。

我想将上面的行通过管道传输到 an 中egrep 'pid1|pid2',以便过滤掉所有子进程。

我试过这个: for i in `ps -Fae | grep proc_name| awk '{print $2}'`; do taskset -acp $i;done | xargs egrep 'ps -Fae | grep proc_name| awk '{print $2}''

但我的 ksh shell 根本不喜欢 awk 括号。

所以我有两个问题:

  1. 可以将taskset更改为仅显示父pid吗?
  2. 我如何写最后一位我只使用父 pid 的地方?
0 投票
0 回答
33 浏览

python - 对于运行代码的不同数量的 CPU,KPCA 的结果是不同的

我正在使用kernlab包的KPCA函数进行降维,我正在使用rpy2从python调用API。问题是每次在不同数量的 CPU 内核上运行我的 python 脚本时,我得到相同数据的不同输出。我正在使用 linux 命令“taskset”或“numactl”从终端运行我的脚本。例如,对于 2 次运行:

以上两次运行的输出将完全不同。虽然它们中的每一个本身都是可重现的,但就像我在第一个命令中一样使用 3 个核心运行 10 次......所有 10 次的输出将是相同的......对于具有 5 个核心的第二个命令也是如此。但是为什么它们的输出彼此不同呢?这成为一个问题,因为它影响了我的分类性能。

编辑:事实上,我在使用 scikit learn kpca 时也注意到了这种完全相同的行为。关于我缺少的 KPCA,这里有什么共同的和基本的吗?

请帮忙。

0 投票
1 回答
119 浏览

python - 将任务集分配给特定的 Python 进程(不使用 PID)

所以我有一个Python3进程需要分配给第4个CPU核心(CPU Affinity 3),目前在0-2中使用。我在启动时将 isolcpus=3 添加到 cmdline.txt 中,然后在终端中键入以下内容:

问题是,每当我关闭并启动 Python 脚本时,PID 都会发生变化,因此我必须手动找到该 Python 进程的 PID 并再次对其执行任务集。有没有更有效的方法让我使用 taskset -cp 3 命令自动启动 Python 进程?

谢谢!

0 投票
0 回答
23 浏览

multithreading - ubuntu shell:taskset - 不要等待任务

我正在使用任务集来为处理非常密集的工作指定 cpu 亲和性

我使用的命令如下所示:
sudo taskset -c 4,5,6,7,8,9,10,11 [start work command]

这适用于应该启动两个具有给定 cpu 亲和力的工作人员的服务。在 shell 脚本中,这将如下所示:

问题是start worker1 command在同一个控制台窗口中运行。这意味着start worker2 command永远不会到达和执行。

解决方法是拥有多个服务,每个服务都有一个任务集。worker如果应该启动许多实例,那么服务可能会变得一团糟。

0 投票
2 回答
198 浏览

linux - 如何将处理器分配给执行进程

我可以通过像这样运行它来为进程分配一个 cpu 核心:

在这里, ./wait 是一个可执行文件,其代码如下所示,我正在尝试将 core=21 分配给该进程。

但是当我尝试从另一个进程(使用 execl)做同样的事情时,它不起作用。例如,以下代码执行进程(未报告错误),但未完成对该进程的核心分配:

这是等待程序的代码,它只是等待用户提供一些输入,以便我有时间从另一个终端检查 cpu 状态:

所以,我的问题是:如何在运行进程时使用 execl 分配 cpu-core?(顺便说一句,如果进程已经在运行并且我有它的 pid,那么在该 pid 上执行任务集将更改该进程的核心分配。只有按照此处所示的方式完成时,它才起作用。)

0 投票
0 回答
105 浏览

linux - 如何在 isolcpus 之后重新启用 CPU 内核

我在 Jetson NX 上运行一些进程,我试图隔离 3 个内核,以便我可以使用任务集并将它们专用于我的包含多处理的 python 脚本。为此,我遵循了一些教程并将我的/boot/extlinux/extlinux.conf文件修改为:

这对我的需要很好,当我运行cat /sys/devices/system/cpu/isolated 它时输出3-5。现在我正试图带回核心 3 和 4,所以我修改了 extlinux.conf 文件说:

我重新启动了我的 Jetson。但是它仍然说核心 3-5 是隔离的。我需要采取其他步骤来重新启用这些内核吗?

0 投票
0 回答
16 浏览

linux - 使用任务集时,为什么我只能将进程绑定到系统上的某些 CPU 内核?

在我的服务器上,我有 4 个 CPU,每个有 22 个内核。所以有176个逻辑核心。

但是在使用任务集时,我只能使用前 61 个内核:

为什么?谢谢

0 投票
1 回答
34 浏览

bash - 等待使用任务集创建的流程完成

我根据linux 手册页使用任务集,以便仅在特定内核上运行处理非常密集的任务。

任务集被封装在一个循环中。每次选择一个新的目标目录并且任务正在运行时。并行运行该过程多次可能会导致致命的结果。

伪代码如下:

如果任务集实际上等待进程完成,我在文档中没有发现任何内容。
如果它不等待,我如何在启动新实例之前等待任务完成processing_intense_task