Articles of 并行处理

如何通过Shell脚本使用并行节点?

我正在尝试使用并行节点来运行数值模拟。 我有节点#0到12,我希望分别利用它们来运行模拟的一个单独的部分。 本质上,我需要评估一个节点上的x = 1到4,然后f(x)在下一个节点上x = 5到9,然后f(x)为x = 10到14一个下一个,然后从那里继续。 最初,我尝试使用如下循环: n=0 while [ $n -le 12 ] do ssh compute-0-$n #evaluate the f(x) for the x values that I want exit n=$(($n+1)) done 但是这不起作用,因为每当我使用ssh compute-0- $ n命令跳转到一个节点时,与原始shell脚本的连接似乎停止,当我退出节点时,shell脚本似乎继续沿着它的快乐方式…我想有一个更好的办法来完成这个,但我相对较新的这个,任何人都可以帮助吗?

无法避免subprocessinheritance父进程的cpu关联

我想将父进程关联到一个特定的核心。 在下面的代码中,variablescore是用户提供的参数。 接下来,我想创buildNUM_CHILDREN进程,并且每个进程都以循环方式关联到其中一个内核。 subprocess打破了循环,并做了一些更多的工作(未在代码中显示)。 int child_core = 0; CPU_ZERO(&mask); CPU_SET(core,&mask); if (sched_setaffinity(0, len, &mask) < 0) { perror("sched_setaffinity"); } for(int i = 0 i < NUM_CHILDREN; i++) { pID = fork(); if (pID == 0) { /* child */ CPU_ZERO(&mask); CPU_SET(child_core,&mask); len = sizeof(mask); if (sched_setaffinity(0, len, &mask) < 0) { perror("sched_setaffinity"); } break; } […]

如何使用任务集为具有参数的程序的多个实例分配cpu内核

问题描述 我试图在6核心机器上运行7个models_test实例。 为此,我正在使用以下脚本。 任务编号7在计算方面是最苛刻的。 #!/bin/bash ./models_test tfidf.db output/ input/ 1 10 & ./models_test tfidf.db output/ input/ 11 20 & ./models_test tfidf.db output/ input/ 21 30 & ./models_test tfidf.db output/ input/ 31 40 & ./models_test tfidf.db output/ input/ 41 50 & ./models_test tfidf.db output/ input/ 51 60 & ./models_test tfidf.db output/ input/ 61 70 ./models_test需要5个参数: 数据库 […]

最后运行不同的选项GNU并行

我已经使用GNU并行化了bash循环。 这是一个非常简单的例子来显示我想要达到的: seq 10 | parallel -n0 echo "Hello World" & 我想从terminal上拆除所有的运行,除了最后一个运行,从而在最后一个循环中删除&。 有没有办法做到这一点? 编辑:由于我不是很清楚,我会尝试以更好的方式解释我自己: 我有一个模拟器启动,然后与GNU并行启动许多时间相同的脚本连接到模拟器。 除了最后一个,我希望所有人都从terminal上分离,以避免与重叠输出混淆。

如何批量使用Image Magic批量转换多个子目录中的图像

我有〜100个子目录每个有〜1000个文件我想转换JPG到PNG使用Image Magick在BASH for Win10即LINUX script 。 我的脚本很慢,可以加速吗? find . -type f -name '*.jpg' -exec sh -c ' orgfile="$0" newfile="$(echo "$0" | sed 's/.jpg/.png/')" echo $orgfile $newfile convert $orgfile -unsharp 0x5 $newfile rm $orgfile ' {} \; 我喜欢循环过程,因为convert是多个进程中的第一个,所以input和输出名称可以重用。 然而,它的缓慢和回声有反馈(改变每个目录?) 在一篇相关的文章中给出了以下解决scheme # Runs these conversions serially ls *.NEF | sed 's#.NEF##' | xargs -I^ convert ^.NEF ^.jpg […]

如何在Linux下用C ++实现两个定期进程?

我正在Linux下用C ++进行实时编程。 我有两个过程,让我说A和B.一个过程正在定期启动,每5ms。 B过程每10ms启动一次。 过程A正在做一些数据更改。 过程B正在读取该数据并显示它。 我很困惑如何定期运行进程,我应该为每个进程有两个.cpp程序?

有没有什么好的并行混合整数编程优化器可以在Linux上运行?

有没有什么好的并行混合整数编程优化器可以在Linux上运行? 尤其是那些提供高级语言的API,如Java,C#或C ++

并行运行和任务核心分配

我在同一个terminal中一次性使用“ 运行并行多个命令”中build议的脚本,以并行运行一些应用程序。 它工作正常,但是,我想坚持每个应用程序到一个单一的核心,我的问题是如何确保每个应用程序运行在不同的核心? 在哪里插入“taskset -c”? 每个应用程序的运行命令之前,脚本和/或脚本的命令本身之前,当我从terminal运行它?

Linux – 限制每个进程的线程数

我写了一个C ++程序,在几个algorithm上做了一些基准testing。 其中一些algorithm正在使用其他库进行计算。 这些外部库(我没有控制权)使用multithreading,这使得很难获得一个合适的基准(一些algorithm是单线程的,一些是multithreading的)。 所以在做基准testing的时候,我想限制线程为1.是否有无论如何,我可以在Linux中启动一个程序,并告诉它使用最多1个线程,而不是外部库中的默认值(这等于核心数量)?

如何将Parallel Grep的输出附加到文件中?

我有一个500 MB的文件,和一个20MB的模式文件。 由于花费了太多的时间从500万行文件中挑出120万个模式,我将模式文件分成了100个部分。 我尝试运行Grep并行与多个模式如下。 for pat1 in vailtar_* do parallel –block 75M –pipe grep $pat1 infile >> outfile done; 但是我不能得到输出到一个文件。 我尝试没有块选项,也如下 – cat infile | parallel –block 75M –pipe grep $pat1 >> outfile < infile parallel –block 75M –pipe grep $pat1 >> outfile 是否有反平行grep将输出附加到文件? 提前致谢。