Конференции ИВТ СО РАН



VIII Всероссийская конференция молодых ученых по математическому моделированию и информационным технологиям

27 - 29 ноября 2007 года, Новосибирск

Тезисы докладов


Информационные технологии

Реализация фрагментированной асинхронной модели вычислений в системе параллельного программирования

Арыков С.Б.

Институт вычислительной математики и математической геофизики СО РАН (Новосибирск)

Важнейшем решением при проектировании системы параллельного программирования является выбор модели вычислений, которая будет использоваться при разработке программ. Для конструирования параллельных программ наиболее подходящей является асинхронная модель вычислений, поскольку она позволяет представлять алгоритмы в максимально непроцедурной форме. Однако она требует больших накладных расходов на управление при исполнении. Поэтому для системы параллельного программирования Аспект, разрабатываемой в ИВМиМГ, для исполнения асинхронных программ была разработана специальная фрагментированная модель вычислений.

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

При реализация фрагментированной модели необходимо принять два ключевых проектных решения:

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

Локальные информационные переменные представляются приватными переменными класса, а входные/выходные информационные переменные - приватными ссылками. Все управляющие переменные также являются приватными. Для доступа к информационным переменным автоматически генерируются inline-функции доступа, которые помимо возврата данных могут производить проверку корректности обращения (например, проверку на выход за границы индекса).

Для каждой триггер-функции генерируется открытая функция типа bool, а для каждой операции и управляющего оператора - соответствующие открытые процедуры.

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

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

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



Ваши комментарии
Обратная связь
[ICT SBRAS]
[Головная страница]
[Конференции]

© 1996-2000, Институт вычислительных технологий СО РАН, Новосибирск
© 1996-2000, Сибирское отделение Российской академии наук, Новосибирск