Как запустить удалённое ядро Wolfram с ноутбука через VPN
VPN только передаёт соединение. Спланируйте права на ядро, запуск по SSH, удалённый исполняемый файл и пути к файлам до первого вычисления.
Вы подключаете VPN, открываете блокнот и ожидаете, что тяжёлая ячейка выполнится на сервере. На практике туннель передаёт только пакеты. Он не устанавливает вычислитель, не выдаёт лицензию и не выбирает, на какой машине выполняется код. Это три отдельные вещи, и рабочему процессу с удалённым ядром нужны все три, прежде чем первое вычисление будет надёжным.
Миф: подключение к VPN и есть настройка
VPN обеспечивает сетевой путь между ноутбуком и сервером. Это полезно и часто необходимо, потому что канал запуска и соединение с ядром должны достигать удалённого узла. Он ничего не говорит о том, существует ли на этом узле ядро Wolfram, разрешает ли лицензия второй одновременный процесс и настроен ли интерфейс на его использование.
Управляемый ноутбук может содержать только интерфейс, а право привязано к серверу. Бывает и наоборот: настольная лицензия на ноутбуке не даёт права на ядро на общей инфраструктуре. Ни один из случаев не решается повторным подключением туннеля.
Проверьте это предположение заранее. Вычислите $MachineName в новом блокноте и сравните ответ с ожидаемым узлом. Если он возвращает имя ноутбука, ячейка выполнялась локально, как бы исправно ни выглядел VPN.
Отделите интерфейс от вычислителя
Интерфейс — это окно: он редактирует ячейки, отображает вывод и сохраняет файл блокнота. Ядро — это процесс, который вычисляет выражения и хранит определения в памяти. Закрытие интерфейса не перемещает ядро, а сохранение блокнота не сохраняет состояние ядра.
После подключения удалённого ядра расположение файла блокнота и рабочий каталог ядра — разные вещи. Directory[] сообщает каталог вычислителя, и это тот путь, который важен для Import, Export и относительных имён файлов. Набор данных рядом с блокнотом на ноутбуке не виден ядру, работающему на другой машине.
Решите, как данные попадут на сервер, прежде чем писать анализ: общее смонтированное расположение, одобренный шаг передачи или база данных, к которой сервер имеет прямой доступ. Этот выбор влияет на воспроизводимость, потому что блокнот, зависящий от пути на ноутбуке, не сработает в следующий раз, когда его запустит кто-то другой.
Запустите ядро через одобренный канал
Руководство по удалённым ядрам Wolfram описывает добавление записи ядра, выбор удалённой машины и запуск через SSH. Путь к исполняемому файлу и аргументы в примере относятся к рабочему процессу этого продукта; адаптируйте их к узлу и версии, которые называет администратор, а не вставляйте без изменений.
Идентичность узла — часть настройки. Проверьте ключ узла SSH через процесс организации, используйте выданный метод аутентификации и держите закрытые ключи и пароли вне файлов блокнота, которые передаются или попадают в репозиторий. Блокнот с командой запуска и паролем — это утечка учётных данных, а не удобство.
Не открывайте слушатель WSTP в интернет как кратчайший путь. Поддерживаемый шаблон — запуск через SSH, который держит канал ядра внутри аутентифицированного соединения. Если сетевая команда одобрила другой транспорт, используйте его, но открытый порт вычислителя считайте изменением проекта, а не шагом устранения неполадок.
Сначала проверьте права, данные и размер вывода
Подтвердите с владельцем лицензии, что сервер может запускать ядро для этого пользователя и что одновременные сеансы разрешены. Удалённые вычисления часто лицензируются отдельно от настольного интерфейса, и неудачный запуск из-за прав выглядит как неудачная команда SSH, пока кто-нибудь не прочитает сообщение сервера.
Затем оцените размер результата. Ядро, возвращающее выражение в несколько гигабайт, отправляет его по каналу запуска и каналу ядра в интерфейс, что может заблокировать или исчерпать память ноутбука. Держите тяжёлую агрегацию на сервере и возвращайте сводки либо записывайте большие результаты в путь на сервере и передавайте их осознанно.
Запишите путь к исполняемому файлу, аргументы запуска и рабочий каталог в заметках о настройке блокнота. Тогда следующий пользователь воспроизведёт эту схему, а не будет заново выяснять, какой из пяти возможных путей использует сервер.
Диагностируйте этапы по порядку
Пять этапов должны пройти успешно, и у каждого своя проверка. Начните с ноутбука и остановитесь на первой ошибке, а не меняйте несколько настроек сразу:
nc -vz research.example.edu 22
ssh -v [email protected] 'hostname; command -v wolframscript'
ssh [email protected] 'wolframscript -code "$MachineName"'Неудачная проверка TCP указывает на маршрутизацию, DNS или разрешённые назначения VPN. Успешная проверка TCP при неудачном входе по SSH указывает на аутентификацию или политику ключа узла. Вход, который работает, но не находит исполняемый файл, указывает на установку ядра или путь, переданный интерфейсу. Ядро, которое запускается, но никогда не подключается, указывает на аргументы запуска или локальный межсетевой экран.
Сохраните первую значимую ошибку и отправьте этапы на стороне сервера администратору, которому принадлежит эта машина. Повторное создание записи ядра скрывает, какой этап на самом деле не прошёл, и выбрасывает доказательства, нужные администратору.
В итоге вам нужно окно, которое вы узнаёте, вычислитель, который вы можете назвать, и согласованный маршрут для кода и файлов. VPN — один из компонентов этого пути, и чем раньше рабочий процесс это отражает, тем меньше времени уходит на повторное подключение туннеля, который никогда не был проблемой.