Файл: Гетерогенные мультикомпьютерные системы.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 14.03.2024

Просмотров: 27

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Содержание:

Введение

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

В ближайшее время под  эффективным использованием аппаратных средств компьютера будут пониматься применение параллельных алгоритмов. Это связано с замедлением  темпов увеличения тактовой частоты микропроцессоров и стремительным распространением многоядерных микропроцессоров. Под средствами  осуществлении параллельности понимаются языки программирования либо библиотеки, обеспечивающие инфраструктуру параллельных программ.  К ним можно отнести: Occam, MPI, HPF, Open MP, DVM, Open TS, Boost. Thread, Posix Threads.

Гетерогенные вычислительные системы — электронные системы, ис-пользующие разные виды вычислительных блоков. Вычислительными блоками этой системы может быть как процессор общего назначения (GPP), так и процессор специального назначения, к примеру, цифровой сигнальный (DSP) или графический (GPU) процессоры, также сопроцессор и логика ускорения, а именно специализированная интегральная схема (ASIC) или программируемая пользователем вентильная матрица (FPGA). Так гетерогенная вычислительная платформа включает процессоры с различными наборами команд (ISA). Потребность на увеличение гетерогенности в вычислительных системах, не в полном объеме необходим в высокопроизводительных, высокореакционных системах, взаимодействующих с другим окружением. Ранее технологические достижения и масштабируемость частоты давали возможность большинству компьютерных приложений увеличивать производительность при отсутствии структурных изменений либо аппаратного ускорения. Хотя эти достижения сохраняются, их воздействие на современные приложения не так существенно, как воздействие других препятствий, таких как стена памяти и стена мощности.

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


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

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

Для реализации поставленной цели необходимо выполнить ряд задач:

- Изучить гетерогенную архитектуру для CPU, GPU и DSP;

- Рассмотреть очереди и диспетчеризация задач;

- Изучить программные компоненты HSA;

- Рассмотреть поддержку технологий программирования и архитектуры HSA и т.д.

Глава 1. Характеристика гетерогенной мультикомпьютерной системы

1.1 Гетерогенная архитектура для CPU, GPU и DSP

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

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

С целью улучшения архитектуры гетерогенных систем и уменьшения сложности в модификациях программирования в 2012 году был создан фонд HSA Foundation, занимающийся исследованием спецификаций Heterogeneous System Architecture (HSA). В HSA Foundation, в настоящее время включает такие компании, как AMD, ARM, Imagination Technologies, MediaTek, Texas Instruments, Samsung Electronics и Qualcomm.


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

В об݅ще݅м случае поддержание ко݅ге݅ре݅нт݅но݅ст݅и - это сл݅ож݅ная задача. Правда, возможность процессоров различных ти݅по݅в, а именно: CPU, GPU, DS݅P дает возможность исключить работу с одними и теми же данными из общей памяти, что превышает производительность и экономию энергии. В среде HSA пр݅ил݅ож݅ен݅ия, которые работают на CP݅U, могут производить определенные операции на GP݅U/݅DS݅P с такой же легкостью как и на процессорах типа CPU.[2] Чтобы данные операции производились необходимо использовать указатели в данных в общей памяти и произвести обновление соответственных задач.

В данном приложение необходимо произвести операции вв݅од݅а-݅вы݅во݅да для перевода да݅нн݅ых на устройство, предназначенное для вычисления, а после этого произвести запуск вычислительного процесса. HS݅A дает возможность разработчикам программного обеспечения создавать приложения без глубокого изучения работы ускорителей различного типа, расположенных в целевой си݅ст݅ем݅е, таких как GP݅U, DSP, видео кодеры/декодеры и прочие акселераторы.

1.2 Общая виртуальная память

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


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

С целью упрощения работы операционной системы и приложений на платформе HSA применяется набор таблиц, который содержит виртуальные страницы, этот набор является унифицированным для всех типов процессоров, это дает возможность производить обмен между различными устройствами для вычисления. Так, указатели, которые являются одинаковыми становятся одинаковыми физическими адресами.[3]

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

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

Так как в операционной системе используется механизм подкачки страниц, то это дает возможность работать пользовательским процессам с данными, объем памяти которых, превышает размер физической памяти, но обычные GPU имеют возможность производить работу только невыгружаемой основной памятью — драйвер и операционная система обязаны отметить определенную границу в физической памяти, произвести его замену как невыгружаемый, а так же реализовать отдельное виртуальное адресное пространство только для работы ускорителя. Возможность подкачки страниц в CPU дает использование такого же большого пространства, как и в HSA при использовании механизма страничных прерываний адресов и избавлении от невыгруженной памяти.


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

Достигнуть увеличения производительности, не прибегая к увеличению сложности программного кода, позволяет использование единого адресного пространства, а также страничного прерывания, которое обеспечивается в архитектуре HSA. Так же использование структурных данных, которые содержат указатели, например списки и деревья, которые одновременно доступны в и CPU, и GPU возможно при задействовании общего адресного пространства.

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

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

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

Для того чтобы помочь компьютеру, несколько разгрузить оперативную память, операционная система Windows создает специальный файл, который в дальнейшем выполняет роль виртуальной памяти.[5]

Этот файл называют также файлом подкачки – pagefile.sys, он располагаться на жестком диске компьютера и содержит атрибуты скрытый и системный.

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

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

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