Проект Templet

акторный фреймворк для запуска задач
на множестве ядер, кластерах и в облаках
templet.ssau.ru

Инструменты пользователя

Инструменты сайта


о_проекте

Это старая версия документа!


О проекте

В проекте изучаются методы разработки программ, способных эффективно исполняться на произвольной совокупности вычислительных ресурсов: вычислительных и графических ядрах процессора; отдельных компьютерах, кластерах и облаках, объединенных сетью Интернет.

В чем актуальность разработки таких программ? С одной стороны, они используются в мега-проектах для решения задач, требующих сверхбольшой вычислительной мощности. Здесь важен объем вычислений, который сложно или невозможно выполнить даже на суперкомпьютере. Широко известный пример – это обработка данных эксперимента на Большом адронном коллайдере по обнаружению бозона Хигса.

С другой стороны, даже в небольших проектах часто требуется большая вычислительная мощность. В этом случае решающим фактором является себестоимость вычислительных ресурсов. Получить недорогие вычислительные ресурсы можно за счет использования «не специализированных» ресурсов в период их временного простоя по основному назначению. Примером является зонтичный проект BOINC, который объединяет исследователей из разных отраслей знаний и обычных добровольцев, предоставляющих исследователям свои компьютеры для вычислений посредством сети Интернет.

Помимо пользователей персональных компьютеров и мобильных устройств, простаивающие ресурсы во временное использование могут предоставить облачные провайдеры в виде бесплатных или недорогих виртуальных машин. Другой пример – кластеры и суперкомпьютеры. Обычно это высокозагруженные системы, но в силу их большой производительности объем простаивающих ресурсов также значителен и может быть использован. У предприятий, где много компьютеризированных рабочих мест, также велик объем простаивающих ресурсов. Например, в ночные часы компьютеры предприятия потенциально доступны для решения производственных вычислительных задач.

Наш проект ставит целью популяризацию перечисленных выше подходов использования вычислительных ресурсов через сеть Интернет. Для этого мы развиваем оригинальную технологию программирования в парадигме акторов и задач, упрощающую организацию вычислений на произвольной совокупности ресурсов, в первую очередь в образовательных целях и для автоматизации научных исследований, а в перспективе – для решения широкого круга прикладных задач.

Направления исследований

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

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

Модель вычислений

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

Точное и привычное для программистов описание последовательного вычислительного процесса – это алгоритм. Последовательные алгоритмы самодостаточны в том смысле, что не привязаны к конкретному механизму выполнения. Для описания вычислительного процесса мы используем последовательные недетерминированные алгоритмы специальной структуры, распараллеливание которых позволяет получить искомые программы.

Таким образом, программирование алгоритма для исполнения на произвольной совокупности вычислительных ресурсов понимается как эквивалентное преобразование исходного алгоритма (последовательного либо параллельного) к новому алгоритму специальной структуры.

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

Наш подход на основе математической модели вычислительного процесса можно рассматривать как альтернативу языкам описания потоков работ (CWL и др.); промежуточному программному обеспечению (HTCondor и др.); набору высокоуровневых алгоритмических скелетов с индивидуальными моделями исполнения (map-reduce и др.).

Направления исследования проекта в области модели вычислений

  1. Исследование семантики модели с использованием математического аппарата темпоральной логики Лампорта для точного понимания смысла «распараллеливания» в нашей модели.
  1. Разработка прикладных и обобщенных параллельных алгоритмов (алгоритмических скелетов), а также приемов программирования в терминах модели.
  1. Разработка методов анализа параллельных алгоритмов, ориентированных на используемую в проекте модель вычислений.
о_проекте.1644239245.txt.gz · Последнее изменение: 2022/02/07 13:07 (внешнее изменение)