Д • 7universum.com
Лд UNIVERSUM:
ЛЛД ТЕХНИЧЕСКИЕ НАУКИ
ПРИНЦИПЫ ОРГАНИЗАЦИИ МНОГОЗАДАЧНОГО РЕЖИМА РАБОТЫ ПАРАЛЛЕЛЬНОЙ ПОТОКОВОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ
Змеев Дмитрий Николаевич
научный сотрудник, Институт проблем проектирования в микроэлектронике
Российской академии наук, 124365, Россия, г. Москва, Зеленоград, ул. Советская, дом 3
Климов Аркадий Валентинович
старший научный сотрудник, Институт проблем проектирования
в микроэлектронике Российской академии наук, 124365, Россия, г. Москва, Зеленоград, ул. Советская, дом 3
Левченко Николай Николаевич
канд. техн. наук, заведующий отделом, Институт проблем проектирования
в микроэлектронике Российской академии наук, 124365, Россия, г. Москва, Зеленоград, ул. Советская, дом 3
Окунев Анатолий Семенович
канд. техн. наук, ведущий научный сотрудник, Институт проблем проектирования в микроэлектронике Российской академии наук, 124365, Россия, г. Москва, Зеленоград, ул. Советская, дом 3
E-mail: [email protected]
PRINCIPLES OF MULTITASKING ORGANIZATION IN THE PARALLEL DATAFLOW COMPUTING SYSTEM
Dmitry Zmejev
Research scientist,
Institute for Design Problems in Microelectronics of Russian Academy of Sciences,
124365, Russia, Moscow, Zelenograd, Sovetskaya Street, 3
Принципы организации многозадачного режима работы параллельной потоковой вычислительной системы // Universum: Технические науки : электрон. научн. журн. Змеев Д.Н. [и др.]. 2015. № 10 (21) . URL: http://7universum.com/ru/tech/archive/item/2673
Arkady Klimov
senior research scientist,
Institute for Design Problems in Microelectronics of Russian Academy of Sciences,
124365, Russia, Moscow, Zelenograd, Sovetskaya Street, 3
Nikolay Levchenko
Candidate of Engineering sciences, head of the department, Institute for Design Problems in Microelectronics of Russian Academy of Sciences,
124365, Russia, Moscow, Zelenograd, Sovetskaya Street, 3
Anatoly Okunev
Candidate of Engineering sciences, a leading research scientist, Institute for Design Problems in Microelectronics of Russian Academy of Sciences,
124365, Russia, Moscow, Zelenograd, Sovetskaya Street, 3
АННОТАЦИЯ
Параллельная потоковая вычислительная система (ППВС), которая реализует новую потоковую модель вычислений с динамически формируемым контекстом, разрабатывается в Институте проблем проектирования
в микроэлектронике Российской академии наук.
ППВС представляет собой многоядерную масштабируемую
вычислительную систему. В состав каждого вычислительного ядра системы входят исполнительное устройство, процессор сопоставления, коммутатор токенов, блок хэширования. Между ядрами в системе передаются единицы информации в виде токенов.
Одним из важных режимов, в котором должна эффективно функционировать ППВС, является режим многозадачной работы, позволяющий решаться одновременно нескольким задачам (подзадачам) без потери производительности системы в целом.
Организация такого режима работы системы опирается в основном на аппаратуру и требует значительно меньшего взаимодействия с хостмашиной, чем у классических высокопроизводительных систем.
Многозадачный режим работы системы тесно связан с решением проблемы переполнения памятей вычислительного ядра.
Первый уровень аппаратной поддержки многозадачного режима работы системы заключается в реализации возможности такой работы на уровне подзадач.
Если при работе в многозадачном режиме возникает угроза переполнения памятей процессора сопоставления нескольких вычислительных ядер, то вступает в действие второй уровень аппаратной поддержки многозадачного режима работы системы.
Дано описание двух вариантов решения проблемы преодоления переполнения памятей процессора сопоставления в вычислительных ядрах. Затем описываются некоторые основные режимы работы вычислительной системы с использованием средств поддержки многозадачности.
Описанные режимы работы системы были реализованы в одном из вариантов программной блочно-регистровой модели. Проведенные исследования продемонстрировали работоспособность разработанного подхода по обеспечению многозадачного режима.
ABSTRACT
The parallel dataflow computing system (PDCS), which implements a new dataflow computing model with dynamically formed context, is developing in the Institute for Design Problems in Microelectronics of Russian Academy of Sciences.
PDCS is a scalable, multi-core computing system. Each computational core includes an execution unit, mapping processor, commutator of tokens and the unit of hashing. Between the cores in the system the information is transmitted in the form of tokens.
One of the important modes, in which the PDCS must effectively to function, is a multitasking mode, which allows to execute several tasks (subtasks) with no loss of performance of the system as a whole.
The organization of such mode of operation of the system relies mainly on hardware and requires much less interaction with the host machine than the classic high-performance systems.
The multitasking is closely linked with the solving of problem of memory overflow of computational core.
The first level of hardware support of multitasking consists in the operation at the level of sub-tasks.
If, working in multitask mode, there is a risk of memory overflow in mapping processors of several cores, then a second level of hardware support is starting to operate.
The article describes two solutions to the problem of memory overflow of mapping processor in computational cores. Then some of the basic modes of operation of a computing system are describes with the use of means of multitasking support.
The described modes have been implemented in one of the variants of program model. Studies have demonstrated the efficiency of the developed approach for multitasking support.
Ключевые слова: многозадачный режим, токен-заглушка, параллельная потоковая вычислительная система.
Keywords: multitasking, token-stub, parallel dataflow computing system.
Параллельная потоковая вычислительная система (ППВС) «Буран», которая реализует новую потоковую модель вычислений с динамически формируемым контекстом, разрабатывается в ИППМ РАН [4; 7].
Потоковая модель вычислений обладает рядом преимуществ по сравнению с применяемыми в традиционных вычислительных системах моделях вычислений и основана на активации вычислительных квантов по готовности данных [3]. Вычислительный квант — это программа, которая выполняется до конца без привлечения дополнительной информации, то есть без приостановки процесса вычисления на подкачку дополнительных внешних данных. Различные вычислительные кванты между собой взаимодействуют и сохраняют состояние только через отправку сообщений, активирующих новые кванты. В узле-отправителе определяется и передаваемое значение, и адрес получателя. В этом состоит принципиальное отличие предлагаемого
подхода от традиционного, когда вычислительный процесс сам запрашивает нужные ему данные из памяти или у других процессов.
ППВС «Буран» представляет собой многоядерную масштабируемую вычислительную систему. В состав каждого вычислительного ядра системы входят исполнительное устройство, процессор сопоставления, коммутатор токенов, блок хэширования. Между ядрами в системе передаются единицы информации в виде токенов. Токеном называется структура, в состав которой входит данное, контекст, определяющий положение операнда в виртуальном адресном пространстве задачи, а также набор служебных полей.
Одним из важных режимов, в котором должна эффективно функционировать ППВС «Буран», является режим многозадачной работы, позволяющий решаться одновременно нескольким задачам (подзадачам) без потери производительности системы в целом.
Организация такого режима работы системы опирается в основном на аппаратуру и требует значительно меньшего взаимодействия с хостмашиной, чем у классических высокопроизводительных систем.
Многозадачный режим работы системы тесно связан с решением проблемы переполнения памятей процессора сопоставления (ПС) — памяти ключей (ПК), памяти дескрипторов (ПД) и памяти токенов (ПТ). В отличие от проектов классических потоковых вычислительных систем [8; 9], задачи и подзадачи в ППВС можно останавливать, откачивать и подкачивать (возвращая их в работу), что поддержано на аппаратном уровне введением в систему команд ППВС специальных команд управления задачами.
Первый уровень аппаратной поддержки многозадачного режима работы системы заключается в реализации возможности такой работы на уровне подзадач. Такая работа позволяет не ограничивать развертывание графа подзадач текущей задачи, как это делалось в ранних реализациях потоковых систем [9], а останавливать и откачивать определенные подзадачи в случае переполнения памятей ПС без ограничения развертывания графа подзадач. Подзадачи для откачки или подкачки выбираются на основе анализа
статистической информации о состоянии этих подзадач на данный момент или по запросу управляющей части программы, в которой программист указывает номера подзадач и устанавливает их приоритет. Это позволяет наиболее активные подзадачи держать в памяти ПС, а наименее активные откачивать в память вычислительного ядра (ОП), освобождая тем самым место в ПК, ПД и ПТ ПС для более активных (рисунок 1). Таким образом, в ПС поддерживается практически идеальный «рабочий набор» подзадач, что позволяет снизить потери производительности и решить проблему блокировки по переполнению памятей ПС.
Команды ОС
Регистрация задач и подзадач
Процессор
сопоставления
/• "ч
U
S
I- го
<и о
I
•11
О
X
со
г Л г Л
ПК ПД
ч J к )
Зад1
ПТ
ЗадМ
ОП
Задача 1
Задача N
Г Л
БРП
АТЗ АТП АТЗиП
ГО
5
н
го
го
0
о. го S о
1 * I«
-6- с
ш
а.
пакет
Рисунок 1. Функциональная схема аппаратной поддержки многозадачного
режима
ПК — память ключей
ПД — память дескрипторов
ПТ — память токенов
ОП — память вычислительного ядра
БРП — блок регулирования параллелизма
АТЗ — аппаратная таблица задач АТП — аппаратная таблица подзадач
При переполнении памятей ПС одного из вычислительных ядер (ВЯ) первый уровень аппаратной поддержки многозадачного режима работы системы может быть реализован не только с помощью операционной системы, но и блоком регулирования параллелизма (БРП) [2; 5] в автономном режиме, используя разные методы разделения задачи на подзадачи.
Если при работе в многозадачном режиме возникает угроза переполнения памятей ПС нескольких ВЯ, то вступает в действие второй уровень аппаратной поддержки многозадачного режима работы системы. ОС принимает решение о снятии одной из задач, решаемых в данный момент времени на ППВС. Снятие задачи подразумевает ее останов и откачку токенов, принадлежащих данной задаче, в ОП.
Вышеописанный алгоритм работает до того момента, пока в ППВС останется только одна активная задача, то есть все ресурсы системы будут предоставлены ей. Возможны разные способы работы при возникновении переполнения памятей ПС в случае выполнения одной активной задачи. Если выполняется одна задача и возникло переполнение памятей ПС, то сначала из данного ПС откачивается часть отложенных токенов. Они помещаются по команде БРП в специальную область ОП, связанную с активной задачей, и будут подкачаны обратно только в том случае, когда в памяти ПС будет достаточное количество свободных ячеек. Откачка отложенных токенов из ПС приводит к некоторому замедлению решения задачи, но не прекращает его.
Действия по откачке отложенных токенов продолжаются до тех пор, пока память ПС не переполнится записанными токенами (токенами, которые при поиске не нашли себе парный токен в ПК ПС либо не исчерпали своей кратности). В этом случае фактически происходит останов вычислений в ПС конкретного ВЯ, что может в дальнейшем привести к останову вычислений и в других ВЯ. В этом случае для дальнейшего продолжения решения задачи на ППВС необходимо откачать из переполнившейся памяти ПС часть записанных токенов. Для того чтобы не нарушить основной принцип работы
ППВС, состоящий в том, что приходящий в ПС токен должен сравниться со всеми записанными токенами этого ПС, можно предложить два варианта откачки переполняющих память ПС токенов.
Первый вариант заключается в том, что, как только возникает переполнение ПС по записанным токенам, он начинает работать в специальном режиме «динамической откачки» записываемых в него токенов. Если при переполнении ПС на его вход пришел, например, «первый» токен (после сигнала о переполнении ПС), то он сравнивается со всеми записанными в ПС токенами. В зависимости от результата поиска, либо образуется пакет, либо он записывается в ОП (так как в памяти ПС нет свободных ячеек). Предположим, что отклика не было и «первый» токен записался в ОП. Так как записанные токены теперь будут располагаться не только в памяти ПС, но и в ОП ВЯ, при приходе следующего («второго») токена сначала проводится поиск в ПС обычным образом, и при отсутствии отклика «первый» токен подкачивается из ОП и производится сравнение его ключа с ключом «второго» токена. При этом подкачиваемый «первый» токен не записывается в ячейку ПК, сравнение производится «на проходе», так как память ПС переполнена. Если совпадение есть, то дальнейшие действия диктуются типом совпавших токенов. Такой метод откачки не помещающихся в памяти ПС токенов является затратным по времени. Фактически замедление работы одного ПС пропорционально количеству откачанных в ОП токенов.
Второй вариант решения проблемы преодоления переполнения памятей ПС (реализованный в ППВС) по записанным токенам строится на предположении, что приходящий в ПС токен не обязательно должен сравниваться со всеми записанными в ПС токенами и для каждого приходящего в ПС токена совсем не обязательно подкачивать все откачанные ранее из памяти этого ПС записанные токены. Алгоритм работы ППВС при переполняющейся памяти ПС в этом случае выглядит следующим образом. В случае переполнения памяти ПС из неё откачивается группа токенов. Эта группа должна быть связана с определенной областью контекста. Область
контекста — это ключ с маской, причем номер области можно определить старшими разрядами ключа, не закрытыми маской, а младшие разряды ключа закрыть маской, и они будут определять диапазон виртуальных адресов, принадлежащих этой области контекста.
Вместо откачанных токенов, в ПК и ПТ ПС записывается токен-заглушка для определенной подзадачи или фрагмента задачи. Токены, приходящие в ПС и взаимодействующие с этим токеном-заглушкой, автоматически откачиваются в специальную область ОП, они называются токенами, откачанными по заглушке. Эти откачанные в ОП токены будут возвращаться в ПС только тогда, когда в память ПС будут подкачаны все ранее откачанные записанные токены этой подзадачи или фрагмента задачи.
Токены определенной подзадачи могут быть подкачаны обратно в следующих случаях:
• в памяти ПС освободилось достаточно места для того, чтобы подкачать ранее откачанные токены;
• в ОП накопилось большое количество токенов подзадачи, откачанных по заглушке, что свидетельствует о повышении интенсивности обращений к этой подзадаче. В том случае, если в памяти ПС недостаточно места для возвращения данной подзадачи, из памяти ПС откачивается другая подзадача.
Возможны следующие режимы работы ППВС:
• многозадачный режим работы без подзадач;
• многозадачный режим работы с включением номера подзадачи в ключ;
• многозадачный режим работы с использованием областей.
Рассмотрим реализацию многозадачного режима работы без подзадач.
В данном режиме операционная система при управлении ресурсами использует в качестве логической единицы задачу, причем прямое взаимодействие между задачами невозможно — межзадачная связь осуществляется через операционную систему.
Задача может быть остановлена, откачана, подкачана, для нее могут быть подготовлены и введены в работу новые данные. Всеми действиями управляет
ОС, хотя некоторые из них могут быть инициированы при помощи системных запросов непосредственно из задач.
Перед началом выполнения задача должна быть зарегистрирована в ОС и в БРП. Регистрация задач прежде всего важна для выполнения команд, связанных с откачкой и подкачкой токенов и пакетов. Откачиваемые токены и пакеты разных задач необходимо записывать в разные буферные области памяти ОП.
Информацию о выполняющихся задачах БРП хранит в специальной аппаратной таблице задач (АТЗ). Регистрация задачи сообщает БРП о том, что задача под таким номером будет выполняться в ППВС, и БРП сопоставляет в своей АТЗ номер зарегистрированной задачи и набор буферов для откачанных токенов и пакетов этой задачи.
Операция регистрации задачи подразумевает создание дескриптора задачи, содержащего начальные адреса, и запись его в соответствующие таблицы. По окончании регистрации задачи в АТЗ операционной системе выдается подтверждение, и задача считается зарегистрированной.
Блок регулирования параллелизма, принимая от ОС команду управления задачами, извлекает из нее номер задачи и использует этот номер как адрес в АТЗ, в которой хранится дескриптор этой задачи.
Далее из дескриптора извлекается нужная для выполнения конкретной команды информация о том, в какие области ПТ следует размещать откачиваемые токены той или иной задачи.
Описанные режимы работы системы были реализованы в одном из вариантов программной блочно-регистровой модели [1; 6]. Проведены исследования функционирования аппаратно-программных средств обеспечения многозадачного режима на тестовых задачах, которые продемонстрировали работоспособность разработанного подхода, связанного с особенностями функционирования процессора сопоставления при работе с токенами, имеющими кратность. То есть в том случае, когда токен будет уничтожаться при полном исчерпании его кратности.
Список литературы:
1. Змеев Д.Н., Левченко Н.Н., Окунев А.С. и др. Средства визуализации процесса прохождения задачи в программной модели ППВС // Материалы Международной научно-технической конференции «Многопроцессорные вычислительные и управляющие системы (МВУС-2009). — Дивноморское, Россия, ТТИ ЮФУ, 2009. — Т. 1. — С. 49—52.
2. Климов А.В., Левченко Н.Н., Окунев А.С. Аппаратно-программные средства преодоления неравномерной загрузки отдельных устройств в параллельной потоковой вычислительной системе // Материалы Международной научно-технической конференции «Многопроцессорные вычислительные и управляющие системы» в составе мультиконференции “Проблемы информационно-компьютерных технологий и мехатроники”». — Таганрог: Издательство ТТИ ЮФУ, 2007. — Т. 1. — С. 92—95.
3. Климов А.В., Левченко Н.Н., Окунев А.С. Преимущества потоковой модели вычислений в условиях неоднородных сетей // Информационные технологии и вычислительные системы. — 2012. — № 2. — С. 36—45.
4. Климов А.В., Левченко Н.Н., Окунев А.С. и др. Суперкомпьютеры, иерархия памяти и потоковая модель вычислений // Программные системы: теория и приложения: электрон. научн. журн. — 2014. — T. 5. — № 1(19). — С. 15—36.
5. Левченко Н.Н., Окунев А.С. Об одном подходе к применению векторного функционального устройства в ППВС // Материалы Международной научно-технической конференции «Суперкомпьютерные технологии: разработка, программирование, применение» (СКТ-2010). — Таганрог — Москва, 2010. — Т. 1. — С. 124—126.
6. Левченко Н.Н., Окунев А.С., Змеев Д.Н. Расширение возможностей поведенческой блочно-регистровой модели параллельной потоковой вычислительной системы // Материалы Пятой Международной молодежной научно-технической конференции «Высокопроизводительные вычислительные системы (ВПВС 2008)». — Таганрог, Россия, 2008. — С. 371—374.
7. Стемпковский А.Л., Левченко Н.Н., Окунев А.С. и др. Параллельная потоковая вычислительная система — дальнейшее развитие архитектуры и структурной организации вычислительной системы с автоматическим распределением ресурсов // Информационные технологии. — 2008. — № 10. — С. 2—7.
8. Arvind and R.S. Nikhil. Executing a Program on the MIT Tagged-Token Dataflow Architecture // IEEE Trans. Comput. Mar. — 1990. — Vol. 39. № 3. — P. 300—318.
9. Silc J., Robic B., Ungerer T. Asynchrony in parallel computing: From dataflow to multithreading // Parallel and Distributed Computing Practices. — 1998. — Vol. 1. № 1. — P. 3—30.
References:
1. Zmeev D.N., Levchenko N.N., Okunev A.S., Hodosh L.S. Visualization tools for the process of task running in the programming model of PDCS. Mnogoprocessornye vychislitel'nye i upravljajushhie sistemy (MVUS-2009). [Multi-processor computing and control systems (MCCS-2009)]. Divnomorskoe, TTI IuFU Publ., 2009, vol. 1, pp. 49—52. (In Russian).
2. Klimov A.V., Levchenko N.N., Okunev A.S. Hardware/Software tools of overcoming the uneven loading of the individual devices in parallel dataflow computing system. “Mnogoprocessornye vychislitel'nye i upravljajushhie sistemy” v sostave mul'tikonferencii “Problemy informacionno-komp'juternyh tehnologij i mehatroniki”. [“Multiprocessor computing and control systems” within the “Problems of information and computer technologies and mechatronics” conference]. Taganrog, TTI IuFU Publ., 2007, vol. 1, pp. 92—95. (In Russian).
3. Klimov A.V., Levchenko N.N., Okunev A.S. The advantages of dataflow calculation model in heterogeneous networks conditions. Informatsionnye tekhnologii i vychislitel'nye sistemy [Information technologies and computing systems]. 2012, no. 2, pp. 36—45. (In Russian).
4. Klimov A.V., Levchenko N.N., Okunev A.S., Stempkovskij A.L. Supercomputers, memory hierarchy and the dataflow computing system. Programmnye sistemy: teoriya i prilozheniya. [Program systems: theory and applications]. 2014, vol. 5, no. 1(19), pp. 15—36. (In Russian).
5. Levchenko N.N., Okunev A.S. About one approach to vector functional unit
application in PDCS. Superkomp'juternye tehnologii: razrabotka,
programmirovanie, primenenie (SKT-2010). [Supercomputer technologies: design, programming, application (SCT-2010)]. Taganrog — Moscow, 2010, vol. 1, pp. 124—126. (In Russian).
6. Levchenko N.N., Okunev A.S., Zmeev D.N. Enhancement of capability of the behavioral block-rated model of the parallel dataflow computing system. Vysokoproizvoditel'nye vychislitel'nye sistemy (VPVS 2008). [High-Performance Computing Systems (HPCS 2008)]. Taganrog, Russia, 2008, pp. 371—374. (In Russian).
7. Stempkovskij A.L., Levchenko N.N., Okunev A.S., Cvetkov V.V. Parallel dataflow computing system: further development of architecture and structural organization of the computing system with automatic distribution of resources. Informacionnye tehnologii [Information technologies]. 2008, no. 10, pp. 2—7. (In Russian).
8. Arvind and R.S. Nikhil. Executing a Program on the MIT Tagged-Token Dataflow Architecture. IEEE Trans. Comput. Mar. 1990, vol. 39, № 3, pp. 300—318.
9. Silc J., Robic B., Ungerer T. Asynchrony in parallel computing: From dataflow to multithreading. Parallel and Distributed Computing Practices. 1998, vol. 1, № 1, pp. 3—30.