FlyElephant как инструмент для вычислений на C++, R, Python или Octave
Приветствую всех!
Сегодня я расскажу о возможностях платформы FlyElephant для ученых и инженеров, которые в своей работе проводят различные вычисления на C++, R, Python или Octave. Это могут быть научные расчеты, анализ данных, моделирование или другие задачи. 22 января я буду проводить вебинар “Введение в FlyElephant”, на котором детально расскажу о платформе FlyElephant, а сегодня в общих чертах познакомлю вас с ней и покажу процесс проведения расчетов.
FlyElephant — это платформа, которая предоставляет ученым готовую вычислительную инфраструктуру для проведения расчетов, автоматизирует рутинные задачи и позволяет сосредоточиться на основных вопросах исследований.
В качестве вычислительного ресурса мы пока используем облако Azure. Но наша команда продолжает работу над постройкой собственного вычислительного кластера, подключением облака Amazon, ряда суперкомпьютеров и GRID систем, что позволит значительно расширить наши вычислительные мощности. Отвечу на один часто задаваемый вопрос: “А чем вы лучше облаков?”. Конечно, каждый пользователь может взять облако, самостоятельно развернуть инфраструктуру, настроить ее, поддерживать систему и изменять при необходимости. В варианте использования FlyElephant обо всех этих времязатратных аспектах позаботимся мы! Вы же получаете готовую инфраструктуру заданных параметров с необходимым программным обеспечением. Кроме того, в будущем вы не только сможете проводить расчеты в облаке, но использовать для них суперкомпьютеры и другие специализированные вычислительные ресурсы, которые не всегда находятся в открытом доступе. Также при наличии собственных вычислительных мощностей, кластера или облака, вы сможете интегрироваться с платформой и при необходимости расширять ваши мощности или, наоборот, сдавать в аренду те ресурсы, которые не используются.
Платформа FlyElephant — это не только инструмент, который помогает вам проводить вычисления, а и сообщество. Одной из приоритетных задач нашей команды на этот год является постройка сильного сообщества вокруг FlyElephant. Мы хотим объединить в одном месте специалистов из различных областей, которые для решения задач нуждаются в использовании больших вычислительных мощностей, помочь им обмениваться знаниями и помогать друг-другу с решением проблем, а также объединяться для совместной работы над проектами. Пока работа над этим функционалом кипит, я приглашаю всех в наш slack-чат.
Какие языки и инструменты уже доступны?
Пользователи могут запускать вычислительные задачи, написанные при помощи С++ (с поддержкой OpenMP), R, Python (v2 & v3), Octave и Scilab на серверах с количеством ядер от 1 до 32 и оперативной памятью до 448 ГБ. Кроме этого, участники программы бета-тестирования сейчас помогают нам отладить работоспособность следующих инструментов: Java (v7 & v8), Julia, OpenFOAM, GROMACS, Blender и Public API. Следующие на очереди — инструменты для визуализации результатов расчетов, а также базы данных для сбора и хранения больших объемов информации. Мы активно работаем над расширением нашего каталога, поэтому, если у вас есть необходимость в каких-то инструментах, сообщите, и мы постараемся их быстро интегрировать в платформу.
Как запустить задачу?
На примере программ, написанных с использованием C++, R, Python или Octave, мы сейчас рассмотрим весь процесс работы в FlyElephant. Для начала работы нам необходимы три вещи.
Первое — необходимо зарегистрироваться.
Если вы этого еще не сделали, то регистрация здесь. После регистрации на вашем счету будет 10$; воспользовавшись промо-кодом 127575063277 и, введя его в Личном кабинете, вы можете пополнить счет еще на 100$.
Второе — необходим репозиторий с кодом вашей программы.
Мы подготовили несколько тестовых репозитория, которые можно брать за основу:
- github.com/FlyElephantTeam/gcc-example
- github.com/FlyElephantTeam/R-example
- github.com/FlyElephantTeam/python-example
Репозиторий должен содержать файлы с кодом вашей программы, а также два обязательных файла build.sh и run.sh. В первом необходимо прописать команды, которые должны быть выполнены на сервере перед запуском вычисления (это может быть какая-то донастройка окружения, загрузка данных или еще что-то). Во втором файле прописываются команды запуска самой вычислительной программы.
Третье — загрузить данные.
Если для вашего вычисления необходимо работать с какими-то данными, которые не находятся в репозитории или во внешнем источнике, то вам нужно загрузить их в разделе Хранилище.
Когда все подготовлено, можно запускать вычисление. Для этого необходимо зайти в систему и выполнить следующие шаги:
- Переходим в раздел “Вычисления” и выбираем нужный для нас язык или инструмент.
- Перейдя в него, нажимаем кнопку “Запуск задачи”.
- Появляется форма, в которой необходимо заполнить поля следующим образом:
- Название задачи — даем задаче название.
- Выберите файл данных — если необходимо, указываем файл, который необходимо загрузить на сервер для выполнения задачи. Вы можете выполнить задачу без загрузки дополнительного файла; выбрать файл, который был загружен в «Хранилище»; выбрать файл, который является результатом выполнения другой задачи. Файл будет загружен на сервере в корневую директорию вашего репозитория.
- Название файла результата — указываем название файла, в который будет сохранен программой результат. Этот файл будет загружен в “Хранилище” и доступен в нем, а также в деталях задачи.
- Репозиторий — указываем адрес репозитория, в котором находится ваша программа. Сейчас доступна работа только с публичными репозиториями, но в ближайшем обновлении можно будет работать и с закрытыми.
- Параметры сервера — выбираем конфигурацию сервера, на котором будет запущена программа для выполнения. Возможно запустить задачу на сервере с количеством ядер от 1 до 32 и оперативной памятью до 448 ГБ. В ближайших релизах здесь также будут обновления, связанные с возможностью более гибкого конфигурировая вычислительной инфраструктуры и возможностью запуска задачи не только в облаке, но и на HPC кластере или в GRID.
- Нажимаем кнопку “Запустить задачу”. Задача стартует, автоматически выполняется и становится доступной в разделе “Задачи”. Здесь можно посмотреть детали выполнения, результат и логи.
Таким образом, выполнив несколько шагов, вы получаете готовый результат.
Мы продолжаем трудиться над улучшением схемы работы и в ближайшем будущем расширим список поддерживаемых инструментов и вычислительных ресурсов. А чтобы этот список пополнился нужными для вас инструментами, приглашаем принять участие в опросе.
Наша команда открыта для сотрудничества. Будем рады сотрудничеству с владельцами вычислительных ресурсов и производителями специализированного программного обеспечения. Мы активно поддерживаем ученых и готовы бесплатно предоставлять необходимое количество ресурсов для проведения ваших открытых научных исследований. Если вы заинтересованы в использовании FlyElephant, мы с удовольствием проведем DEMO презентацию работы платформы.
Присоединяйтесь к нашим страницам в соц. сетях (Facebook, Twitter, LinkedIn) и следите за последними новостями команды FlyElephant.
Для нас очень важны любые замечания, предложения и отзывы. Мы ответим на них в комментариях к этому посту или на почте: support@flyelephant.net.