вышеприведенному), пользователя и главных действующих лиц -
данных и апулетов, - совершенно неважно.
Какую выгоду мы имеем при такой организации? Во-первых, все
написанные таким образом Cell-программы параллельны по самой
своей сути. Мало того что мы разбиваем исполнение программы на
несколько явно независящих друг от друга стадий, которые можно
исполнять "в параллель". У нас же целая цепочка ячеек-данных,
требующих обработки и в подавляющем большинстве случаев все эти
ячейки друг от друга совершенно независимы - а значит, мы можем
"превращать" по одному и тому же алгоритму несколько ячеек
одновременно. Таким образом, в Cell удается загрузить работой не
просто десятки - а сотни и даже тысячи "элементарных процессоров"
(Synergetic Processing Element, SPE), причем задействовать для
запущенной на одном процессоре задачи SPE всех процессоров
данного устройства и даже совершенно прозрачным образом
привлечь к ней же SPE других устройств! Представьте, что игровая
приставка, домашний компьютер, телевизор, холодильник и КПК
совместно работают над, скажем, запущенной пользователем задачей
рендеринга трехмерной сцены, причем делают это совершенно
прозрачным и незаметным для вас способом - и вы поймете всю
прелесть подобной организации! А самое замечательное, что вся эта
красота не стоила ни малейших усилий. Нам не требовалось
размышлять над кластеризацией, пересылкой данных, блокировками,
потоками и прочими "прелестями" параллельного программирования,
превращающего жизнь программиста в кошмар: мы написали только
"интересную" и "содержательную" часть кода, собственно
"алгоритмику" задачи, переложив всю рутину на автоматику и,
возможно, прозрачным образом задействовав для решения своих
задач произвольное количество чужого кода[Скажем, если в
трансляции видеопоток сжат нашим "фирменным" кодеком, а звук -
обычным стандартным, то потребуется обеспечить лишь "свою" часть
по видеодекодированию, а все остальное - декодирование звука,
набор "улучшалок" для картинки и т. п. - Cell-устройство возьмет
стандартное или ранее загруженное пользователем.].
Возможности для применения Cell-сети необъятны. По сути дела, это
некий единый "живой организм", который "растет" (регистрирует в
сети новые устройства) или "уменьшается"; который обладает