Проект RAMP
RAMP (Research Accelerator for Multiple Processors) - проект, направленный на проведение исследований и развитие программного обеспечения в областях, связанных с многопроцессорными системами. На данный момент накоплено очень немного знаний о том, каким образом создавать, программировать и управлять системами, состоящими из 64-1024 процессоров; поэтому создатели проекта предлагают использовать ПЛИС-микросхемы для эмуляции таких систем, что позволит достаточно эффективно заниматься разработкой программных продуктов для многоядерных архитектур. В отличие от программных симуляторов, эмулятор на ПЛИС обладает достаточной производительностью, чтобы на нем можно было запускать операционные системы и различные сложные приложения на скоростях, достаточных для проведения полноценных исследований. При этом стоимость таких решений оказывается значительно ниже стоимости кластеров или SMP-систем.
Некоторое сравнение различных архитектур:
SMP | Кластер | Симулятор | RAMP | |
Масшабируемость (на 1000 процессоров) | C | A | A | A |
Стоимость (на 1000 процессоров) | F($40M) | C($2-3M) | A+($0M) | A($0.1-0.2M) |
Стоимость владения | A | D | A | A |
Энергопотребление/место(кВт, стойки) | D(120 кВт, 12 стоек) | D(120 кВт, 12 стоек) | A+(0.1 кВт, 0.1 стойки) | A(1.5 кВт, 0.3 стойки) |
Поддержка сообщества | D | A | A | A |
Наблюдаемость | D | C | A+ | A+ |
Воспроизводимость результатов | B | D | A+ | A+ |
Реконфигурируемость | D | C | A+ | A+ |
Достоверность | A+ | A+ | F | B+/A- |
Производительность (тактовая частота) | A(2 ГГц) | A(3 ГГц) | F(0 ГГц) | С(0.1 ГГц) |
Средний балл | C | B- | B | A- |
В рамках проекта RAMP разрабатываются готовые модули на основе ПЛИС-микросхем, а также предназначенные для работы на данных модулях различные программные средства, эмулирующие многопроцессорные системы, для чего проводится эмуляция архитектур процессоров, таких как PowerPC, x86, UltraSparc и MIPS.
В проекте RAMP для разработки используются средства программирования Xilinx FPGA и собственный язык разработки RDL (RAMP Description Language). Компьютеры, создаваемые в рамках этого проекта, строятся по иерархическому принципу. Самый нижний уровень представлен ядром MicroBlaze с оптимизированной для использования в FPGA архитектурой, обеспечивающей работу на частоте до 210 МГц. Процессоры располагаются на программируемом массиве Virtex. В зависимости от функциональности, на одном кристалле Virtex-II располагается от одного до 12 ядер MicroBlaze. Следующий уровень иерархии - устанавливаемые в стойку модули Berkeley Emulation Engine (BEE); в одном модуле может быть от одной до четырех микросхем Virtex-II. В стойку монтируется от одного до 21 BEE. То, как ядра объединяются в массиве, зависит от типа создаваемой машины; это может быть "каждый с каждым" или топология трехмерной сети, общим является то, что канал между ядрами последовательный, а его скорость передачи - 10 Гбит/с. Приложения пишутся на языке Unified Parallel C (UPC).
Параллельно разрабатывается три типа компьютеров - RAMP Red, RAMP Blue и RAMP White. Каждый из них является экспериментальным, нацеленным на определенную задачу. В частности, на RAMP Red отрабатывается технология транзакционной памяти, на RAMP Blue - сочетание стандарта MPI с языком UPC, а на RAMP White исследуются проблемы распределенного доступа к памяти.
Дополнительная информация:
- Страница проекта RAMP.
- Статья в журнале "Компьютерра" "Симулятор для Microsoft".
- Статья в журнале "Открытые системы" "HPC, пятнадцать лет эволюции" (глава "RAMP из Беркли").
© Лаборатория Параллельных
информационных технологий НИВЦ МГУ