1
09. Использование Docker для разработки и использования системы SAPFOR
xnpster edited this page 2024-01-12 17:13:58 +00:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Что такое Docker?

Это система контейнеризации, которая позволяет создавать образы (Image) - изолированные от хостовой ОС окружения. Из образа впоследствии можно запустить контейнер, в котором могут запускаться различный приложения, установленные в образе. Подробнее изучить технологию лучше всего по ссылке. Docker прост и очень удобен в использовании.

Docker Images для SAPFOR

Стандарт в индустрии - иметь 2 образа

  1. Образ для разработки (sapfor-builder (скоро появится)) - в него предустановленны все необходимые пакеты для сборки исходного кода SAPFOR и ничего лишнего. Предполагается что репозиторий SAPFOR'a хранится в файловой системе хостовой ОС (например по пути /path/to/src), тогда исполняя в терминале команду для запуска контейнера из образа

docker run -it -v /path/to/src:/sapfor yatancuyu/sapfor-builder

флаг -v монтирует директорию /path/to/src в хостовой ОС к директории /sapfor внутри контейнера, при этом все изменения совершаемые с файлами внутри контейнера видны и на хостовой ОС, и наоборот. Из чего например следует, что можно выполнять в хостовой ОС git pull и изменения отобразятся и в контейнере. Используя плагин Dev Containers для VSCode можно подключиться к контейнеру, после чего разрабатываться точно также как и на хостовой ОС.

  1. Образ для развертывания (sapfor beta) - предполагается что в этом образе SAPFOR уже скомпилирован и готов к работе. Также возможно что в будущем в образе будет установлен и DVM (когда автор данного гайда разберется с его компиляцией), а в файловой системе образа можно будет найти задачи из пакета NAS Parallel Benchmarks

Для чего это может быть полезно

  1. Для разработки - особенно полезно пользователям Mac на M1/2/3, запуская контейнер с флагом --platform linux/amd64 можно разрабатывать SAPFOR прямо как на x86_64, только нужно установить Docker Desktop именно для Apple Silicon. Также может быть полезно для воспроизводимости каких-то ошибок связанных с компиляцией или использованием. Если процесс разработки у вас уже настроен - пользоваться Docker'ом для разработки не имеет необходимости.
  2. Для непосредственного использования - образ для развертывания может быть установлен и запущен одной командой, при этом пользователю не нужно ничего компилировать, он сразу получает доступ ко всему функционалу системы SAPFOR, а затем, возможно, запускать в рамках одного компьютера полученные распараллеленные программы с помощью DVM. Удобно для пользователей, которые только знакомятся с системой, хотят ее попробовать, не тратя время на разбирательство как скомпилировать программу и саму компиляцию.