Представлен релиз StarPU 1.0.0, плагина к GCC и набора сопутствующих runtime-библиотек для обеспечения разработки приложений для гетерогенных многоядерных систем, например, позволяя вовлекать в процесс выполнения CPU и GPU. В представлении StarPU программа представляет собой совокупность независимых задач, которые могут вызываться асинхронно и выполняться на любом соответствующем классу задачи вычислительном блоке. Поддерживается выполнение на многоядерных CPU, CUDA (NVIDIA GPU), устройствах, поддерживающих OpenCL, и процессорах Cell. Плагин доступен для GCC 4.5, 4.6 и 4.7.

GCC-плагин StarPU позволяет разработчикам использовать специальные аннотации для выделения в Си коде задач ("codelet") и их реализаций, а также областей памяти, передаваемых каждой задаче. Каждая задача может иметь одну или несколько реализаций, например, реализация базирующаяся на использовании CPU и реализация, написанная на OpenCL. Runtime-библиотеки StarPU обеспечивают планирование распределения задач по доступным ядрам CPU и GPU, а также занимаются организацией передачи данных между основной памятью и GPU.

Таким образом, StarPU позволяет при выполнении приложения максимально задействовать все имеющиеся в текущей системе вычислительные ресурсы, снимая с разработчика необходимость выполнения низкоуровневых операций и позволяя сосредоточится на алгоритмических проблемах. При этом, при использовании StarPU не обязательно переписывать весь код приложения, достаточно инкапсулировать существующие функции внутрь codelet-ов. Допускается создание отдельных вариантов функций для каждой архитектуры - вариант функции для CUDA, для CPU и для OpenCL. StarPU сам выберет какие варианты использовать для обеспечения максимально эффективности выполнения на текущей системе и обеспечит прозрачный доступ к указанным данным.

Источник: http://www.opennet.ru/opennews/art.shtml?num=33484