Назад | Перейти на главную страницу

Управление конфигурациями для поддержки научных вычислений

Последние несколько лет я занимался разработкой и обслуживанием системы прогноза прибрежных волн. Наша команда только что получила значительный грант на дальнейшее развитие, и в результате мы пользуемся возможностью рефакторинга многих компонентов старой системы.

Мы также получим новый сервер для запуска модели, поэтому я пользуюсь этой возможностью, чтобы рассмотреть, как мы настраиваем систему. В основном, шаги, которые необходимо выполнить, следующие:

  1. Необходимо загрузить и установить некоторые стандартные пакеты и библиотеки, такие как компиляторы и базы данных.

  2. Некоторые специализированные научные модели необходимо загружать и компилировать из исходного кода, поскольку они обычно не предоставляются в виде пакетов.

  3. Необходимо создать новых пользователей для управления базами данных и запуска моделей.

  4. Набор скриптов, управляющих взаимодействием модели с базой данных, необходимо извлечь из системы управления исходным кодом и установить.

  5. Для создания прогнозов необходимо настроить Crontab для запуска скриптов через регулярные промежутки времени.

Я размышлял о применении таких инструментов, как Puppet, Capistrano или Fabric, для автоматизации вышеуказанных шагов. Кажется вполне возможным реализовать большую часть вышеперечисленных функций, за исключением нескольких случаев использования, которые меня интересуют:

Я рассматриваю это как возможность изучить новый инструмент, который поможет мне автоматизировать рабочий процесс, но я не уверен, с какого инструмента мне следует начать. Если бы кто-либо из членов сообщества мог предложить инструмент, который поддерживал бы вышеуказанный рабочий процесс и проблемы, специфичные для научных вычислений, я был бы очень благодарен.

Наш производственный сервер будет работать под управлением Linux, но поддержка OS X будет бонусом, поскольку позволит команде разработчиков установить тестовые установки вне VirtualBox.

Какой дистрибутив Linux вы используете и о каком программном обеспечении, которое «обычно не поставляется в виде пакетов»? Мне кажется, что один из способов упростить автоматизацию этого шага - это исправить корневую проблему и собрать пакеты! Это может занять немного времени, но это значительно упростит будущую работу администратора для вас и сообщества.

Большинство менеджеров пакетов представляют собой просто серию скриптов для очистки управления программным обеспечением. В этой роли они очень искусны в написании сценариев компиляции, распространения, установки и обновления программного обеспечения. Даже если вы не заинтересованы в достаточном участии в продвижении своего программного обеспечения, в большинстве дистрибутивов есть способы создания наложений или добавления репозиториев вашего собственного программного обеспечения, и они должны быть переносимыми.

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

Здесь может быть хорошая информация от людей, но вы также можете спросить научное сообщество, поскольку на осеннем собрании AGU каждый год обычно есть доклады и плакаты по этому поводу. Большая часть этого связана с управлением рабочими процессами для данных наук о Земле, которые могут иметь более строгие требования, чем усилия по прогнозированию.

Я знаю, что я видел несколько презентаций по этому поводу на последней встрече, но новая абстрактная система AGU абсолютно отстой, пытаясь пройти через большое количество рефератов и / или просмотреть по дисциплинам. (а субдисциплина? не шанс).

Некоторые люди использовали системы управления рабочим процессом (например, Кеплер и Таверна), но я не думаю, что они вникли в системные аспекты происхождения так, как это сделали специалисты по сеткам и вычислительным кластерам. Даже специалисты в области наук о Земле, которые, казалось, относились к происхождению более серьезно, чем к другим областям, по-прежнему были сосредоточены на вводе данных больше, чем на типе процессора / ОС / установленных версиях библиотек и т. Д.

Термины, используемые для описания этой области, встречаются повсюду - я видел, как это называется «кибернетическая инфраструктура» (в основном это относится к NSF), «научная информатика» и т. Д. Извините, я не могу быть более конкретным, поскольку это не совсем моя область. (жалуясь о отсутствие документации для такого рода вещей да, но я занимаюсь обслуживанием данных после того, как они были сгенерированы).