Parallel processing 使用最大的远程服务器
我试图将命令分发到100台远程计算机,但注意到命令只发送到16台远程计算机。我的本地机器有16个内核。为什么并行只使用16台远程计算机而不是100台Parallel processing 使用最大的远程服务器,parallel-processing,gnu-parallel,Parallel Processing,Gnu Parallel,我试图将命令分发到100台远程计算机,但注意到命令只发送到16台远程计算机。我的本地机器有16个内核。为什么并行只使用16台远程计算机而不是100台 parallel--eta--sshloginfile list_of_100_remote_computers.txt
parallel--eta--sshloginfile list_of_100_remote_computers.txt
,Admin Magazine如果远程计算机是32核,则运行16*32个作业。默认情况下,GNU Parallel为STDOUT和STDERR使用一个文件句柄,总共16*32*2个文件句柄=1024个文件句柄 如果您有一个默认的GNU/Linux系统,您将达到1024个文件句柄的限制
如果
--ungroup
运行更多作业,则这清楚地表明您已达到文件句柄限制。使用ulimit-n
增加限制。谢谢,我可以使用远程机器上的所有内核。这不是问题所在。我的问题是并行不会使用所有远程机器。我尝试了-j100,它把100个工作发送到了16台远程机器。啊,我的错。你试过了吗?根据文档--“在所有计算机上运行所有作业,并使用--sshlogin”-onal向服务器发送相同的命令,16台服务器运行相同的作业。我需要对命令进行划分,并将它们唯一地发送到所有机器。在命令列表中有多少个作业?每个远程服务器有多少个内核?@OleTange有500000个作业。100台远程服务器,每个服务器有32个核心。本地计算机有16个内核。将“head-n 1000 list_of_commands | parallel-D--eta--sshloginfile list_of_100_remote_computers.txt”的输出发布到parallel@gnu.org