3. Актуальность
Разработка прикладного ПО для Cell
является трудоемкой задачей в силу
специфики самой архитектуры
процессора,
ограниченного набора средств его
программирования, включающего
компиляторы с языков C++ и Фортран и
библиотеку libspe2 для управления SPE-
процессорами.
5. С/С++
Система MARS ( Multicore Application
Runtime System ) – библиотека для
построения приложений для процессора
Cell в терминах “задач” (tasks),
автоматически распределяемых по SPE-
процессорам во время исполнения
планировщиком.
6. Java Virtual Machine и Cell BE
Системы на базе языка Java:
CellVM ( University of California, Irvine )
Cacao VM for Cell ( IBM ).
Состояние реализации – прототип.
7. .NET Framework и Cell BE
Система на базе языка C# - CellDotNetCellDotNet:
JIT-компилятор для генерации кода для SPE-
процессоров,
Runtime-система поддержки исполнения C#-
программ на PPE- и SPE-процессорах
Библиотека CellDotNet сама полностью написана
на C# и базируется на системе Mono –
свободной реализации платформы .NET для
Linux.
8. Почему не только
C++ + libspe2
Цели переноса байт-ориентированных
систем программирования на платформу
Cell:
имеется достаточно большое количество
приложений, написанных на языках Java и
C#, например, финансовых приложений,
которые, будучи портированными на Cell,
будут более быстродействующими в
несколько раз.
9. Цель проекта =
Адаптация системы программирования на
базе высокоуровневого, объектно-
ориентированного языка MC# (www.
mcsharp.net), разработанного в Институте
программных систем РАН (г.Переславль-
Залесский), к вычислительным
архитектурам на базе процессора Cell,
включая кластерные системы.
+ CellCell BEBE
10. Идея проекта
Базовый механизм параллельности в языке MC#
async- методы
movable- методы
взаимодействие посредством каналов и
обработчиков.
Основная идея адаптации – введение нового
модификатора spe в объявлении метода,
предназначенного для выполнения на SPE-
процессоре.
База адаптации – библиотека CellDotNet.
11. Пример
public async aintegrate ( int seed, int iterations,
channel (float) sendResult )
{
sendResult ! ( integrate ( seed, iterations ) );
}
public spe float integrate ( int seed, int iterations )
{
< Тело метода >
}
12. Преимущества принятого
подхода
сокрытие подробностей использования
библиотеки CellDotNet от прикладного
программиста;
сохранение единой асинхронной модели
программирования, принятой в языке
MC#.
13. Цели начального проекта
а) проверка работоспособности системы
Mono на серверах QS;
б) определение функциональных
возможностей и доработка библиотеки
CellDotNet;
c) разработка тестовых последовательных и
параллельных приложений на языках C# и
MC#, соответственно.
14. Результаты
доработана библиотека CellDotNet (в
оригинальном виде она разрабатывалась и
тестировалась на PlayStation 3 и была
неработоспособна на серверах QS),
разработано несколько тестовых параллельных
приложений на языке MC# (пока без доработки
MC#-компилятора – необходимые операторы
для запуска SPE-метода готовятся самим
программистом внутри async-метода).
19. Ложка дегтя
наличие ошибок в ядре Linux, влияющих на
работоспособность системы Mono на процессоре
PowerPC;
исходная неработоспособность библиотеки
CellDotNet на серверах QS;
ограниченность средств языка, поддерживаемых
в текущей версии библиотеки CellDotNet;
отсутствие возможности доступа на 2 или более
машины с процессором Cell ( и Mono версии
1.9.1) для тестирования кластерных MC#-
приложений.
20. Перспективы
доработка библиотеки CellDotNet для повышения
ее эффективности и расширение набора
поддерживаемых средств языка C#,
CELL ClustersCELL Clusters: тестирование распределенных
MC#-приложений на кластере из Cell-машин,
разработка новых приложений, включая простой
рендеринг изображений на основе трассировки
лучей,
доработка компилятора MC# для поддержки spe-
методов.