Векторный процессор

Поделись знанием:
Перейти к: навигация, поиск

Векторный процессор — это процессор, в котором операндами некоторых команд могут выступать упорядоченные массивы данных — векторы. Отличается от скалярных процессоров, которые могут работать только с одним операндом в единицу времени. Абсолютное большинство процессоров являются скалярными или близкими к ним. Векторные процессоры были распространены в сфере научных вычислений, где они являлись основой большинства суперкомпьютеров начиная с 1980-х до 1990-х. Но резкое увеличение производительности и активная разработка новых процессоров привели к вытеснению векторных процессоров из сферы повседневных процессоров.

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





Иллюстрация работы

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

повторить цикл 10 раз
  прочитать следующую инструкцию и декодировать
  получить первое слагаемое
  получить второе слагаемое
  сложить
  сохранить результат
конец цикла

Для векторного процессора алгоритм будет значительно отличаться:

прочитать следующую инструкцию и декодировать
получить 10 первых слагаемых
получить 10 вторых слагаемых
сложить
сохранить результат

Реализация Cray расширила возможности вычислений, позволяя выполнять несколько различных операций сразу. Для примера рассмотрим код, складывающий 2 набора чисел и умножающий на третий, в Cray эти операции осуществились бы так:

прочитать следующую инструкцию и декодировать
получить 10 чисел
получить 10 чисел
получить 10 чисел
сложить и умножить их
сохранить результат

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

Программирование под гетерогенные вычислительные архитектуры

Различные машины были спроектированы с применением и традиционных и векторных процессоров, например, Fujitsu AP1000 и AP3000. Программирование для таких гетерогенных машин может оказаться затруднительным, так как разработка программ, которые используют наилучшим образом характеристики разных процессоров, повышает нагрузку на программиста. Это увеличивает сложность кода и снижает его переносимость, так как участки кода, требуемые для каждого из процессоров, будут чередоваться на протяжении всей программы[1]. Балансировка рабочей нагрузки приложений на процессорах может быть проблематичной, особенно если учесть, что они обычно имеют различные характеристики производительности. Существуют различные концептуальные модели для решения этой проблемы, например, использование языка координации и программных стандартных блоков (библиотек и/или функций высшего порядка). Каждый блок может иметь различные собственные реализации для каждого типа процессоров. Программист просто использует эту абстракцию, а интеллектуальный компилятор выбирает лучшую реализацию, основываясь на контексте[2].

Напишите отзыв о статье "Векторный процессор"

Примечания

  1. Kunzman, D. M.; Kale, L. V. (2011), [dx.doi.org/10.1109%2FIPDPS.2011.377 "Programming Heterogeneous Systems"], 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and Phd Forum, сс. 2061, ISBN 978-1-61284-425-1, DOI 10.1109/IPDPS.2011.377 
  2. John Darlinton, Moustafa Ghanem, Yike Guo, Hing Wing To (1996), "[citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.37.4309 Guided Resource Organisation in Heterogeneous Parallel Computing]", Journal of High Performance Computing Т. 4 (1): 13–23, <citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.37.4309> 

См. также

Ссылки

  • [ei.cs.vt.edu/~history/Parallel.html The History of the Development of Parallel Computing] (from 1955 to 1993)

Отрывок, характеризующий Векторный процессор

– Яйца… яйца курицу учат… – сквозь счастливые слезы проговорил граф и обнял жену, которая рада была скрыть на его груди свое пристыженное лицо.
– Папенька, маменька! Можно распорядиться? Можно?.. – спрашивала Наташа. – Мы все таки возьмем все самое нужное… – говорила Наташа.
Граф утвердительно кивнул ей головой, и Наташа тем быстрым бегом, которым она бегивала в горелки, побежала по зале в переднюю и по лестнице на двор.
Люди собрались около Наташи и до тех пор не могли поверить тому странному приказанию, которое она передавала, пока сам граф именем своей жены не подтвердил приказания о том, чтобы отдавать все подводы под раненых, а сундуки сносить в кладовые. Поняв приказание, люди с радостью и хлопотливостью принялись за новое дело. Прислуге теперь это не только не казалось странным, но, напротив, казалось, что это не могло быть иначе, точно так же, как за четверть часа перед этим никому не только не казалось странным, что оставляют раненых, а берут вещи, но казалось, что не могло быть иначе.
Все домашние, как бы выплачивая за то, что они раньше не взялись за это, принялись с хлопотливостью за новое дело размещения раненых. Раненые повыползли из своих комнат и с радостными бледными лицами окружили подводы. В соседних домах тоже разнесся слух, что есть подводы, и на двор к Ростовым стали приходить раненые из других домов. Многие из раненых просили не снимать вещей и только посадить их сверху. Но раз начавшееся дело свалки вещей уже не могло остановиться. Было все равно, оставлять все или половину. На дворе лежали неубранные сундуки с посудой, с бронзой, с картинами, зеркалами, которые так старательно укладывали в прошлую ночь, и всё искали и находили возможность сложить то и то и отдать еще и еще подводы.
– Четверых еще можно взять, – говорил управляющий, – я свою повозку отдаю, а то куда же их?
– Да отдайте мою гардеробную, – говорила графиня. – Дуняша со мной сядет в карету.
Отдали еще и гардеробную повозку и отправили ее за ранеными через два дома. Все домашние и прислуга были весело оживлены. Наташа находилась в восторженно счастливом оживлении, которого она давно не испытывала.
– Куда же его привязать? – говорили люди, прилаживая сундук к узкой запятке кареты, – надо хоть одну подводу оставить.
– Да с чем он? – спрашивала Наташа.
– С книгами графскими.
– Оставьте. Васильич уберет. Это не нужно.
В бричке все было полно людей; сомневались о том, куда сядет Петр Ильич.
– Он на козлы. Ведь ты на козлы, Петя? – кричала Наташа.
Соня не переставая хлопотала тоже; но цель хлопот ее была противоположна цели Наташи. Она убирала те вещи, которые должны были остаться; записывала их, по желанию графини, и старалась захватить с собой как можно больше.


Во втором часу заложенные и уложенные четыре экипажа Ростовых стояли у подъезда. Подводы с ранеными одна за другой съезжали со двора.
Коляска, в которой везли князя Андрея, проезжая мимо крыльца, обратила на себя внимание Сони, устраивавшей вместе с девушкой сиденья для графини в ее огромной высокой карете, стоявшей у подъезда.
– Это чья же коляска? – спросила Соня, высунувшись в окно кареты.
– А вы разве не знали, барышня? – отвечала горничная. – Князь раненый: он у нас ночевал и тоже с нами едут.
– Да кто это? Как фамилия?
– Самый наш жених бывший, князь Болконский! – вздыхая, отвечала горничная. – Говорят, при смерти.
Соня выскочила из кареты и побежала к графине. Графиня, уже одетая по дорожному, в шали и шляпе, усталая, ходила по гостиной, ожидая домашних, с тем чтобы посидеть с закрытыми дверями и помолиться перед отъездом. Наташи не было в комнате.
– Maman, – сказала Соня, – князь Андрей здесь, раненый, при смерти. Он едет с нами.
Графиня испуганно открыла глаза и, схватив за руку Соню, оглянулась.
– Наташа? – проговорила она.
И для Сони и для графини известие это имело в первую минуту только одно значение. Они знали свою Наташу, и ужас о том, что будет с нею при этом известии, заглушал для них всякое сочувствие к человеку, которого они обе любили.