GNU Parallel - 多个客户端主机上的错误运行命令

问题描述 投票:1回答:2

我试图使用GNU Parallel,以便在本地集群上并行执行一组命令。我使用两个客户端节点,每个节点有12个核心,但每个只有4个核心用于计算。以下是测试命令的样子 -

cut -d " " -f -2 $PE_HOSTFILE > hostfile
parallel --gnu --jobs 4 --sshloginfile hostfile --workdir $SGE_O_WORKDIR echo {} ::: A B C D E F G H

但是,我得到错误说 -

/bin/bash: node30: command not found
/bin/bash: node30: command not found
/bin/bash: node30: command not found
/bin/bash: node30: command not found
/bin/bash: node31: command not found
/bin/bash: node31: command not found
/bin/bash: node31: command not found
/bin/bash: node31: command not found

我已登录到两个节点并检查命令是否正常工作。我已经安装了GNU Parallel的本地副本并使用它。谁能告诉我这里有什么问题?

更新:这是并行-vv的输出 -

merlinc30.psi.ch 4 -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;open3\\\(\\\$in,\\\$out,\\\"\\\>\\\&STDERR\\\",\\\$zip,\\\"-dc\\\"\\\)\\\;if\\\(my\\\$perlpid\\\=fork\\\)\\\{close\\\$in\\\;\\\$eval\\\=join\\\"\\\",\\\<\\\$out\\\>\\\;close\\\$out\\\;\\\}else\\\{close\\\$out\\\;print\\\$in\\\(decode_base64\\\(join\\\"\\\",@ARGV\\\)\\\)\\\;close\\\$in\\\;exit\\\;\\\}wait\\\;eval\\\$eval\\\; QlpoOTFBWSZTWWFW/uIAAWgfgHV/+//u538ev////kAB7OGgohU9CPSNkmmmjQyGhpkAAGgBo0BoHGTJoxDE0wEDAmmCMExNNNABhCKnmpk1PSeoANBkaAAxAAAAaADJAptAyp5NFPJ6am1Nqh6Q9EbTKaDTJ6jQB6il1up9ItZGm0TFUNBCc5EM2fqnR+LKMi/tlHRqKjYrRJ/pi5U/oFKnhTUbQ+0YKzYIYUIGgWKpYpCroUeacSMtx3ggS5EgjSPsadVOgJbpDEpJdHA8dKl0AZdgkJ97qO0SiDMoQaJYacAQU8J1sCmUYHo1lg5qz+TYWCMRpohYrViTBuLrdgH+Jlll3bjsSrKb+aIpXztA5FjelrlQdbod2CWpSDBCqi5nmZd+rqHtDcdPPKNrVPzp5wvJo7BT0Kh0pCw7wPSB2jY3u4d/egE5HDe6YIv5eFCw94G0DwIVOFEfSoRHVwDYPBUxvqqShgGVCEQUtVYSPCuAWR9DuEqQx5Lkd4SN8sIegWFkO4oDH26etSVjWPeVjpDWlVxWdn9G6IgWbXiiztxmZScRa3IUugNGIsDOKUiTIp1h9tZmH+8hXETAaVAMLyGgRi/LbabiHEWD7LtN6s1kDy5zlSBWtdQWuZECeMTnrLS7iLwtC4MKSHSGBsrlyT0H7qNhd+EMixfXjfyLF5nhyp1L0pVmgVIE4yC45RNeJxjKFhtpCxKMw16vRB6ZtSsC80pMqA6YSyZoOBjPOeKQjooAFNoZbfEGH5DWJEVzvuAZjB+gesfEM+DD/xdyRThQkGFW/uI\\\=; /bin/bash: merlinc30.psi.ch: command not found merlinc29.psi.ch 4 -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;open3\\\(\\\$in,\\\$out,\\\"\\\>\\\&STDERR\\\",\\\$zip,\\\"-dc\\\"\\\)\\\;if\\\(my\\\$perlpid\\\=fork\\\)\\\{close\\\$in\\\;\\\$eval\\\=join\\\"\\\",\\\<\\\$out\\\>\\\;close\\\$out\\\;\\\}else\\\{close\\\$out\\\;print\\\$in\\\(decode_base64\\\(join\\\"\\\",@ARGV\\\)\\\)\\\;close\\\$in\\\;exit\\\;\\\}wait\\\;eval\\\$eval\\\; QlpoOTFBWSZTWfIkiOsAAWgfgHV/+//+538ev////kAB7O6dBohU9EMjyJoDQaAAeoAANAPSaGj1AhCNTTR6TTRoD0RoaNAAAAAAAIqeamTUyepoBoGmgABtQAAADQASSCVP2ppplT2mink01Pap5Q9EYh6magaMnqNAHqJ7x1+z+0lJxUyxTbkMMEU0aXl53xorY3XYrCtFka9V8/4stZf6BSscKKTK0UDBVdBDKRAz6xUrFIVdCTtnEkx2IoH2KcJ9qL9abqHQEh4hiXmHhoKOwldAGXZJAwK6jtEohLjiDhKzlIBBMhtsB0Kdi5eRQPDYvyrVArrNNNVrtRrhNtjrJ+5SovdXUJrhWpYvUGQYNSVAI5gykScsY6XD4wXZKQKhBKh1Sqo75dRKJHFg8V49cXSzN5R+Pj6TByOq52tW4PMHtLOZvjv7Oxgvo37pqBn/LtpeSkG0O1Dr45H0wlZ0byNUhOhHz4WpgBmQQIFs00EuDKALAwC6K0MU5byTiRzniCAGhbDwKgpe6+hzWGw9yec5GKdoT1zf06aypQ2yKbfZiVDm4GeONNoqOPvKBDg2AnxumtW6xUH+8CfWUBpcEFJEQrrlkz51oRMi07n51c7LbUuLMsjVJ734R76GYb61rNYoqbgXD2UxBNOtJAjemfPfpX2crVN92U7y6zFLvvLlfq4m6H6Ww5ak5huE5oWQouL5iTKCz4B5eMps1ctUmy6na1JYFZkUH0CsdkHgvMNVlilfEwBOSK7m0G4CJuqDIYgeBDdv9nrWyrIe+C/4u5IpwoSHkSRHWA\\\=\\\=; /bin/bash: merlinc29.psi.ch: command not found merlinc30.psi.ch 4 -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;open3\\\(\\\$in,\\\$out,\\\"\\\>\\\&STDERR\\\",\\\$zip,\\\"-dc\\\"\\\)\\\;if\\\(my\\\$perlpid\\\=fork\\\)\\\{close\\\$in\\\;\\\$eval\\\=join\\\"\\\",\\\<\\\$out\\\>\\\;close\\\$out\\\;\\\}else\\\{close\\\$out\\\;print\\\$in\\\(decode_base64\\\(join\\\"\\\",@ARGV\\\)\\\)\\\;close\\\$in\\\;exit\\\;\\\}wait\\\;eval\\\$eval\\\; QlpoOTFBWSZTWX9KUYEAAWgfgHV/+//u538ev////kAB7Lc0Gwyqn6n6pHtRtCTNCaZMTamACNMmADQmI9TQhE1PU00ek00aA9EaGmQAADQAAARU81Miek9TQDQNNAAD0QAAANABkmiU9qZNpTaaJk9TTagAZAGgGTQANHlwtr38sqqNJGNNszQuOKjYvngud+ym55s6PBxPN0+tXlc7NzGl/wKVHCmkytFIwV3QYZSIGgWKlYpCrsJO2cSTnYzwQIqxIGo/1pusdgJSiGJgQoVPHQldgDLskhPv9R2iUQmyRBwllyoAglY7vZApGWTbtFBTlnoXygeeFRjr6qwgTvxR4A1xK5MjJkG8RmcLsWmwC5qpwCUoGciTlknS2fKCyCkCuQSocNYM55cQ9wdbm2LA6HMffTdC3NbpE2+yGNKTkA4QOwUYk8M+XKgEpGfJFIEXszWVD3gc4GYhkoYR52hOOPOHQeCxruK0lloY6ISG4PSFVgywKx6nSWo5i97UVwqpbb46iUZ4+zGMXHfyMSgbw7SoxhzizAVOL9HTOIFvO8Waeu2ZGJoFTrhTBAa2kWhuhJhHcZFSclBkH9qFZxIBhYA0vIcBPO+7VUcBERFI9lqNbL1MDq3zdSBVVtBVkRAnrOb9BcYtArCoYg0pGcIaHWIljlsn3YaTF8IY1FdFt+morMsNVONcKWr0CxAmiMYDdElYlFsoWmqYKLAvDe2eCD0vbLNovM0SfIB5AqnYB0MC7L6pSvCoAUUis3uBqAib5hlrwOghq7+0vvreCaEP+LuSKcKEg/pSjAg\\\=;

主机文件的内容是 -

merlinc29.psi.ch 4 merlinc30.psi.ch 4

gnu-parallel
2个回答
1
投票

我认为你的hostfile应该是:

4/merlinc29.psi.ch
4/merlinc30.psi.ch

1
投票

hostfile的内容不是你想象的那样。

也许它中有空格或格式字符?

运行parallel --vv进行调试。

警告:

Warning: No xauth data; using fake authentication data for X11 forwarding.

是由你的ssh默认转发X显示。您可以使用ssh覆盖-x的默认值。所以这应该工作:

parallel --ssh 'ssh -x' ...

因为你可能会一直使用它,你可以把它放在~/.parallel/config

--ssh "ssh -x"
© www.soinside.com 2019 - 2024. All rights reserved.