首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并行并行

并行并行
EN

Unix & Linux用户
提问于 2023-05-27 18:10:36
回答 1查看 47关注 0票数 1

我试图把我的头绕着平行运行,似乎我遇到了一种情况,那将是一个理想的解决方案。

我想以串联的方式运行一组作业--称为A-1,A-2,A-3等等。这些操作将与--作业1(或sem?)一起运行。

我想并行运行它们的集合--称为A,B,C,等等。这些任务将以默认的作业数(核心)运行。

“A”组作业的数量可能与“B”组的作业数不同;C或其他作业也是如此。

在视觉上,水平轴是时间,垂直是作业集:

代码语言:javascript
复制
A-1--->A-2--->A-3--->
B-1->B-2-->B-3-->B-4--->
C-1-------------C-2--->
D-1------------------>

为此,让我们假设所有作业都是睡眠$(随机%10)。

我认为作业集和作业之间必须有某种链接(ala -链接)--A有1,2和3,B有1,2,3和4,C有1和2,D只有1,使用上面的视觉。

这可能是一个更好的例子,说明我正在尝试使用@ole-tang的解决方案。

代码语言:javascript
复制
$ declare -fp apples bananas cherries dates
apples () 
{ 
    echo -n grannysmith fiji pinklady | parallel -d' ' -j1 'echo apples-{#}: {};sleep $((RANDOM % 3))'
}
declare -fx apples
bananas () 
{ 
    echo -n plantain cavadish red manzano | parallel -d' ' -j1 'echo bananas-{#}: {};sleep $((RANDOM % 3))'
}
declare -fx bananas
cherries () 
{ 
    echo -n sweet sour red yellow bing | parallel -d' ' -j1 'echo cherries-{#}: {};sleep $((RANDOM % 3))'
}
declare -fx cherries
dates () 
{ 
    echo -n medjool khola | parallel -d' ' -j1 'echo dates-{#}: {};sleep $((RANDOM % 3))'
}
declare -fx dates
$ parallel ::: apples bananas cherries dates
bananas-1: plantain
bananas-2: cavadish
bananas-3: red
bananas-4: manzano
dates-1: medjool
dates-2: khola
apples-1: grannysmith
apples-2: fiji
apples-3: pinklady
cherries-1: sweet
cherries-2: sour
cherries-3: red
cherries-4: yellow
cherries-5: bing
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2023-05-29 23:31:23

代码语言:javascript
复制
a() {
   seq 10 | parallel -j1 'echo A-{#};sleep $((RANDOM % 10))'
}
b() {
   seq 10 | parallel -j1 'echo B-{#};sleep $((RANDOM % 10))'
}
c() {
   seq 10 | parallel -j1 'echo C-{#};sleep $((RANDOM % 10))'
}
d() {
   seq 10 | parallel -j1 'echo D-{#};sleep $((RANDOM % 10))'
}
export -f a b c d

parallel ::: a b c d

如果您想看到输出:

代码语言:javascript
复制
parallel --lb ::: a b c d

也可以这样做:

代码语言:javascript
复制
doit() {
    seq 10 | parallel -j1 'echo '$1'-{};sleep $((RANDOM % 10))'
}
export -f doit
parallel --lb doit ::: A B C D
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/747281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档