Parallel processing GNU并行:如何确定作业;槽;你';重复使用?

Parallel processing GNU并行:如何确定作业;槽;你';重复使用?,parallel-processing,gnu-parallel,Parallel Processing,Gnu Parallel,我正在试图找到一种方法来确定命令当前在并行中使用的作业“插槽”或“核心”。例如,我们都看到了类似的图像,显示了parallel如何分发命令: 如果我想知道某个进程在哪个列中,我怎么知道 我的具体问题说明了:如果将-j4设置为一次只允许运行4个作业,我想动态地知道命令使用的是哪个插槽,1、2、3还是4。问题是我有一些不能并行运行的命令,但是如果我知道我运行的是哪个插槽,我就很好了 进一步的例子,假设我有这些并行化的命令: command resource1 file1.rb command re

我正在试图找到一种方法来确定命令当前在
并行中使用的作业“插槽”或“核心”。例如,我们都看到了类似的图像,显示了
parallel
如何分发命令:

如果我想知道某个进程在哪个列中,我怎么知道

我的具体问题说明了:如果将
-j4
设置为一次只允许运行4个作业,我想动态地知道命令使用的是哪个插槽,1、2、3还是4。问题是我有一些不能并行运行的命令,但是如果我知道我运行的是哪个插槽,我就很好了

进一步的例子,假设我有这些并行化的命令:

command resource1 file1.rb
command resource2 file2.rb
command resource3 file3.rb
command resource4 file4.rb
command resource1 file5.rb
command resource2 file6.rb
command resource3 file7.rb
command resource4 file8.rb
一次只能有一个命令使用每个资源。假设我像往常一样将这些命令并行执行,每次执行4个作业,作业3完成,然后进入队列中的下一个作业,现在这些命令并行运行:

command resource1 file1.rb
command resource2 file2.rb
command resource3 file3.rb
command resource1 file5.rb
注意,
resource1
被两个命令使用,不太好。我需要的是一个环境变量或一些东西来告诉下一个命令使用资源编号4,因此并行化命令如下所示:

command resource1 file1.rb
command resource2 file2.rb
command resource3 file3.rb
command resource4 file5.rb
我曾考虑过使用文件系统或其他类型的外部标志来显示哪些资源正在使用,但我认为在并行进程中,可能会出现竞争条件


我已经到处找过了,非常感谢您的帮助

我相信您正在寻找{%}:

parallel -j4 command ressource{%} file{}.rb ::: {1..8}

哇,看起来就是这样!!真不敢相信我错过了。非常感谢你!