Вычислительные Системы, 05 лекция (от 08 октября)

Материал из eSyr's wiki.

Версия от 07:38, 9 октября 2007; Esyr01 (Обсуждение)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Предыдущая лекция | Следующая лекция

Cyber 205 (CDC) --- в CDC работал Крей, пока не образовал свою фирму, эту же систему делали ученики Крея (параллельно с учителем). В этой машине не было регистров (ни векторных, ни скалярных). Тем не менее, векторные операции выполнялись лучше, чем у Крея. Это сделано за счёт более высокого параллелизма (interleaving) памяти. У Крея оно тоже было, но не так сильно. Проигрывает Сайбер в плане сложности устройства.

Устройство: Есть память, есть функциональные устройства. На функциональные устройства каждый такт надо подавать данные a_i, b_i, e_i, f_i. Всё зависит от сочетания времени работы ступени и времени работы блока памяти. Пусть время работы ступени — 1 такт, и данные нужно подавать каждый такт — 4 слова, и записывать результат — 2 такта. Пусть блок памяти работает 10 тактов (в среднем меньше, но так как происходит регенерация, ...) Сколько нужно блоков памяти, чтобы это обеспечить? Чтобы мне со сдвигом на один такт можно было брать десять слов, то нужно десять блоков (через такт после выдачи 9 блока можно выдавать 10-е слово с 0-го блока). Нужно 10 блоков, чтобы разместить коэффициенты a_i. Итого: A — 10 блоков, B — 10 блоков, C — 10 блоков, D — 10 блоков, E — 10 блоков, F — 10 блоков, итого 60 блоков для того, чтобы два блока могли быть полностью загружены, тогда всё будет также, как у Крея, и даже лучше. Тем не менее, такие идеи и далее были востребованы. Лектор помнит, как в журналах писались статьи, где вычислясь подобные вещи и сравнивались два подъхода.

В 91(?) году была сделана машина, которая объединила в себе два подхода, но была сделана только одна, на остальные не было средств.

МКП (Модульные конвейерные процессоры).

Есть модуль (блок) обработки, точно такой же, где обрабатываются векторные, но также и скалярные. Состоит из конвейерных ФУ. Есть УУ. Если скалярная команда, то она уходит в блок обработки, и данные уходят со скалярных регистров (которых 128). Если это векторная команда, то она попадает в буфер векторных команд. И оттуда векторные команды идут в векторный блок. Этот векторный блок (у него достаточно высоки й interleaving) принимает данные из оперативной памяти, чтобы потом передать их в блок обработки. Так как устройство блока обработки в количественном смысле могла быть разная (в количественном смысле), и транслятор должен это учитывать. Наличие блока векторных сортировок позволяет раполагать данные в памяти не под ряд.

Мы ещё вспомним про МКП, когда будем говорить про комплексы ЭВМ, когдабудем говорить про машины, занимающиеся пред- и постобработкой данных для векторных ЭВМ.

Сейчас векторно-конвейерные машины продолжают делаться, марка Крей ещё жива.

Проблема использования множественности ФУ для скалярных вычислений.

Вот у нас есть много ФУ. Надо их использовать. Как быть? Есть целый ряд разл. подходов. Самый простой подход — есть поток команд, что делать? Мы гворили для Крея, что птимизир. транслятор может переставлять команды. Но не всегда хватает возможностей транслятора. Всё качается в плане, на что опираться — на ПО или АО, то в одну строну, то в другую, до края, потом находится середина. Решили сделать устройство управления. которое анализировало поток команд, и вэтом буфере команд УУ непосредственно, аппаратно исследует эти вещи: какие это команды, насколько они зависят по адресам, и в соотв. с этим подавать операнды и команды на ФУ. Подобные процессоры стали называть суперскалярными процессорами. Хорошо, сложно, но не всегда эффективно.

Погли двумя путями:

Множественность ФУ

  • Суперскалярность — аппаратное решение
  • VLIW — программное решение (в том смысле, что для всех устр-в готовится длинное слово из неск. команд, по команде на устройство)

В промежуточной архитектуре Intel+HP (IA64), архитектуре EPIC (Expliciti Parallel Intruction ...) Есть длинные команды, и в них есть указания о том (у казания делает транслятор), какие команды можно выполнять параллельно, а какие — нет. На долу аппаратуры остаётся помотреть, какие команды можно выполнить параллельно.

Было решено сделать ещё один уровень параллелизма, где всё это включено. Как? А вот как: удаётся задачу разбить на некоторое количество выпоняемых нитей, и эти нити чередуются на одном процессоре, так как всё равно одно УУ. И было решено брать операции из разных процессов, эта технология называется HyperThreading. Имелся набор регистров для каждой ветви, свой счётчик команд, свой набор регистров, свой буфер команд, а ФУ общие и УУ одно. Могопоточчность имеет разные смыслы, и здесб это — попытка выполнять инструкции из разных потоков.

И этого мало. Хотя заканчиваем борьбу с ФУ. Тем не менее, до сих пор говорим об одном процессоре, и тут стоит упомянуть многоядерность (хоть она и близка к многопроцессорным архитектурам). В одном кристалле появляется несколько оборудований процессора. Тем не менее, они используют общую память, общий кэш. Это как бы два процессора, но они тесно связаны, это позволяет экономить энергию. Пример: 32-тредовый 8-ядерный процессор Niagara. Созвучно этому разработка этому машина Ангара. Многоядерня, многотредовая система.

Есть много задачь (исследование материалов, ресурсов, Земли, других планет), у которых по сравнению с другими регулярными задачами (обсчёт обтекаемости тела), они требуют очень большого объёма памяти и очень нерегулярно её используют. Такие задачи могут решаться только на огромной памяти, а такую память нельзя расположить на одном процессоре, она будет располгаться на нескольких процессорах, и на доступ к чужой памяти будет тратиться время, и для таких задач установилась единица измерения GUPS (Milliards Updates Per Second). И машина Blue Gene (360 Tflops), она даёт 35 GUPS. Разница в 10000 раз. А кластеры, которые дают десятки терафлоп, дают 0.01—1 GUPS, американзы разрабатывают машину с 64TUPS.

Лектор помнит конференцию на Байкале, выше Ангары, ходили кушать в столовую порт Байкал, которая на южной стороне, где вытекает ангара, и ходили по льду в 10 метрах от вырывающейся из под льда Ангары. Ходили туда, потому что гостиница была сделана для иностранцев всё дорого, а там хорошо кормили, и ходоили за обеды по 70 копеек.

Cell. Состоит из базового процессора PowerPC и 8 ускорителей, которые могут выполнять до 4 команды за такт. При тактовой частоте 4 Ггц производительность достигает 256GFlops.

Почему-то лектору хочется рассказать маленькую историю, которая лектору понравиласб, потому что ему сказали, что её написал студент уральского университета. Рассказ лектору очень понравился, потому что мы рассматривали подходы, много разных, и каждый раз лектор хотел сказать «но и это ещё не всё», когда HT, многоядерность. И вр ассказе было «но и это не вся правда». Рассказ: молчел работает в НИИ кирпич, в какой-то момент он обращается к секретарше директора, что мол есть время поехать, она говорит, что можно куда, он везёт её на машине, останавливается, подходит к телефону-автомату, возвращается, говорит, что не сможет поехать, возникло некое обстоятельство, но паралелльно с этим обещает купить шубу, но тут он выруливает на шоссе энтузиастов, берёт трубку, представляется Ивановым, так как он не сотрудник НИИ Кирпич, так как ка самом деле, он сотруднрик КГБ, договаривается о встрече, едет на точку, не доезжает до места, уходит в лес, достаёт рациюб, представляется Джонсом, так как на саомм деле он агент ФБР, но и это и вся правда, едет дальше, сворачивает, разворачивает шар, так как на самом деле он разведчик межгалактической разведки, чтобы не допустить появления первородного греха, лжи у себя. Но и это не вся правда, так как чистку памяти у агентов считали неполной, а при межглактических переходах случались аварии, ..., так что тот инопланетянин солгал, так что первородный рех неискореним, но и это не вся правда...


Вычислительные Системы


01 02 03 04 05 06 07 08 09 10 11


Календарь

пн пн пн пн пн
Сентябрь
03 10 17
Октябрь
01 08 15 22 29
Ноябрь
05 12 19

Материалы
Вопросы по курсу


Эта статья является конспектом лекции.

Шаблон:Lection stub

Личные инструменты
Разделы