Программировался веревкой.
Теперь - про эффективность железа.
IBM Cell Broadband Engine содержит 8 SPE (Synergistic Processing Elements), способных выдать 8 инструкций с плавающей запятой за такт, они составляют основную мощь процессора. Один SPE занимает 14.5 квадратных мм. Это выходит 1.8 мм2 на одну инструкцию с ПЗ за такт.
Общая площадь Cell составляет 235 мм2. В своем пике загрузки он выдает (грубо говоря) 64 инструкции с ПЗ за такт. На одну инструкцию за такт тратится уже 3.7 мм2.
То есть, поддерживающая вычисления инфраструктура занимает столько же, сколько вычисляющее ядро.
Возьмем маленькие процессорА квадратной планировки с площадью в 1 мм2. Вот такие:
P - лист дерева коммуникационной иерархии PP - квадратик процессора.Их можно объединять в иерархии с помощью коммуникационного оборудования:
# / \ / \ # # # / \ / \ / \ P P P P P P PP##PP PP##PP ###### PP##PPВот уже видно, что на 4 мм2 процессорной площади приходится 5 мм2 коммуникаций. Дальше будет хуже: на еще одном уровне на 8 мм2 процессоров придется 13 мм2, на следующем отношение будет 16 к 33. В пределе все стремится к 4 мм2 на процессор:
Prelude> take 10 $ zip squares procs [(1.0,1.0),(3.0,2.0),(9.0,4.0),(21.0,8.0),(49.0,16.0),(105.0,32.0),(225.0,64.0), (465.0,128.0),(961.0,256.0),(1953.0,512.0)] Prelude> take 10 $ zipWith (/) squares procs [1.0,1.5,2.25,2.625,3.0625,3.28125,3.515625,3.6328125,3.75390625,3.814453125]squares - это список общих площадей (1*1, 1*3, 3*3, 3*7, 7*7...), procs - количество процессоров на этой площади (1, 2, 4, 8, 16...). 225/16 даст 3.52.
Коммуникационную аппаратуру я взял сложностью с процессор - с запасом. Если задать ей толщину поменьше, в полмиллиметра, то для 64-х процессоров получается 2.1 мм2 на процессор.
Получается, что Cell не так уж и хорош! Это хорошо. И это первое. ;)
Второе - с ростом количества процессоров снижается их удельная плотность, это плохо.
Третье - снижается она до определенного предела, что хорошо.
И четвертое, последнее - к сожалению, этому есть предел - пластины больше 225 мм2 очень дороги.
Пятое, самое последнее - с коммуникационной аппаратурой вне кристалла, по-моему, будет твориться то же самое. Что хорошо. ;)
В общем, как обычно:
Меня не слышат?
Это минус!
Но и не го-онят,
Э-это плю-ус! ;)