gnu并行单个作业拆分为多线程
gnu parallel single job splitted in multi-threads
我想启动一个作业,它接收两个输入参数,并使用 GNUparallel 在 CPU 的 128 个线程之间拆分执行。我解释一下我做了什么以及我是怎么做到的,并寻求帮助。
我有一个 bash 脚本“job.sh”,我在其中定义了两个变量并启动了一个作业
#!/bin/bash
first=70
second=10
./executable $((first-1)) $second
echo "$first $second"
现在我想使用 GNU 并行将这项繁重的工作拆分为我正在使用的服务器 CPU 的 128 个线程。
阅读文档后,我尝试将 ./executable $((first-1)) $second
行替换为 parallel -j+128 ./executable $((first-1)) $second
,我尝试 运行 如下:
user@server$ nohup bash job.sh&
作业失败。任何人都知道如何 运行 与 GNU 并行的可执行文件?
I want to launch a single job, that takes in input two parameters, and split its execution between 128 thread of the CPU with GNUparallel.
这是不可能的。 GNU Parallel 启动作业。它不会神奇地将您的单线程作业变成多线程作业。
一般来说,如果您可以将您的工作表达为:
,那么 GNU Parallel 很有用:
./executable A B
./executable C D
./executable E F
./executable G H
./executable I J
:
./executable Y Z
因此,如果您能解释一种以这种方式表达您的工作的方式,GNU Parallel 可以帮助您运行并行处理这些工作。
可能是这样的:
seq 128 | parallel --dry-run ./executable {} '{= $_++ =}'
(删除 --dry-run
实际上 运行 它)。
我认为您对 GNU Parallel 的功能有错误的印象。考虑花 20 分钟阅读第 1+2 章:https://doi.org/10.5281/zenodo.1146014
我想启动一个作业,它接收两个输入参数,并使用 GNUparallel 在 CPU 的 128 个线程之间拆分执行。我解释一下我做了什么以及我是怎么做到的,并寻求帮助。
我有一个 bash 脚本“job.sh”,我在其中定义了两个变量并启动了一个作业
#!/bin/bash
first=70
second=10
./executable $((first-1)) $second
echo "$first $second"
现在我想使用 GNU 并行将这项繁重的工作拆分为我正在使用的服务器 CPU 的 128 个线程。
阅读文档后,我尝试将 ./executable $((first-1)) $second
行替换为 parallel -j+128 ./executable $((first-1)) $second
,我尝试 运行 如下:
user@server$ nohup bash job.sh&
作业失败。任何人都知道如何 运行 与 GNU 并行的可执行文件?
I want to launch a single job, that takes in input two parameters, and split its execution between 128 thread of the CPU with GNUparallel.
这是不可能的。 GNU Parallel 启动作业。它不会神奇地将您的单线程作业变成多线程作业。
一般来说,如果您可以将您的工作表达为:
,那么 GNU Parallel 很有用:./executable A B
./executable C D
./executable E F
./executable G H
./executable I J
:
./executable Y Z
因此,如果您能解释一种以这种方式表达您的工作的方式,GNU Parallel 可以帮助您运行并行处理这些工作。
可能是这样的:
seq 128 | parallel --dry-run ./executable {} '{= $_++ =}'
(删除 --dry-run
实际上 运行 它)。
我认为您对 GNU Parallel 的功能有错误的印象。考虑花 20 分钟阅读第 1+2 章:https://doi.org/10.5281/zenodo.1146014