У нас есть компьютерная симуляция, которую мы сейчас делаем доступной онлайн. Наша текущая идея архитектуры системы заключается в следующем и проиллюстрирована в конце этого поста:
- Том Docker содержит данные, которые состоят из ввода и вывода симуляций.
- Веб-приложение в контейнере Docker, обращающееся к тому Docker, служит интерфейсом, с помощью которого пользователи могут загружать входные данные моделирования, загружать выходные данные моделирования, запускать моделирование и запрашивать состояние моделирования.
- Каждое моделирование выполняется в контейнере Docker с использованием MPI и PETSc. Симуляция примерно занимает 1 час на 32 ядрах. Контейнер моделирования также может содержать небольшой веб-сервер для управления и мониторинга моделирования.
- Приложение будет полностью простаивать большую часть времени, но когда кто-то хочет проводить симуляции, он / она может захотеть запустить (большое) количество симуляций с помощью веб-приложения.
В настоящее время мы планируем реализовать это с помощью Docker Cloud и Amazon Web Services. Вопрос о контейнерах Docker для моделирования: Как мы можем запустить несколько мощных контейнеров Docker через веб-приложение и завершить их, как только закончится моделирование?