Перейти к основному содержимому

SSH-хосты и настройка Slurm

Перед отправкой работы настройте хост SSH и выберите Direct SSH или Slurm, прежде чем отправлять удаленную работу. Сохраненный профиль хоста не устанавливает успешную аутентификацию или выполнение. :::

Settings → Compute для регистрации сервера или кластера. Регистрация хозяина, предоставление его для разговора и завершение работы являются отдельными вехами. Сохраняйте правила логина-узла сайта и требования к планировщику с заметками хоста.

Выберите, где выполняются рабочие места

Режим выполненияВыполнение работыКомандный звонокСоответствующая окружающая среда
Direct SSHНепосредственно на хосте SSH loginНа хосте SSH loginМашина, где разрешены прямые рабочие нагрузки
SlurmОтправлено и управляется через SlurmВсе еще на хосте SSH loginКластер, требующий запланированных ассигнований

Выбор Slurm не переносит каждую команду на вычислительный узел. Не истолковывайте логин-хост CPU, RAM или GPU как ресурсы, выделенные для будущей работы Slurm. Проверить фактическое распределение работы, прежде чем интерпретировать ее результаты.

Добавить соединение

Выберите Add SSH host. Выберите существующий псевдоним или введите идентификатор хоста. Форма по умолчанию для аутентификации конфигурации SSH и выполнения Direct SSH.

Поле или контрольВвод и эффект
From ~/.ssh/configВыберите найденный псевдоним; отключены, когда отсутствуют псевдонимы
Or type a host aliasТребуемый хост / алии, символы 1-255 после обрезки; Нет разрывов линий или NUL
Факультативные ноты HostПравила планировщика, раздел/счет, модули, политика установки пакетов и места расположения среды; Максимум 32,768 символов
Execution modeDirect SSH или Slurm; Сохраняется на хосте
SSH configurationРешите настройки соединения с ssh -G; использовать существующую конфигурацию SSH, ключи или ssh-агент
Advanced settings → Userфакультативная оверрайд; blank сохраняет разрешение SSH
PortОпциональная конфигурация SSH; Если подается, целое число 1-65535
Identity fileОпциональная оверрайд файла ключа; бланк использует конфигурацию/агентное поведение
Username and passwordТребуется Пользователь, Порт и Пароль; не использует ключи или ssh-агент
CancelУйти без регистрации формы
AddПодать действительное соединение; Аутентификация пароля должна пройти тест на подключение до добавления хоста

Английская конфигурация SSH переопределяется

Пароль аутентификации и Slurm выбран в реальном виде

Режим пароля зависит от аутентификации пароля приложения и возможности безопасного хранения. Если он недоступен, проверьте причину, указанную в форме. Введите учетные данные в этой области, а не в заметках хоста или запросе агента.

Для хоста SSH-конфигурации приложение создает запись, открывает вид детали и запускает фоновый зонд. Таким образом, добавленная строка не доказывает аутентификацию или готовность к вычислениям. Прочитайте результат зонда, прежде чем разрешить задачу использовать его.

Подключите защищенный паролем исследовательский сервер

  1. Открыть Settings → Compute → Add SSH host. Введите адрес вашего сервера или псевдоним.
  2. Выберите Username and password, введите User, Port и Password, затем выберите Add. Используйте порт, предоставленный вашим администратором. Примерный сервер использует порт 22.
  3. Если приложение сообщает The SSH host key is unknown. Verify it in a terminal before connecting., сначала установите хост-доверие. Подключайтесь к одному хосту и порту с вашим SSH-клиентом, сравнивайте отображаемый отпечаток пальца с отпечатком администратора и принимайте его только тогда, когда они совпадают. Вернитесь в приложение и повторите Add. Не отключайте проверку ключа хоста, чтобы отклонить сообщение.
  4. Подождите Last probe succeeded. В Configuration проверьте Credential configured, метод аутентификации и время последней проверки. Сохраненный пароль помечается Configured · cannot be viewed.
  5. Чтобы проверить или изменить существующее соединение, откройте Configuration → Edit и используйте Test and save. Прочтите уведомление перед изменением аутентификации: разрешение сеанса и разрешение выдаются, когда новая конфигурация завершена. После этого включите хост для предполагаемой сессии.

В английском примере показан успешный зонд, удостоверенный паролем: процессоры 256, оперативная память 504 GB, один PCIe NVIDIA A100 80GB и обнаруженный планировщик Slurm. Настроенный режим остается Direct SSH до тех пор, пока вы не измените его. Это ресурсы логин-хоста этого сервера, а не минимальные требования или запланированное распределение. Идентификаторы хоста и учетной записи скрыты на скриншоте.

Успешная аутентификация пароля и зонд ресурсов хоста

Проверяйте и сохраняйте детали хоста

Раздел или кнопкаЧто проверить
Probe / Retry probeОбновление соединения/обнаружение ресурсов; Отличие Не зондированный, Пробирование, Последний зонд удался и Проб провалился
Resources / Login host resourcesОбнаружен процессор, память, GPU и информация о планировщике; Распределение планировщиков имеет отдельную емкость
Configuration → EditПроверьте настройки аутентификации и текущее состояние учетных данных
Test and saveПроверить конфигурацию аутентификации кандидата перед сохранением; Измененная конфигурация очищает сессию и разрешительные гранты. Неизменная конфигурация сообщает, что настройки уже обновлены.
Execution mode → Edit → SaveИзменить настроенный режим; Сравните его с обнаруженным планировщиком
Details → EditОбновление хост-специфических инструкций; Сохранить обязательства, отменить отказы
Показать больше / Показать меньшеРасширять или разрушать длинные ноты
Scratch root → EditСохранить удаленный путь временной работы в качестве прикрепленного значения
Restore auto-detectionУдалите заколоченную царапину, чтобы будущий зонд мог ее предоставить
Concurrent job limit → EditУстановите целое число от 1 до 500; По умолчанию отображается 10
Удаление хостаПросмотрите диалог удаления приложения и ограничения на активную работу, прежде чем подтвердить

Корень царапины — это путь на удаленном хосте. Это не каталог артефактов вашего ноутбука. Подтвердите, что учетная запись может писать там, и что политика очистки сайта дает вам достаточно времени для сбора результатов. Ограничение параллельной работы не заменяет собственные квоты или ограничения ресурсов планировщика.

Выберите каталог скретч-работы

Откройте Scratch root → Edit, введите написанный абсолютный путь, одобренный для вашего сервера, а затем Save. PINNED означает, что более поздний Probe сохранит ваш выбор. Подтвердите доступ к записи, проверив каталог и выход первой работы.

Для первого запуска откройте Concurrent job limit → Edit, введите 1 и выберите Save. Это ограничивает рабочие места, управляемые приложениями на этом хосте, по одному за раз. Он не зарезервирует процессор, не устанавливает ограничение памяти и не мешает другим пользователям выполнять работу. Снижение лимита не останавливает существующую работу. Используйте Restore auto-detection только тогда, когда вы хотите, чтобы последующие зонды снова поставляли путь царапины.

Держите инструкции хоста отдельно от обнаруженных ресурсов.

Сохраненные инструкции хоста не зависят от Resources. Успешный зонд не создает инструкции по настройке, а пустые инструкции не означают, что зондирование не удалось. Сохраняйте политику планировщика, активацию среды и воспроизводимые шаги установки в Details; CPU/RAM/GPU в разделе Ресурсы.

Когда агент обновляет инструкции, он должен сначала прочитать сохраненный документ и заменить его точным текущим содержанием. Если другое редактирование изменило его, перечитайте и сравните перед повторным использованием. Не используйте пробную сводку при замене документа. Контракт на обучение хозяина.

Сделайте хост доступным для задачи

В разговоре Agent controls проверьте наличие и выбор вычислительного хоста. Также должен быть включен выбранный хост. Назовите предполагаемый хост и режим выполнения в задаче, которая в противном случае могла бы выполняться локально. Держите первый удаленный запрос достаточно маленьким, чтобы проверить его получение, журналы и выход, прежде чем отправлять научную нагрузку.

Для Slurm, получите правильную учетную запись/раздел, запрос ресурсов, время стен, модуль/окружающая среда и политику царапины от владельца кластера. Наличие sbatch, squeue, sacct и scancel поддерживает операции планировщика; Их присутствие само по себе не устанавливает разрешения на подачу.

Проверьте хост перед исследовательской нагрузкой

этапПроверьте, прежде чем двигаться
ПодключениеУспешный зонд и аутентифицированное соединение.
Прямая работаНебольшая утвержденная работа, ее статус выхода, читаемый журнал и извлеченный результат.
Работа в SlurmРасписание квитанции / идентификатор работы, фактическое распределение, конечное состояние и извлеченный результат.
Восстановление после повторного подключенияПриложение совмещает одну и ту же удаленную работу; Он не представил дубликата.
АннулированиеПланировщик/процесс подтверждает, что он остановился; Проверить сохраненные выходы перед очисткой.
Рабочая нагрузка GPUНеобходимая среда, вес, память и научные результаты проверки, в дополнение к доступу к SSH.

Обзор источника: форма Add-host, поля аутентификации, Хостинговые детали, валидация соединения и Выбор хостов сессии.

Запуск удаленной проверки качества RNA-seq

Запуск удаленной проверки качества RNA-seq

Практический пример Проверка качества RNA-seq через Direct SSH

Используйте тот же публичный Счетная матрица GSE60450 при переносе анализа с вашего ноутбука на сервер. Сравнение известного результата помогает отличить задачу конфигурации вычислений от изменения научного метода.

  1. Создайте беседу в исследовательском проекте и приложите исходную графовую матрицу.
  2. Открыть Agent controls → Compute. Включите хост, затем добавьте его в Запуск целей. Доступность и выбор являются отдельными элементами управления; Просто регистрация хоста в Настройках не выбирает его для этого разговора.
  3. Попросите задание Direct SSH, назовите входные и требуемые выходы и укажите ограничения. В этом примере используйте один поток процессора, потолок памяти 1 GiB и время выполнения 120-секунды. Сервер Python по умолчанию является достаточным; Установка упаковки не требуется.
  4. Когда появляется Allow remote job submission?, проверьте Host, Intent, Inputs, Execution mode, Timeout и Remote workdir. Расширьте Show full command, чтобы проверить весь сценарий. Once одобряет это предложение; Более широкие рамки применяются к последующим операциям. Выберите область намеренно.
  5. Сохраните возвращенный Job ID. Откройте чип работы или Background tasks, чтобы проверить эту работу. Вы можете оставить разговор, пока он работает; Избегайте отправки другой копии только потому, что ответ закончился.
  6. После завершения работы откройте Remote job details. Проверьте Status, Runtime, Job ID и Remote workdir. Используйте Refresh для текущего просмотра и stdout или stderr для проверки каждого журнала. Кнопка дистанционного управления открывает удаленный каталог работы.
  7. Подождите результатов и ответов, затем откройте опубликованный CSV и отчет. Успешные вычисления, сбор файлов и публикация Artifact являются отдельными этапами. Завершенная работа сама по себе не устанавливает, что оба ожидаемых файла были опубликованы.

Пример запроса:

Запустите описательный QC на прилагаемой матрице подсчета GSE60450 с использованием выбранного хоста Direct SSH. Сохраняйте вход. Для каждой выборки вычислите общее количество, гены с нулевым счетом, обнаруженные гены и среднее положительное количество. Сохраните CSV и краткий отчет о методах с размерами и до / после SHA-256. Используйте один поток процессора, отсутствие установки пакета и ограничение времени выполнения 120. Вернуть удостоверение личности после подачи заявки; Собирать и публиковать результаты, когда он заканчивается. Не нормализуйте подсчеты и не делайте биологических выводов.

После успех и кода выхода 0 подтвердите, что приложение собирает оба вывода и что сохраненная таблица и отчет снова открываются. Сравните полные идентификаторы выборки и метрики с Общий базовый уровень и проверьте хэш входа до и после удаленного вычисления. Этот пример Direct SSH прошел эти проверки.

Завершена работа Direct SSH с идентификатором и каталогом работы

Открыта удаленная таблица RNA-seq QC со всеми двенадцатью образцами

Загрузите пример Таблица QC и Методы докладов. Эти необработанные проверки не заменяют нормализацию, обзор экспериментального дизайна или дифференциально-экспрессионный анализ. Медиана положительного счета исключает нули.

Вернуться на работу после перезапуска приложения

Откройте тот же проект и разговор, затем используйте Compute или запись работы Background tasks. Сравните Job ID с оригинальным чеком, прежде чем предпринимать действия. Восстановленная работа – это существующая удаленная рабочая нагрузка. Начало нового разговора или повторная отправка запроса не является шагом к восстановлению.

Отдельный контрольный пункт подготовки, показанный ниже, работал при перезапуске локального приложения. Приложение восстановило тот же идентификатор вакансии, а затем собрало журнал завершения. Ожидание закончилось нормально; Этот снимок экрана демонстрирует восстановление, а не отмену или научные вычисления.

Та же подготовительная работа восстановлена после перезапуска заявки

Отменить удаленную работу

Откройте Background tasks, выберите предполагаемую работу и сравните ее Job ID с квитанцией. Back возвращается в список вакансий. Выберите Cancel в подробном виде этой работы, подождите, пока кнопка показывает Cancelling, затем используйте Refresh для подтверждения Cancelled. Закрытие подробного диалога или окончание ответа на разговор не отменяет удаленную рабочую нагрузку.

Контрольно-пропускной пункт подготовки ниже был отменен в результате этого контроля. После этого удаленный процесс был независимо подтвержден и отсутствовал. Его существующий журнал оставался читаемым. Это не означает, что отмененный анализ дал полный результат. Проверьте сохраненные файлы перед их использованием.

Отмена подтверждена для выбранной работы по подготовке

Отправьте через Slurm и проверьте распределение

  1. Откройте хост в Settings → Compute, выберите Execution mode → Edit → Slurm → Save и снова откройте настройку, чтобы подтвердить его. Только Detected scheduler не выбирает режим.
  2. Включите и выберите хост в предполагаемом разговоре. Подтвердите раздел сайта / учетную запись и читаемый учет планировщика перед проведением длительного анализа.
  3. Запрос ресурсов с использованием одной директивы #SBATCH --option=value на строку. В этом примере:
#SBATCH --partition=local
#SBATCH --cpus-per-task=1
#SBATCH --mem=1G
#SBATCH --time=00:03:00

Используйте раздел вашего сайта, а не копируйте local без каких-либо условий. Работа 120-секундный тайм-аут нагрузки отделена от трехминутного лимита распределения планировщика. Они не определяют, как скоро начнется работа в очереди. Приложение управляет именем вакансии, рабочим каталогом и путями stdout/stderr.

  1. Сохраняйте приложения Job ID и scheduler_job_id. Идентификатор планировщика может прибыть после получения первоначального представления; Попросите агента прочитать статус спасенной работы. Не отправляйте снова только потому, что в первом квитанции отсутствует идентификатор планировщика.
  2. Сравните запрашиваемые ресурсы с фактическим распределением. В примере запрашивался один процессор для каждой задачи и 1 GiB; Slurm записывал одну задачу и два выделенных логических процессора. Используйте запись распределения планировщика при объяснении использования ресурсов.
  3. Дождитесь подтвержденного состояния терминала и соберите файлы, прежде чем публиковать результат. Выходной файл на стороне сервера не устанавливает, что приложение собрало его.

Slurm выбран явно в режиме выполнения хоста

Когда сервер завершает работу, но приложение продолжает ждать

Если в снимке приложения сообщается о last_poll_error, сохраните существующий идентификатор вакансии и попросите указать точную ошибку. Наблюдаемый провал в бухгалтерском учете был:

slurm_poll_failed: Slurm accounting storage is disabled

Если планировщик показывает ExitCode 0:0, но приложение по-прежнему показывает представленный, result_final ложный или не собирает файлы, сохраните оба идентификатора работы и проверьте ошибку опроса. Относитесь к завершению планировщика и сбору результатов приложения как к отдельным этапам.

Приложение все еще ожидает статуса терминала для завершенной рабочей нагрузки Slurm

Попросите администратора кластера предоставить работающий учет sacct для учетной записи и работы. squeue больше не перечисляет работу, что является недостаточным доказательством успеха. Сохраняйте существующий каталог работ и идентификаторы вакансий во время ремонта бухгалтерского учета, а затем снова проверяйте ту же работу. Не отправляйте повторно завершенный анализ, чтобы устранить ошибку мониторинга. Отмена Slurm, восстановление и сбор заявок остаются на рассмотрении до тех пор, пока это требование не будет решено.

Запустите дизайн небольшой белковой последовательности на GPU

Запустите дизайн небольшой белковой последовательности на GPU

Практический пример Проектирование одной последовательности убиквитина с помощью ProteinMPNN на GPU

Используйте общедоступный 1UBQ структура убиквитина для генерации одного кандидата цепочки А с помощью ProteinMPNN. Это проверка удаленного выполнения GPU и инспекции вывода. Он не предсказывает новую структуру и не устанавливает функцию убиквитина.

  1. Выберите подключенный хост в Compute. Проверьте свободную память GPU и текущую нагрузку и подтвердите, что прямое выполнение небольшой задачи разрешено. В кластере, управляемом планировщиком, используйте авторизованный раздел и учетную запись.
  2. Попросите агента подготовить изолированную среду и сохранить инвентарь Python, PyTorch/CUDA и зависимостей. В качестве примера были использованы Python 3.10, PyTorch 2.5.1+cu124 и NumPy 1.26.4. Оригинальный Python хоста имел только процессор PyTorch; Одного обнаружения GPU было недостаточно.
  3. Pin Официальный контроль ProteinMPNN и его входящие весы v_48_020. Запись SHA-256 для скачанной структуры и весов 1UBQ.
  4. Укажите цепочку А., кандидата один, размер партии 1, температуру 0.1, семенной 42 и предел исполнения 180-секундный. Проверьте удаленную команду, показанную приложением, прежде чем утверждать эту операцию.
  5. Требуется стад/стедер, состояние выхода и параметрическое устройство модели. CUDA available=True сам по себе не доказывает вывод, используемый GPU. В этом забеге были записаны parameter_device=cuda:0 и parameter_is_cuda=True.
  6. Проверить сгенерированный FASTA. Самостоятельно проверьте длину, аминокислотный алфавит, соответствие родной цепи и конечные баллы, а затем снова проверьте входной хеш.
ПроверитьРезультат в этом примере
УстройствоNVIDIA A100 80GB PCIe; Параметры модели на CUDA
Длина ввода/выводаНативная цепь А и кандидат оба остатка 76
Алфавит и баллыСтандартный аминокислотный алфавит 20; Конечный счет / глобальный балл 0.8568
Родные матчи42/76; Самостоятельно вычисляемое восстановление 0.5526316
КазньМодель и независимая валидация исключены из 0; Время генерации 0.1949 секунд исключает настройку и выполнение задачи.
Целостность вводаИдентичные структуры SHA-256 до и после

Скачать запись проверки GPU. Емкость 80 GB устройства не является минимальным требованием для этой небольшой задачи. Пиковая память не измерялась. Удаленные журналы и файлы не обеспечивают автоматически полное локальное происхождение Notebook.

В этом примере используется утвержденная прямая команда SSH. Более раннее представление Slurm вернуло Недействительный счет, поэтому этот результат не подтверждает работу Slurm GPU. Проверить наличие раздела/авторизации учетной записи при возникновении такой ошибки; Не меняйте услуги планировщика или обходить требуемую очередь.

Устранение SSH и ошибок в работе

Прочитайте как код, так и его сообщение. Ошибка подключения, отказ планировщика и неудавшаяся программа требуют разных исправлений. Идентификаторы ниже описывают состояние соединения и вычисления работы; Интерфейс может отображать описательное сообщение вместо исходного кода.

Подключение и удаленные файлы

Сообщение или идентификаторЗначениеСледующий шаг и проверка успеха
The SSH host key is unknown. Verify it in a terminal before connecting.У SSH-клиента нет надежного ключа для этого хоста и порта.Проверьте отпечатки пальцев с администратором, установите доверие хоста к системе SSH-клиента, затем повторите Add или Test and save. Не отключайте проверку ключа хоста.
Permission denied (publickey)аутентификация ключа SSH не удалась; Классификатор удаленных файлов рассматривает это как connection.Проверьте пользователя, файл идентификации, псевдоним хоста и ssh-агент. Подтвердите, что администратор авторизует этот ключ. Использовать Test and saveТогда Retry probe.
Connection refused / No route to host / Подключение timeoutТранспорт SSH не может достичь или установить соединение.Проверьте наличие хоста, порта, сети / VPN и сервера. Повторите соединение после исправления причины.
ENOENT / not_foundЗапрашиваемого удаленного пути не существует.Проверьте путь на удаленном хосте, а не на ноутбуке. Откройте правильный каталог или файл.
EACCES / EPERM / permissionПодключенная учетная запись не может выполнять эту операцию файловой системы.Попросите администратора хоста подтвердить доступ или выбрать авторизованный каталог царапин. повторите ту же операцию.
outside_rootsПроверка пути удаленного файла отвергла неабсолютный путь или контрольные символы.Предоставьте абсолютный удаленный путь без линейных разрывов / управляющих символов. Проверьте полную ошибку, если другой слой отклонил путь.

Записи о работе

Код ошибкиЗначениеСледующее действие
approval_deniedЗапрошенная операция не получила одобрения.Проанализируйте предполагаемую команду и масштаб. Отправьте новый запрос только в том случае, если вы хотите разрешить эту работу.
host_unreachableПриложение не смогло достичь или подтвердить операцию хоста.Восстановление связи и зондирование хоста. Если представление могло произойти, проверьте наличие существующей удаленной работы перед повторным использованием.
invalid_resourcesАргументы ресурса или директивы Slurm не прошли проверку.Прочитайте названное поле / директиву. Следуйте принятому формату ресурсов, ограничениям кластеров и любым ограничениям директив, управляемым приложениями. Повторите после исправления этого поля.
dispatch_failedЗапуск или отправка планировщика не удались.Читаем скриншоты и любые sbatch Сообщение. Проверьте раздел / счет, окружение и команду. Проверьте квитанцию планировщика перед отправкой снова.
job_failedРабота завершилась неудачно.Прочитайте код выхода и stdout/stderr, исправьте программу или окружение, затем запустите небольшой тест.
timeoutСвязь, команда или работа превысили лимит. Этот код также может сопровождать недействительные timeout_seconds.Используйте сопроводительное сообщение, чтобы отличить недействительный ввод от прошедшего времени. Проверьте существующее состояние работы, прежде чем менять лимит или перезапускать.
process_vanishedОтслеживание или восстановление уже не могли найти ожидаемый процесс.Проверьте каталог удаленной работы, журналы и историю планировщика. Установить, прекратилась ли работа или была завершена, прежде чем создавать замену.

last_poll_error Ошибка мониторинга, а не окончательный статус работы. Кроме того, harvest_error означает, что сбор результатов требует внимания. Вычисления, возможно, уже закончились. Сохраните идентификатор вакансии, восстановите связь и проверьте существующую вакансию, прежде чем начинать другую копию.

Успешное восстановление должно показать конечное состояние предполагаемой работы, интерпретируемый статус выхода и доступный результат. Для Slurm проверьте идентификатор работы планировщика, а также идентификатор работы приложения. Если ошибка сохраняется, следуйте за Сообщите об ошибке или спросите сообщество. Включите режим выполнения, оба идентификатора, когда они доступны, полную ошибку и дезинфицированный выдержку из журнала.

Для аутентификации SSH-ключа/конфигурации предоставьте удобный ключ или псевдоним хоста и проверьте соединение перед отправкой. Сбор результатов Slurm требует рабочего учета для выбранного счета; Следуйте вышеприведенным проверкам, если приложение не может урегулировать работу.

Источники: Вычислить коды работы и поля записей, SSH/файловая классификация ошибок, Валидация представления Slurm.