Мне нужно отправить несколько симуляций кондору (сетке выполнения нескольких клиентов) с использованием оболочки, и поскольку это может занять некоторое время, я решил написать сценарий оболочки, чтобы сделать это для меня. Я новичок в языке сценариев командной оболочки, и это является результатом того, что я сделал на один день:Использовать вывод оболочки для обработки ошибок для кондора
for H in {0..50}
do
for S in {0..10}
do
./p32 -data ../data.txt -out ../result -position $S -group $H
echo "> Ready to submit"
condor_submit profile.sub
echo "> Waiting 15 minutes for group $H Pos $S"
for W in {1..15}
do
echo "Staring minute $W"
sleep 60
done
done
echo "Deleting data_3 to free up space"
mkdir /tmp/data_3
if [$H < 10]
then
tar cfvz /tmp/data_3/group_000$H.tar.gz ../result/data_3/group_000$H
rm -r ../result/data_3/group_000$H
else
tar cfvz /tmp/data_3/group_00$H.tar.gz ../result/data_3/group_00$H
rm -r ../result/data_3/group_00$H
fi
done
Этот сценарий проходит через 0..50 моделирования и подает 0..10 различные параметры программы, которая генерирует профиль представления кондора. Затем я отправляю этот профиль и позволяю ему исполнять в течение 15 минут (каждый раз, когда вы делаете вызов, убедитесь, что труба SSH не сломается). По истечении 15 минут я сжимаю вывод на том с большим объемом и стираю исходные файлы.
Причина, по которой я реализую это, потому что наша кондорская система может обрабатывать до 10 000 представлений сразу, а одна подача (condor_submit profile.sub
) выполняет 7000+ симуляций.
Теперь моя проблема с этой линией. Когда я проверил это утро, я (к счастью) заметил, что при вызове condor_submit profile.sub
может возникнуть ошибка, если сеть слишком занята. Код ошибки:
ERROR: Failed to connect to local queue manager
CEDAR:6001:Failed to connect to <IP_NUMBER:PORT_NUMBER>
Это означает, что время от времени теряется вся итерация! Как я могу обойти это? Единственный способ, которым я вижу использовать оболочку для чтения в последней строке/с терминала вывода и оценки того, будут ли они ожидаемый т.е. ответа:
7392 job(s) submitted to cluster CLUSTER_NUMBER.
Но как бы я прочитал в последней строке и идти о проверке за ошибки?
Любой помощь очень нужны и очень высоко ценится
Это выглядит очень перспективно! И, похоже, работает! Спасибо за быстрый ответ :) –