Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
intel-xeon-phi / 03_Lecture_Offload_Optimization.pptx
Скачиваний:
12
Добавлен:
11.03.2016
Размер:
746.85 Кб
Скачать

Нижегородский государственный университет им. Н.И.Лобачевского

Факультет Вычислительной математики и кибернетики

Программирование для Intel Xeon Phi

06 Лекция Элементы оптимизации прикладных программ

для Intel Xeon Phi. Intel Compiler

При поддержке компании Intel

Горшков А.В.

Кафедра математического обеспечения ЭВМ

Содержание

Введение

Расширения языков программирования C/С++

Явная схема работы с памятью

Введение в Intel Cilk+

Неявная схема работы с памятью

Сравнение явной и неявной схемы

Подходы к оптимизации прикладных программ

Литература

Нижний Новгород, 2015

Элементы оптимизации прикладных программ для Intel Xeon Phi. Intel Compiler

2

Введение

Intel Xeon Phi – новый сопроцессор от компании Intel, призванный существенно ускорить процесс вычислений для некоторого класса задач, алгоритмы решения которых допускают существенную степень параллелизма и векторизации

Сопроцессор основан на архитектуре Intel Many Integrated Core (MIC), содержит несколько десятков x86 CPU ядер, поддерживает сотни потоков исполнения

Основное достоинство – для создания программ для Intel Xeon Phi используются знакомые инструменты (C/C++ Compiler, OpenMP, MPI), не требуется существенной модификации кода

НО: для эффективной работы требуется оптимизация

Нижний Новгород, 2015

Элементы оптимизации прикладных программ для Intel Xeon Phi. Intel Compiler

3

Режимы и модели использования

сопроцессора Intel Xeon Phi…

Режим Offload

– Сопроцессор Xeon Phi или основной процессор используется в качестве ускорителя вычислений

Режим MPI

– Сопроцессор Xeon Phi и основной процессор исполняют равноправные MPI-процессы

MIC Offload

Host Offload

– MPI-процессы

– MPI-процессы

выполняются только

выполняются только

на основных ЦП

на сопроцессорах

– Сопроцессоры

Xeon Phi

Xeon Phi

– Основные ЦП

используются в

используются в

качестве

качестве

ускорителей

ускорителей

 

Не поддерживается

Co-processor-only

MPI-процессы выполняются только на сопроцессорах Xeon Phi

MPI-пересылки - между сопроцессо- рами Xeon Phi через основные ЦП

Поддерживается

многопоточность

Symmetric

MPI-процессы выполняются на основных ЦП и сопро- цессорах Xeon Phi

MPI-пересылки - между основными ЦП и сопроцессорами Xeon Phi

Поддерживается

многопоточность

Методы работы с сопроцессором в режиме Offload

Явная схема работы с памятью:

Использование директив компилятора: #pragma offload

Явное управление обменами данных с сопроцессором

Неявная схема работы с памятью:

Использование ключевых слов расширения Intel Cilk Plus

Использование участков памяти, разделяемых между процессором и сопроцессором

Нижний Новгород, 2015

Элементы оптимизации прикладных программ для Intel Xeon Phi. Intel Compiler

5

1. Явная схема работы с памятью

Нижний Новгород, 2015

Элементы оптимизации прикладных программ для Intel Xeon Phi. Intel Compiler

6

Явная схема работы с памятью…

Нижний Новгород, 2015

Элементы оптимизации прикладных программ для Intel Xeon Phi. Intel Compiler

7

Явная схема работы с памятью: С/C++

Описание

 

C/C++ синтаксис

Семантика

 

 

Директива offload

#pragma offload <clauses>

Запуск участка кода

на

 

 

<statement>

сопроцессоре или CPU

 

 

 

 

 

 

Ключевое

слово __attribute__((target(mic)))

Компиляция

функции

или

для указания MIC

 

объявление

переменной

функции

или

 

одновременно для CPU и

переменной

 

 

сопроцессора

 

 

Указание MIC блока #pragma

кода

target(mic))

 

offload_attribute(push, Компиляция блока кода одновременно для CPU и сопроцессора

 

#pragma offload_attribute(pop)

 

Отдельная передача #pragma

offload_transfer

Обеспечивает синхронную

данных

target(mic) <clauses>

или асинхронную передачу

данных между CPU и сопроцессором

Нижний Новгород, 2015

Элементы оптимизации прикладных программ для Intel Xeon Phi. Intel Compiler

8

Явная схема работы с памятью: Fortran

Описание

C/C++ синтаксис

Директивы offload

!dir$ omp offload

 

<clauses>

 

<statement>

 

dir$ offload <clauses>

 

<statement>

Семантика

Запуск параллельного (OpenMP) участка кода на сопроцессоре или CPU

Запуск участка кода (вызов функции) на сопроцессоре или CPU

Ключевое слово для

!dir$

attributes

Компиляция

функции

или

указания

MIC

offload:<mic> ::

объявление

переменной

функции

или

<ret-name>

OR

одновременно

для

CPU

и

переменной

 

<var1,var2,…>

сопроцессора

 

 

 

 

 

 

 

 

 

Отдельная

передача

!dir$

offload_transfer

Обеспечивает

синхронную

или

данных

 

target(mic) <clauses>

асинхронную

передачу

данных

между CPU и сопроцессором

Нижний Новгород, 2015

Элементы оптимизации прикладных программ для Intel Xeon Phi. Intel Compiler

9

Явная схема работы с памятью…

Код будет выполнен на одном из доступных сопроцессоров

Если сопроцессоров нет или они не доступны, код будет выполнен на центральном процессоре

Код будет выполнен на сопроцессоре с номером (n % <ОбщееЧислоXeonPhi>)

Если сопроцессор недоступен – возникнет ошибка времени исполнения

Нижний Новгород, 2015

Элементы оптимизации прикладных программ для Intel Xeon Phi. Intel Compiler

10

Соседние файлы в папке intel-xeon-phi