我有6个核心,想同时运行12个进程。我正在使用mpirun,但是在我将用于每个核多进程的选项中,我感到很糟糕和困惑。这样的6个进程的命令
mpirun -np 6 ./the program在单个核中可以使用的进程的最大数量是多少?
发布于 2021-03-08 22:41:08
Linux内核可以为您启动和管理许多进程,这超出了您合理使用的范围。但更重要的问题是:有多少并行进程对您的特定任务有用?你应该有多少人开始对你的系统资源进行最好的利用?
在一般情况下,这是不容易回答的。有些任务是CPU约束的,即它们需要大量的计算能力。有些是I/O绑定的,即从磁盘读取大量数据或将大量数据写入磁盘。有些是网络绑定的,即它们通过网络传输大量数据。还有内存的使用;每个任务都需要一定数量的RAM,无论是物理内存还是虚拟RAM,包括交换空间;当交换开始时,一切都会停止,所以您应该避免这种情况。
因此,您有几个不同类别的系统资源,每个任务都需要这些资源,即任何并行任务都要竞争:
如果整个任务是运行,比如说,10,000个任务,这取决于它们对这些系统资源的使用模式--它们中有多少是并行启动的。如果每个任务都不是非常密集的CPU,但必须等待来自网络的结果,那么并行运行它们中的许多可能比您有CPU内核更有意义。如果他们都从文件中读取了大量数据,那么不并行运行那么多数据可能会更有效,因为磁盘I/O将是限制因素。如果他们都读取同一个文件,情况可能正好相反,因为文件已经被缓存在I/O缓冲区中了。
它实际上取决于使用模式,而且您通常需要实验特定系统配置的最佳位置(取决于I/O带宽、CPU核数、CPU使用率、可用RAM等)。
https://askubuntu.com/questions/1321747
复制相似问题