【问题标题】:GNU Parallel - Error running command on multiple client hostsGNU Parallel - 在多个客户端主机上运行命令时出错
【发布时间】:2016-09-29 18:16:19
【问题描述】:

我正在尝试使用 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


    【解决方案1】:

    我认为你的hostfile应该是:

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

    【讨论】:

    • 非常感谢。这就是问题所在。我能再问你一件事吗?我收到警告 - Warning: No xauth data; using fake authentication data for X11 forwarding.。这是否意味着 GNU Parallel 在登录客户端节点时正在执行 ssh -X?
    • 对不起,我不知道。我相信@OleTange 会帮助你 - 毕竟他写了GNU Parallel - 他是个聪明人!
    【解决方案2】:

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

    可能里面有空格或格式化字符?

    运行parallel --vv进行调试。

    警告:

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

    是由您的ssh 默认为转发 X 显示引起的。您可以使用-x 覆盖ssh 的默认值。所以这应该有效:

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

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

    --ssh "ssh -x"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-14
      • 2021-11-26
      • 2019-11-16
      • 2019-11-28
      • 1970-01-01
      • 2022-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多