Нижегородский государственный университет им. Н.И.Лобачевского
Опубликован: 02.10.2012 | Доступ: свободный | Студентов: 1753 / 198 | Длительность: 17:47:00
Специальности: Программист
Лекция 1:

Математические основы параллельных вычислений

Лекция 1: 1234 || Лекция 2 >

Эквивалентные преобразования программ


(суммирование элементов массива)

       
s = 0.0;
for ( i = 0; i < n; ++i )
   s = s + A[ i ];
 



Информационная зависимость определяет критерий эквивалентности преобразований программ.

Информационная независимость определяет ресурс параллелизма программы.

Перестановка циклов.


for( i = 0; i < n; ++i)

      A[i][j] = A[i][j–1] + C[i][j]∗x;

 #pragma omp parallel for
for( i = 0; i < n; ++i)
   for( = 0; j < m; ++j)
      A[i][j] = A[i][j–1] + C[i][j]∗x;

Всегда ли перестановка циклов является эквивалентным преобразованием?

 #pragma omp parallel for
for( i = 0; i < n; ++i)
   for( = 0; j < m; ++j)
      A[i][j] = A[i][j–1] + C[i][j]∗x;

 #pragma omp parallel for
for( i = 0; i < n; ++i)
   for( = 0; j < m; ++j)
      A[i][j] = A[i][j–1] + C[i][j]∗x;

Распределение циклов.

   for( i = 1; i < n; ++i) {
1     A[i] = A[i–1]∗p + q;
2     C[i] = (A[i] + B[i–1])∗s;
3     B[i] = A[i] – B[i])∗t;
   }



Утверждение: для того чтобы можно было выполнить распределение цикла необходимо и достаточно, чтобы распределяемые части находились в разных компонентах сильной связности информационного графа тела данного цикла.

  for( i = 1; i < n; ++i) {
     A[i] = A[i–1]∗p + q;
     C[i] = (A[i] + B[i–1])∗s;
     B[i] = A[i] – B[i])∗t;
  }

  for( i = 1; i < n; ++i) {
     A[i] = A[i–1]∗p + q;
#pragma omp parallel for
for( i = 1; i < n; ++i)
     B[i] = A[i] – B[i])*t;
#pragma omp parallel for
for( i = 1; i ∗ n; ++i)
     C[i] = (A[i] + B[i–1])∗s;

Расщепление циклов.

for( i = 501; i <= 2000; ++i)
   A[i] = A[i] + A[i–500];


for( i = 501; i <= 2000; ++i)
   A[i] = A[i] + A[i–500];

#pragma omp parallel for
for( i = 501; i <= 1000; ++i)
#pragma omp parallel for
for( i = 1001; i <= 1500; ++i)
   A[i] = A[i] + A[i–500];
   #pragma omp parallel for
for( i = 1501; i <= 2000; ++i)
   A[i] = A[i] + A[i–500];

Эквивалентные преобразования программ

Эквивалентно ли преобразование?

for( i = 0; i < n; ++i)
   D[i] = D[i] ∗ F[i];
if( m == 3 )
  for( i = 0; i < n; ++i)
     R[i] = P[i] + D[i];
else
   for( = 0; i < n; ++i)
   R[i] = Q[i] – D[i];

if( m == 3 )
    for( i = 0; i < n; ++i)
      R[i] = P[i] + D[i] ∗ F[i];
else
   for( = 0; i < n; ++i)
     R[i] = Q[i] – D[i] ∗ F[i];

Простой пример…(последовательный вариант)

      
DO i = 1, n
    DO j = 1, n
       U( i + j ) = U( 2∗n – i – j + 1)∗q + p
    EndDO
EndDO      
  


Совсем не простой пример…(параллельный вариант)

      
DO i = 1, n
   DO j = 1, n – i    Параллельный цикл !
      U( i + j ) = U( 2∗n – i – j + 1)∗q + p  
    End DO
    DO j = n – i + 1, n Параллельный цикл !
       U( i + j ) = U( 2∗n – i – j + 1)∗q + p
    End DO
End DO   
  

Решение задачи на компьютере


Решение СЛАУ: от метода к алгоритму (информационная структура)



Лекция 1: 1234 || Лекция 2 >
Дмитрий Остапенко
Дмитрий Остапенко

поддерживаю выше заданые вопросы

 

Павел Каширин
Павел Каширин

Скачал архив и незнаю как ничать изучать материал. Видео не воспроизводится (скачено очень много кодеков, различных плееров -- никакого эффекта. Максимум видно часть изображения без звука). При старте ReplayMeeting и Start в браузерах google chrome, ie возникает script error с невнятным описанием. В firefox ситуация еще интереснее. Выводится: 

Meet Now: Кукаева Светлана Александровна. 

Meeting Start Time: 09.10.2012, 16:58:04
Meeting Stop Time: 09.10.2012, 18:45:18
Recording Duration:01:47:14

Downloading...

Your Web browser is not configured to play Windows Media audio/video files.

Make sure the features are enabled and available.