Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用c+中的可执行文件+;并并行运行 在C++中,我用系统调用“可执行文件”(“./FiNeNabBLAHBLAH”);现在,因为有很多迭代,我想把它们并行 #pragma omp parallel for for( int i = 0; i < 999; ++i ) system("./filename blahblah"); #pragma omp parallel for 对于(int i=0;i_C++_Parallel Processing_Fork_Openmp - Fatal编程技术网

调用c+中的可执行文件+;并并行运行 在C++中,我用系统调用“可执行文件”(“./FiNeNabBLAHBLAH”);现在,因为有很多迭代,我想把它们并行 #pragma omp parallel for for( int i = 0; i < 999; ++i ) system("./filename blahblah"); #pragma omp parallel for 对于(int i=0;i

调用c+中的可执行文件+;并并行运行 在C++中,我用系统调用“可执行文件”(“./FiNeNabBLAHBLAH”);现在,因为有很多迭代,我想把它们并行 #pragma omp parallel for for( int i = 0; i < 999; ++i ) system("./filename blahblah"); #pragma omp parallel for 对于(int i=0;i,c++,parallel-processing,fork,openmp,C++,Parallel Processing,Fork,Openmp,有办法解决这个问题吗?我确实认为GNU中有一种使用fork()和exec()的方法,但我不知道具体是如何实现的。有人能帮我吗?谢谢 是的,您需要使用、、和其他一些(例如,对于一个应用程序很有用,您可能需要一个)等等 我不会解释如何阅读这本书(在线提供),这本书有几个章节专门讨论这个主题(其中大部分与其他POSIX系统(如MaCOSX)相关) 你可能会对它感兴趣 顺便说一句,在大多数计算机上有一千个运行进程是不合理的。您最好将自己最多限制为十几个正在运行的进程(例如,拥有一些进程)。 通常情况下,

有办法解决这个问题吗?我确实认为GNU中有一种使用fork()和exec()的方法,但我不知道具体是如何实现的。有人能帮我吗?谢谢

是的,您需要使用、、和其他一些(例如,对于一个应用程序很有用,您可能需要一个)等等

我不会解释如何阅读这本书(在线提供),这本书有几个章节专门讨论这个主题(其中大部分与其他POSIX系统(如MaCOSX)相关)

你可能会对它感兴趣

顺便说一句,在大多数计算机上有一千个运行进程是不合理的。您最好将自己最多限制为十几个正在运行的进程(例如,拥有一些进程)。 通常情况下,每个处理器只需要一个正在运行的进程或线程(即任务)(如果使用英特尔处理器,则需要稍微多一些)。如果有太多正在运行的进程,则系统将无响应,总体性能将受到影响(将有太多活动任务需要管理)


您可能对系统感兴趣(例如,您可以使用命令;在MacOSX上,请参见)。

循环迭代之间是否存在依赖关系?几个“/filename blahblah”可以同时运行吗?如果前者是负面的,而后者是正面的,那么您提出的解决方案可能会奏效。。。只需添加一个
-fopenmp
或激活OpenMP支持所需的任何编译器选项即可。该函数实际上调用shell,这意味着您可以使用shell的所有功能,例如将进程放在后台,并带有尾随的
&
。它是特定于操作系统的。我猜您是在LinuxI上猜我们可以指定在shell命令中使用哪个内核?与C++一样,我也可以使用类似系统(“/可执行文件BLASBLAH——使用核心2”)来玉泉:不,你一般不能。但谷歌的“CPU亲和力”通常是什么?为什么你会想要比内核更多的线程/进程?@jco:当你知道或直觉到某些进程大部分时间会休眠(或等待IO)时,谢谢,这是有道理的。但是如果他们都在计算一些东西,那就没有意义了,对吗?@jco:如果你有太多正在运行的进程,调度程序会尽最大努力,但总体系统性能可能会下降。