같은 프로그램을 다른 데이터로 1700번 가까이 실행해야 해서 문제가 생겼습니다. 프로그램은 반복을 사용하여 여러 계산을 수행하고 약 5시간 후에 답을 얻습니다. 문제는 오늘 아침에 다른 디렉토리로 이동하고 executor를 사용하는 bash 스크립트를 생성했지만 nohup ./name_of_the-program >1&
실행하면 서버가 이러한 명령으로 충돌하고 수동으로 다시 시작해야 한다는 것입니다. . 어떻게 실행할 수 있나요? 저는 3개의 서로 다른 Linux 서버에 액세스할 수 있으며 그 중 16개, 16개, 20개를 동시에 실행할 수 있습니다. 미리 감사드립니다.
답변1
GNU Parallel은 이런 종류의 작업을 위해 만들어졌습니다.
서버에서 시작 tmux
:
tmux
ssh
server1, server2 및 server3에 연결할 수 있는지 확인하십시오 .
그런 다음 다음을 실행하십시오.
cat 1700_arguments |
parallel --dry-run --joblog my.log -S server1,server2,server3 name_of_the-program
실행하려는 명령이 올바른 것으로 보이면 --dry-run
.
그런 다음 서버 연결을 끊습니다( tmux at
다시 연결을 위해).
이를 통해 --joblog
실패한 작업을 복구하거나 다시 실행할 수 있습니다.
올바른 디렉토리에 도달하려면 를 사용해야 할 수도 있습니다 --wd .
.