Как использовать SSH для запуска локального сценария в сценарии qsub между двумя кластерами?

Я программирую скрипт для операций на 2 кластерах.

Моя цель - сфокусировать только один кластер, это означает, что каждый исходный код скрипта находится только на одном кластере.

Например, в кластерном A I все сценарии установлены, и теперь я хочу подключиться к кластеру B по ssh, чтобы не устанавливать их снова в кластере B.

Я знал, с помощью сценария Bash, как ssh root@ClusterB 'bash -s' < local_ClusterA_script.sh затем кластер B запускает local_ClusterA_script.sh из кластера A.

Теперь есть еще одна проблема, которая заключается в том, что мне нужно использовать ssh для отправки пакетного задания на кластере B из кластера A, для этого пакетного задания требуется скрипт из кластера A.

# run.sh :

#!/bin/bash

INPUT_ARGS="$@"
qsub -v argv="$INPUT_ARGS" -l arch=x86_64 -l walltime=10:00:00 -l vmem=8GB -l nodes=1:ppn=6 $CLUSTERA_BIN/run.script

# run.script
runprogram()
{
  #Input
  INPUT_ARGS=`echo $argv`
  $CLUSTERA_BIN/runprogram.py "$INPUT_ARGS" ;
}

Так что моя проблема в том, где кластер B находит $CLUSTERA_BIN/runprogram.py? Как заставить код в run.script успешно работать на кластере B?

Одна команда, я думал, что это будет ssh root@ClusterB 'bash -s' < run.sh $MYARGS, но, очевидно, это не сработает.

1 ответ

Кластер B должен получить доступ к тем файлам, которые ему нужны. Итак, у вас есть несколько вариантов:

  1. Передумай и скопируй (значит scp, rsync,...) файлы в кластер B. Вы также можете рассмотреть возможность использования системы контроля версий (например, svn, git,...) для синхронизации файлов между несколькими хостами.
  2. Когда кластеру B нужен файл, получите его из кластера A на лету (например, без пароля). scp).
  3. Поместите ваши файлы в один каталог кластера А и поделитесь (значит NFS, SMB...) каталог к ​​кластеру B.
  4. ......
Другие вопросы по тегам