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

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 не подтверждает успех. Сохраните существующий каталог работ и оба идентификатора вакансий, затем обновите одну и ту же работу после восстановления бухгалтерского учета и проверьте ее окончательное состояние и собранные файлы.

Запустите дизайн небольшой белковой последовательности на 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.

Этот пример работает через Direct SSH. Для работы 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.