Крей МТА
Cray MTA , ранее известный как Tera MTA , представляет собой суперкомпьютерную архитектуру, основанную на тысячах независимых потоков, точной связи и синхронизации между потоками, а также допуске к задержкам для нерегулярных вычислений.
Каждый процессор MTA ( ЦП ) имеет высокопроизводительный ALU со множеством независимых наборов регистров, каждый из которых выполняет независимый поток. Например, Cray MTA-2 использует 128 наборов регистров и, следовательно, 128 потоков на ЦП/АЛУ. На сегодняшний день все MTA используют цилиндрический процессор с переключением потоков в каждом цикле и пропуском заблокированных (остановленных) потоков, чтобы избежать потери циклов ALU. Когда поток выполняет чтение памяти, выполнение блокируется до тех пор, пока данные не вернутся; тем временем другие потоки продолжают выполняться. При достаточном количестве потоков (параллелизма) почти всегда есть работающие потоки, которые можно «прикрыть» заблокированными потоками, и ALU остаются занятыми. Система памяти использует полные/пустые биты для обеспечения правильного порядка. Например, массив Изначально A записывается «пустыми» битами, и любой поток, читающий значение из A блокируется до тех пор, пока другой поток не запишет значение. Это обеспечивает правильный порядок, но допускает детальное чередование и обеспечивает простую модель программирования. Система памяти также «рандомизирована»: соседние физические адреса распределяются по разным банкам памяти. Таким образом, когда два потока одновременно обращаются к памяти, они редко конфликтуют, если только они не обращаются к одному и тому же месту.
Цель MTA состоит в том, чтобы перенос кодов с других машин был простым, но обеспечивал хорошую производительность. Распараллеливающий FORTRAN компилятор может обеспечить высокую производительность для некоторых кодов при минимальном ручном вмешательстве. Там, где требуется перенос вручную, простая и детализированная модель синхронизации часто позволяет программистам писать код «очевидным» способом, сохраняя при этом хорошую производительность. Еще одна цель состоит в том, чтобы программы для MTA были масштабируемыми , то есть при запуске на MTA с вдвое большим количеством процессоров та же программа будет иметь почти удвоенную производительность. И то, и другое представляет собой проблему для многих других высокопроизводительных компьютерных систем.
Необычной особенностью MTA является возможность чередования нескольких рабочих нагрузок с хорошей производительностью. Обычно суперкомпьютеры одновременно предназначены для выполнения одной задачи. MTA позволяет распределять простаивающие потоки для других задач с минимальным влиянием на основные вычисления.
Реализации
[ редактировать ]Было реализовано три внедрения MTA, а по состоянию на 2009 год запланировано четвертое. Реализации:
- MTA-1 MTA-1 использует процессор GaAs и был установлен в Суперкомпьютерном центре Сан-Диего . Он использовал четыре процессора (512 потоков).
- MTA-2 MTA-2 использует процессор CMOS и был установлен в Военно-морской исследовательской лаборатории . Сообщается, что он работал нестабильно, но нахождение внутри охраняемого объекта было недоступно для отладки или ремонта.
- MTA-3 MTA-3 использует тот же процессор, что и MTA-2, но значительно более дешевый и медленный сетевой интерфейс. около шести систем Cray XMT (2009 г.) с использованием MTA-3. Было продано [1]
- MTA-4 MTA-4 — это запланированная система (2009 г.), которая архитектурно похожа, но будет использовать ограниченное кэширование данных и более быстрый сетевой интерфейс, чем MTA-3.
Производительность
[ редактировать ]Было развернуто лишь несколько систем, и широко сообщалось только о тестах MTA-2, что затрудняет сравнение производительности.
В нескольких тестах двухпроцессорный MTA-2 демонстрирует производительность, аналогичную двухпроцессорному Cray T90. [2] Что касается конкретного применения трассировки лучей, 4-процессорный MTA-2 был примерно в 5 раз быстрее, чем 4-процессорный Cray T3E, а при масштабировании с 1 процессора до 4 процессоров производительность Tera улучшилась в 3,8 раза, а у T3E - с 1. до 4 процессоров улучшилось всего в 3,0 раза. [3]
Архитектурные соображения
[ редактировать ]Другой способ сравнения систем — это накладные расходы и узкие места конструкции.
MTA использует множество наборов регистров, поэтому доступ к каждому регистру происходит медленно. Хотя параллелизм (запуск других потоков) обычно скрывает задержку, медленный доступ к файлу регистров ограничивает производительность при небольшом количестве выполняемых потоков. В существующих реализациях MTA однопоточная производительность составляет 21 такт на инструкцию. [4] поэтому производительность снижается, когда на процессор приходится менее 21 потока.
MTA-1, -2 и -3 не используют кэши данных. Это снижает сложность ЦП и позволяет избежать проблем с когерентностью кэша. Однако отсутствие кэширования данных приводит к двум проблемам с производительностью. Во-первых, система памяти должна поддерживать полную пропускную способность доступа к данным всех потоков, даже для неразделяемых и, следовательно, кэшируемых данных. Таким образом, хорошая производительность системы требует очень высокой пропускной способности памяти. Во-вторых, обращения к памяти занимают 150-170 тактов, [4] [5] задержка гораздо выше, чем даже у медленного кэша, что увеличивает количество выполняемых потоков, необходимых для поддержания занятости ALU. MTA-4 будет иметь некогерентный кэш, который можно использовать для данных только для чтения и неразделяемых данных (например, неразделяемых кадров стека), но который требует согласованности программного обеспечения, например, если поток мигрирует между процессорами. Конкуренция за кэш данных часто является узким местом производительности для высококонкурентных процессоров, а иногда даже для двухъядерных систем; однако, используя кэш для данных, которые либо широко используются, либо имеют очень высокую локальность (кадры стека), конкуренцию между потоками можно поддерживать на низком уровне.
При изменении статуса «полный/пустой» используется опрос с тайм-аутом для потоков, которые опрашивают слишком долго. Поток с истекшим временем ожидания можно отменить, а аппаратный контекст использовать для запуска другого потока; Планировщик ОС устанавливает бит «ловушки при записи», поэтому ожидаемая запись будет перехватываться и возвращать запланированный поток обратно в очередь выполнения. [5] Если выгруженный поток находится на критическом пути, производительность может существенно ухудшиться.
MTA устойчив к задержкам, включая нерегулярные задержки, обеспечивая хорошую производительность при нерегулярных вычислениях, если имеется достаточный уровень параллелизма для «покрытия» задержек. Аппаратное обеспечение, обеспечивающее устойчивость к задержкам, может быть потрачено впустую на регулярные вычисления, в том числе на вычисления с высокой задержкой, но которые можно легко запланировать.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Система Cray XMT» . 2009. Архивировано из оригинала 15 января 2010 г.
- ^ «Многопроцессорная производительность Tera MTA» . 1999. Архивировано из оригинала 22 февраля 2012 г.
- ^ «Визуализация объемов больших объемов данных на Tera MTA и Cray T3E» . 1999. Архивировано из оригинала 15 августа 2010 г. Проверено 16 декабря 2009 г.
- ^ Перейти обратно: а б «Тера МТА (Многопоточная архитектура)» . 1999.
- ^ Перейти обратно: а б «Микротестирование Tera MTA» (PDF) . 1999.