Бахтин В.А., кандидат физ.-мат. наук,
заведующий сектором,
Институт прикладной математики им. М.В.Келдыша РАН
Бахтин В.А., кандидат физ.-мат. наук,
заведующий сектором,
Институт прикладной математики им. М.В.Келдыша РАН
из 34
Содержание
Выполнение OpenMP-программы (Fork and Join Model).
Модель памяти. Понятие консистентности памяти.
Консистентность памяти в OpenMP (weak ordering).
Классы переменных (клаузы SHARED, PRIVATE; директива THREADPRIVATE).
END PARALLEL
PARALLEL
Параллельные области
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
из 34
Москва, 2010 г.
из 34
Москва, 2010 г.
из 34
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Москва, 2010 г.
Последовательная консистентность
из 34
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Определение потенциальной причинной зависимости может осуществляться компилятором посредством анализа зависимости операторов программы по данным.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Private-переменные
Threadprivate-переменные
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
… = i + 1;
i = i + 1;
i = 0
i = 1
… = i + 2; // ?
#pragma omp flush (i)
#pragma omp flush (i)
i = 1
i = 1
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
из 34
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
из 34
extern double Array1[100];
void work(int *Array, int iam) {
double TempArray[100];
static int count;
...
}
END PARALLEL
PARALLEL
TempArray,iam
TempArray,iam
TempArray, iam
Array1, Array2, count
Array1, Array2, count
Москва, 2010 г.
Классы переменных
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
из 34
Москва, 2010 г.
из 34
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
из 34
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
из 34
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
int i;
#pragma omp parallel
{
#pragma omp for lastprivate(i)
for (i=0; i
}
a[i]=b[i]; /*i == n-1*/
END PARALLEL
PARALLEL
END PARALLEL
PARALLEL
Var = 1
Var = 2
… = Var
… = Var
Если количество нитей не изменилось, то каждая нить получит значение, посчитанное в предыдущей параллельной области.
из 34
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
itotal = 100
#pragma omp parallel private(np,each)
{
np = omp_get_num_threads()
each = itotal/np
………
}
itotal = 100
#pragma omp parallel default(none) private(np,each) shared (itotal)
{
np = omp_get_num_threads()
each = itotal/np
………
}
Москва, 2010 г.
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
из 34
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Москва, 2010 г.
Контакты
Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
Москва, 2010 г.
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть