Speaker
Description
Развитие технологий искусственного интеллекта и больших данных (big data) явилось стимулом разработки новых инструментальных средств организации и автоматизации рабочих процессов (workflow). Проект Jupyter – один из основных проектов автоматизации рабочих процессов в области искусственного интеллекта. Ключевыми парадигмами проекта являются клиент-серверная модель и графическая интерактивная среда в стиле REPL (read-eval-print loop), реализованные в форме web-интерфейса. Использование многооконного интерфейса и возможность работы с несколькими языками программирования (в дополнение к языку Python) в новой реализации JupyterLab позволяют расширить применение технологий проекта Jupyter для решения широкого круга прикладных и учебных задач компьютерного моделирования. Однако при решении таких задач необходим не только развитый пользовательский интерфейс, но и средства организации высокопроизводительных вычислений. Обычным методом организации вычислений в среде JupyterLab является размещение её серверной компоненты непосредственно на вычислительном ресурсе. Но этот метод не применим в случае параллельной работы одного приложения JupyterLab с несколькими вычислительными ресурсами или отсутствия технической возможности развертывания серверной компоненты Jupyter на компьютере, где будут производиться вычисления. Целью данной работы является демонстрация технологии гибкого взаимодействия приложения JupyterLab с разнообразными вычислительными ресурсами, которая решает описанную проблему.
Предлагаемая технология взаимодействия с вычислительными ресурсами из среды JupyterLab основана на совместном применении платформы распределенных вычислений Everest (everest.distcomp.org), набора средств разработки многозадачных приложений на языке С++ проекта Templet (templet.ssau.ru) и jupyter-ноутбуков со сценариями рабочих процессов для проведения вычислительных экспериментов. Нами реализованы интерактивные рабочие процессы на основе ноутбуков JupyterLab, в которых были задействованы несколько распределенных вычислительных ресурсов. Например, в рабочем процессе анализа хаотического поведения динамической системы с использованием вычисления показателей Ляпунова по алгоритму Бенеттина к интерфейсной части приложения подключались виртуальные машины корпоративного облака Самарского университета под управлением Windows 7 с развернутым пакетом Maple 17. Сервер JupyterLab запускался в публичном сервисе MyBinder.org либо через самостоятельно развернутую службу The Littlest JupyterHub (TLJH). Ноутбуки сценариев рабочих процессов и другой необходимый код загружались на сервер JupyterLab автоматически при сборке docker-образа сервисом MyBinder.org (или с использованием пакета nbgitpuller в TLJH) из git-репозиториев, размещенных на платформе GitHub.org
В результате нами реализован гибкий доступ к вычислительным ресурсам из среды JupyterLab с возможностью удаленной работы через web-интерфейс; развертыванием сервера JupyterLab отдельно от вычислительных ресурсов; использованием сложных сценариев рабочего процесса, предусматривающих параллельные вычисления на нескольких разнородных вычислительных ресурсах.