Добавлен: 06.04.2023
Просмотров: 48
Скачиваний: 2
Рис. 3. Мультипроцессорная система типа NUMA
Ни один из процессоров не может обратиться к удаленной памяти без взаимодействия с удаленным процессором, которому она принадлежит
Взаимодействие между этими двумя процессорами осуществляется в форме обмена сообщениями. Системы такого типа называются системами с распределенной памятью и высокоскоростным протоколом передачи сообщений.
CC-NUMA (cache coherent NUMA) - система с кэш-когерентным доступом к неоднородной памяти. В отличие от классической архитектуры NUMA, при использовании кэш-когерентного доступа к неоднородной памяти все процессоры объединены в один узел, причем первый уровень иерархии памяти образует кэш-память процессоров. Архитектура ccNUMA поддерживает когерентность кэш памяти внутри узла аппаратно. Аппаратная когерентность кэш-памяти означает, что не требуется никакого программного обеспечения для поддержки актуальности множества копий данных.
В системе сс-NUMA физически распределенная память объединяется, как в любой другой SMP-архитектуре, в единый массив. Не происходит никакого копирования страниц или данных между ячейками памяти. Нет никакой программно-реализованной передачи сообщений. Существует просто одна карта памяти, с частями, физически связанными медным кабелем, и очень умные (в большей степени, чем объединительная плата) аппаратные средства. Аппаратно-реализованная кэш-когерентность означает, что не требуется какого-либо программного обеспечения для сохранения множества копий обновленных данных или для передачи их между множеством экземпляров операционной системы и приложений. Со всем этим справляется аппаратный уровень точно так же, как в любом SMP-узле, с одной копией операционной системы и несколькими процессорами.
При использовании большого числа кэшей возникает та же проблема что и в архитектуре UMA: необходимо поддерживать актуальность кэшированных данных. Практически это означает, что изменение любой ячейки памяти, копия которой находится в некотором кэше, должно быть повторено для всех её копий. Учитывая, что число копий может быть велико, это становится сложной технической задачей[4].
2.2 Практическое применение многопроцессорных систем
С появлением доступных многопроцессорных систем возник у пользователей: как использовать мощность компьютерной техники. При использовании обыкновенного программного обеспечения количество процессоров системы в основном простаивает.
Практическим примером может служить, например преобразование музыкальных файлов flac → ogg. Можно, например использовать консольный запрос:
for i in *.flac ; do oggenc --quality=10 "$i" ; done
Но при большом количестве файлов простаивающие процессоры слегка вызывают раздражение. Для того, чтобы оценить мощность производительной техники нужно параллельное программное обеспечение.
Предлагается использовать хорошую программу на языке Lisp2D, которая запускает параллельно конвертацию файлов, заключённых в директориях. Количество одновременно запущенных задач будет всегда равно количеству процессоров.
(('freemans defclass) defvar
n signal lock nwaitsignal)
('freemans defmethod freemans ()
(nil setq
n (nil nprocs)
signal ('signal newobject)
lock ('lock newobject)
nwaitsignal (0 copy)))
('freemans defmethod enter ()
(lock progn
(nil when (n = 0)
(nwaitsignal += 1)
(signal wait lock))
(n -= 1)))
('freemans defmethod exit ()
(lock progn
(n += 1)
(nil when (nwaitsignal > 0)
(nwaitsignal -= 1)
(signal send))))
('string defmethod flactoogg (q freemans)
(nil let (s (d ('dir newobject this)))
(nil while ('s set (d read))
(nil let ((fullname (this + "/" s)))
(nil cond
((s = "."))
((s = ".."))
((fullname regp) ; is a file
(nil let ((ss (s size)))
(nil if (ss > 5)
(nil when (((s part (ss - 5)) lower) = ".flac")
(freemans enter)
(nil fork
(nil if (0 = ("oggenc" system ("--quality=" + q) fullname))
(fullname unlink)
(cerr writeln "crash oggenc for " fullname))
(freemans exit))))))
((fullname dirp) ; is dir
(fullname flactoogg q freemans)))))
(d close)))
("." flactoogg (arg first) ('freemans newobject))
Результатом использования параллельно запущенных процессов станет полноценная загрузка процессоров полезной работой. И огромная экономия личного времени.
ЗАКЛЮЧЕНИЕ
Мультипроцессоры могут использоваться для одновременного запуска большего количества потоков или для ускорения выполнения определенного потока. Запускать больше потоков одновременно легко; потоки просто распределяются между процессорами. К сожалению, обычные пользователи ПК должны запускать только небольшое количество потоков в любой момент времени. Быстрее запустить конкретный поток намного сложнее. Программист должен разделить существующий поток на несколько потоков для выполнения на каждом процессоре. Это становится сложным, когда процессоры должны общаться друг с другом. Одна из главных задач для компьютерных дизайнеров и программистов - эффективно использовать большое количество процессорных ядер.
Другие формы многопроцессорной обработки включают гетерогенную многопроцессорность и кластеры . Гетерогенные мультипроцессоры , также называемые асимметричными мультипроцессорами , используют отдельные специализированные микропроцессоры для отдельных задач и обсуждаются далее. В кластерной многопроцессорной обработке каждый процессор имеет собственную систему локальной памяти. Кластеризация также может относиться к группе компьютеров, соединенных вместе в сети, на которой запущено программное обеспечение для совместного решения большой проблемы.
С позиции реализации такого симбиоза открываются следующие способы повышения производительности:
1) увеличение емкости памяти внутри кристалла;
2) увеличение количества арифметико-логических устройств;
3) введение блоков обработки мультимедийных данных, ранее использовавшихся, например, в сигнальных микропроцессорах;
4) интеграция на кристалле функций управления памятью и периферийными устройствами, для исполнения которых в традиционных микропроцессорах используются наборы микросхем («чипсеты»);
5) интеграция на кристалле интерфейсов сетевых и телекоммуникационных систем, что позволяет соединять эти микропроцессоры друг с другом и телекоммуникационными и вычислительными сетями без дополнительных адаптеров.
Принципы универсальных машинных вычислений (по фон Нейману) легли в основу компьютеров первых поколений. На их основе работает и большая часть нынешних компьютеров. Но эти аксиомы существенно ограничивают способы реализации машинного счета. Они диктуют последовательную (команда за командой) реализацию. Такое ограничение сильно сужает разнообразие архитектурных решений и лишает их перспектив к наращиванию производительности за счет увеличения числа одновременно работающих над одной задачей процессоров.
Искусство творения компьютеров имеет свои вершины мастерства. Многопроцессорные высокопараллельные архитектуры, выходя за пределы юрисдикции классической модели последовательного счета, требуют от создателей нестандартного, многомерного, но очень здравого мышления. (Здесь мысли могут взлетать очень высоко, чтобы затем разбиться о жесткие реалии.) В этой запредельной, рекордной области компьютеростроения архитектурных тайн и сегодня остается значительно больше, чем найдено решений. И тем ценнее достижения, прошедшие проверку практикой. Через положительный опыт открывается путь к новейшим многокомпонентным архитектурам, способным к полному погружению в микромир новых СБИС-технологий и обладающим за счет этого огромным вычислительным потенциалом.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
- Бирюков А. Я., Голован Н. И., Медведев И. Л., Набатов А. С., Фищенко Е. А. Решающие поля многопроцессорных вычислительных систем. В кн.: Многопроцессорные вычислительные системы с общим потоком команд. М., ИПУ, 2016. - с. 22-32.
- Затуливетер Ю. С., Медведев И. Л. О групповом параллелизме и двойственной реализации параллельных вычислений. В кн.: вопросы кибернетики. Вып. 48. Вычислительные машины и системы с перестраиваемой структурой. М., Н. С. по комплексной проблеме "Кибернетика" АН СССР, 2016. - с. 44-63.
- Медведев И. Л. Принципы построения многопроцессорных вычислительных систем с общим потоком команд. В кн.: Многопроцессорные вычислительные системы с общим потоком команд. М., ИПУ, 2014. - с. 5-21.
- Медведев И. Л. Проектирование ядра структуры параллельных процессоров. М., Институт проблем управления, 2012. - 60 с.
- Медведев И. Л., Фищенко Е. А. Об одном способе описания программно-доступных средств параллельного процессора. В кн.: Вопросы кибернетики. Вып. 92. М., НС по комплексной проблеме "Кибернетика" АН СССР, 2012. - с. 43-67.
- Фищенко Е. А . Выбор системы команд для многопроцессорной вычислительной системы с общим потоком команд. В кн.: Многопроцессорные вычислительные системы с общим потоком команд. М., ИПУ, 2013. - с. 33-39.
- Экспедиционные геофизические комплексы на базе многопроцессорной ЭВМ ПС-2000. / В. А. Трапезников, И. В. Прангишвили, А. А. Новохатный, В. В. Резанов. - Приборы и системы управления, 2011. - с. 29-31.
- Прангишвили И. В., Виленкин С. Я., Медведев И. Л. Многопроцессорные вычислительные системы с общим управлением. - М., Энергоатомиздат, 2013. - 312 с.
- Фищенко Е. А. Принципы построения мнемокода многопроцессорных вычислительных систем с общим управлением. В сб.: Всесоюзное научно-техническое совещание "Проблемы создания и использования высокопроизводительных машин". М., ИПУ, 2012. - с.108-110.
-
- Затуливетер Ю. С., Медведев И. Л. О групповом параллелизме и двойственной реализации параллельных вычислений. В кн.: вопросы кибернетики. Вып. 48. Вычислительные машины и системы с перестраиваемой структурой. М., Н. С. по комплексной проблеме "Кибернетика" АН СССР, 2016. - с. 44-63.
-
Медведев И. Л. Принципы построения многопроцессорных вычислительных систем с общим потоком команд. В кн.: Многопроцессорные вычислительные системы с общим потоком команд. М., ИПУ, 2014. - с. 5-21. ↑
-
Фищенко Е. А. Принципы построения мнемокода многопроцессорных вычислительных систем с общим управлением. В сб.: Всесоюзное научно-техническое совещание "Проблемы создания и использования высокопроизводительных машин". М., ИПУ, 2012. - с.108-110. ↑
-
Затуливетер Ю. С., Медведев И. Л. О групповом параллелизме и двойственной реализации параллельных вычислений. В кн.: вопросы кибернетики. Вып. 48. Вычислительные машины и системы с перестраиваемой структурой. М., Н. С. по комплексной проблеме "Кибернетика" АН СССР, 2016. - с. 44-63. ↑