НАЧАЛЬНАЯ ИДЕЯ Предоставить программисту инструмент для использования всех мощностей современных вычислительных систем.
ТЕКУЩЕЕ ВОПЛОЩЕНИЕ Open. CL программы могут: o Определить доступные ресурсы и выбрать подходящие o Создать последовательность инструкций для выполнения o Получать результаты вычислений
МОДЕЛЬ ПЛАТФОРМЫ • Host • • устройства, которое управляет Open. CL-вычислениями и осуществляет все взаимодействия с пользователем. Devices • устройства на которых выполняются вычисления. Host Device … Device
МОДЕЛЬ ВЫЧИСЛЕНИЙ • Host program • выполняет организацию вычислений. Передаёт данные и программу для вычисления. • Open. CL-драйвер • служебная программа среды исполнения. Отвечает за распределение копий программы для вычислений. • Kernel • программа для вычислений на языке Open. CL.
МОДЕЛЬ ВЫЧИСЛЕНИЙ Host program Kernel 2 … Kernel N Open. CL driver Kernel 1 Device 1 Kernel 1 Device 2 … Kernel 1 Device K Kernel 2 Device K+1
МОДЕЛЬ ВЫЧИСЛЕНИЙ • Экземпляр ядра носит название work-item • Каждый work-item однозначно определяется своим глобальным идентификатором. • Множество всех work-item разбивается на группы. Такая группа носит название workgroup. • Все work-item в пределах одной work-group выполняются параллельно на обрабатывающих элементах одного вычислительного модуля Open. CL-устройства.
МОДЕЛЬ ПАМЯТИ
ПАРАЛЛЕЛИЗМ • Параллелизм по данным • каждый элемент определенной хостом структуры данных вычисляется одновременно копиями одного и того же Open. CL-ядра. • Параллелизм по заданиям • Разные Open-CL программы могут выполняться одновременно.
ПРИМЕР ПРОГРАММЫ host() { float v 1[N], v 2[N]; if (search. Resurces()) { // Ввод данных send. Kernel(float. Vector. Sum, v 1[], v 2[], N) recive(); } } kernel void float. Vector. Sum(__global float* v 1, float* v 2){ int i = get_global_id(0); // Возвращает id work-item v 1[i] = v 1[i] + v 2[i]; }
СФЕРЫ ПРИМЕНЕНИЯ • Криптография • Шифрование • Криптоанализ • Архивация данных • Моделирование процессов • Экономические (прогноз на бирже) • Физические явления (колебания жидкости) • И др.