|
Система автоматизации распараллеливания отображения на мультипроцессор |
b>3) Шаг 3 и Шаг 4На шаге 3 не найдется параллельных соседних параллельных регионов для склейки. Из всевозможных альтернативных локализаций ни одна не будет принята, т.к. в любой из них количество приватных переменных (а следовательно и оценочная функция будут расти). Для простановки threadprivate не найдется ни одного приватного массива.На шаге 4 получим выходную программу:program jacparameter (l = 8,itmax = 20)real a(l,l),eps,maxeps,b(l,l)! arrays A and B with block distributionprint *, '********** TEST_JACOBI **********'maxeps = 5.000000e-008!nest of two parallel loops, iteration (i,j) will be executed on!processor, which is owner of element A(i,j)!OMP PARALLEL PRIVATE(i)!OMP DOdo j = 1,ldo i = 1,la(i,j) = 0.if (i .eq. 1 .or. j .eq. 1 .or. i .eq. l .or. j .eq. l) thenb(i,j) = 0.elseb(i,j) = 1. + i + jendifenddoenddo!OMP ENDDO!OMP END PARALLELdo it = 1,itmaxeps = 0!variable EPS is used for calculation of maximum value!OMP PARALLEL PRIVATE(i)!OMP DO REDUCTION(MAX:eps)do j = 2,l - 1do i = 2,l - 1eps = max (eps,abs (b(i,j) - a(i,j)))a(i,j) = b(i,j)enddoenddo!Copying shadow elements of array A from!neighbouring processors before loop execution!OMP ENDDO!OMP DOdo j = 2,l - 1do i = 2,l - 1b(i,j) = (a(i - 1,j) + a(i,j - 1) + a(i + 1,j) + a(i,j +&1)) / 4enddoenddo!OMP ENDDO!OMP END PARALLELprint 200, it,eps200 FORMAT(' IT = ',I4, ' EPS = ', E14.7)if (eps .lt. 5.000000e-008) goto 3enddo3 open (unit = 3,file = 'JAC.DAT',form = 'FORMATTED',status = 'UNKNO&WN')write (unit = 3,fmt = *) bclose (unit = 3)endДля данной программы будет выдана следующая оценка производительности:Общее время последовательного выполнения: 10547 у.е.Общее время параллельного выполнения (4 нити): 3231 у.еСуммарное ускорение: в 3,26 раза5.5.2 Программа "Sor"1) Листинг последовательной программыPROGRAM SORPARAMETER ( N = 10 )REAL A( N, N ), EPS, MAXEPS, WINTEGER ITMAXPRINT *, '********** TEST_SOR **********'ITMAX=20MAXEPS = 0.5E - 5W = 0.5DO 1 J = 1, NDO 1 I = 1, NIF ( I .EQ.J) THEN A( I, J ) = N + 2ELSE A( I, J ) = -1.0ENDIF1CONTINUEDO 2 IT = 1, ITMAXEPS = 0.DO 21 J = 2, N-1DO 21 I = 2, N-1S = A( I, J )A( I, J ) = (W / 4) * (A( I-1, J ) + A( I+1, J ) + A( I, J-1 ) +*A( I, J+1 )) + ( 1-W ) * A( I, J)EPS = MAX ( EPS, ABS( S - A( I, J )))21CONTINUE PRINT 200, IT, EPS200 FORMAT(' IT = ',I4, ' EPS = ', E14.7)IF (EPS .LT. MAXEPS ) GO TO 42CONTINUE4 OPEN (3, FILE='SOR.DAT', FORM='FORMATTED',STATUS='UNKNOWN')WRITE (3,*) A CLOSE (3) END2) Первое внутреннее представление для цикловПосле первого шага в первом внутреннем представлении помеченным в листинге последовательной программы циклам будут соответствовать следующие вершины:(1) Тип:ППЦ,уровень = 0, число итераций = 8Использование переменных:Имя: i. Пометки: PRIVATE, SET, SHARED, NOИмя: j. Пометки: PRIVATE, IND, SHARED, NOИмя: a. Пометки: PRIVATE, POS, SHARED, DEF(2) Тип:ППЦ,уровень = 1, число итераций = 8Использование переменных:Имя: i. Пометки: PRIVATE, IND, SHARED, NOИмя: j. Пометки: PRIVATE, POS, SHARED, DEFИмя: a. Пометки: PRIVATE, POS, SHARED, DEF(3) Тип:ЦНР,уровень = 0, число итераций = 20Использование переменных:Имя: eps. Пометки: PRIVATE, SET, SHARED, NOИмя: j. Пометки: PRIVATE, SET, SHARED, NOИмя: i. Пометки: PRIVATE, SET, SHARED, NOИмя: a. Пометки: PRIVATE, NO, SHARED, SET ORDERED! PIPELINE!Имя: s. Пометки: PRIVATE, SET, SHARED, NO(4) Тип:ППЦ,уровень = 1, число итераций = 6Использование переменных:Имя: i. Пометки: PRIVATE, SET, SHARED, NOИмя: eps. Пометки: REDUCTION, MAX, SHARED, NOИмя: j. Пометки: PRIVATE, IND, SHARED, NOИмя: a. Пометки: PRIVATE, NO, SHARED, SET, rw= 2 ORDERED! PIPELINE!Имя: s. Пометки: PRIVATE, SET, SHARED, NO(5) Тип:ППЦ,уровень = 2, число итераций = 6Использование переменных:Имя: i. Пометки: PRIVATE, IND, SHARED, NOИмя: j. Пометки: PRIVATE, POS, SHARED, DEFИмя: eps. Пометки: REDUCTION, MAX, SHARED, NOИмя: a. Пометки: PRIVATE, NO, SHARED, SET, rw= 2 ORDERED! PIPELINE!Имя: s. Пометки: PRIVATE, SET, SHARED, NO3) Второй шагНа этом шаге будет устроен перебор различных вариантов распараллеливания. Рассмотрим их, группируя по регионам. Все варианты будем рассматривать при числе процессоров=4.1-й регион: циклы (1) и (2). Здесь будет рассмотрено 3 варианта, время последовательного исполнения 1 витка = 1.|
!$OMP PARALLEL PRIVATE(I)!$OMP DODO 1 J = 1, NDO 1 I = 1, NIF ( I .EQ.J) THEN A( I, J ) = N + 2ELSE A( I, J ) = -1.0ENDIF1CONTINUE!$OMP END DO !$OMP END PARALLEL | DO 1 J = 1, N!$OMP PARALLEL!$OMP DODO 1 I = 1, NIF ( I .EQ.J) THEN A( I, J ) = N + 2ELSE A( I, J ) = -1.0ENDIF!$OMP END DO!$OMP END PARALLEL 1 CONTINUE | | Стоимость = 1*10*10/4 + 14 = 39Количество приватных = 2Время инициализации = 5Время синхронизации переменных и удаления региона = 7 Итого: 14 | Стоимость = 10 * (1*10/ 4 + 12) = 145Количество приватных = 1Время инициализации = 5Время синхронизации переменных и удаления региона = 6 Итого: 12 | | | Рис. 14. Сравнение вариантов распараллеливания в 1-м регионе программы "SOR".На Рис. 14 показаны возможные рассматриваемые варианты распараллеливания: цикла по J в левой части и цикла по I в левой части. Стоимость последовательная = 10*10=100, следовательно, будет выбран вариант, показанный в левой части Рис. 14.2-й регион: циклы (4) и (5). Здесь будет рассмотрено 4 варианта, время последовательного исполнения 1 витка = 22.|
!$OMP PARALLEL PRIVATE(S) PRIVATE(I)!$OMP DO REDUCTION(EPS,MAX)DO 21 J = 2, N-1DO 21 I = 2, N-1!$OMP ORDEREDS = A( I, J )A( I, J ) = (W / 4) * (A( I-1, J ) + A( I+1, J ) + A( I, J-1 ) +*A( I, J+1 )) + ( 1-W ) * A( I, J)EPS = MAX ( EPS, ABS( S - A( I, J )))!$OMP END ORDERED21CONTINUE!$OMP END DO !$OMP END PARALLEL | DO 21 J = 2, N-1!$OMP PARALLEL PRIVATE(S)!$OMP DO REDUCTION(EPS,MAX)DO 21 I = 2, N-1!$OMP ORDEREDS = A( I, J )A( I, J ) = (W / 4) * (A( I-1, J ) + A( I+1, J ) + A( I, J-1 ) +*A( I, J+1 )) + ( 1-W ) * A( I, J)EPS = MAX ( EPS, ABS( S - A( I, J ))) !$OMP END ORDERED!$OMP END DO!$OMP END PARALLEL 21 CONTINUE | | Стоимость = 22*8*8 + 18 = 1426Количество приватных = 4Время инициализации = 5Время синхронизации переменных и удаления региона = 9 Итого: 18 | Стоимость = 8*(22*8 + 16) = 1536Количество приватных = 3Время инициализации = 5Время синхронизации переменных и удаления региона = 8 Итого: 16 | | | Рис. 15. Сравнение вариантов распараллеливания в 2-м регионе программы "SOR" с директивой ORDERED.|
!$OMP PARALLEL!$ iam = omp_get_thread_num ()!$ numt = omp_get_num_threads ()!$ ISYNC (IAM) = 0!$ ILIMIT=MIN(NUMT-1,N-1-2)!$OMP BARRIERDO 21 J = 2, N-1!$OMP DO PRIVATE(S), REDUCTION(EPS,MAX)!$ IF (IAM .GT. 0 .AND. IAM .LE. ILIMIT) THEN!$ DO WHILE (ISYNC(IAM-1) .EQ. 0)!$OMP FLUSH(ISYNC)!$ ENDDO!$ ISYNC(IAM-1)=0!$OMP FLUSH(ISYNC)!$ ENDIFDO 21 I = 2, N-1S = A( I, J )A( I, J ) = (W / 4) * (A( I-1, J ) + A( I+1, J ) + A( I, J-1 ) +*A( I, J+1 )) + ( 1-W ) * A( I, J)EPS = MAX ( EPS, ABS( S - A( I, J )))!$OMP ENDDO NOWAIT!$ IF (IAM .LT. ILIMIT) THEN!$ DO WHILE (ISYNC (IAM) .EQ. 1)!$OMP FLUSH (ISYNC)!$ ENDDO!$ ISYNC (IAM)=1!$OMP FLUSH(ISYNC)!$ ENDIF!$OMP END DO!$OMP BARRIER!$OMP END PARALLEL 21 CONTINUE | | Стоимость = 22*32+3+9+22 = 738Количество действий конвейера = 32Количество приватных = 3Время инициализации конвейера без учета приватных = 5 + 4 = 9 Время синхронизации переменных и удаления региона = 3+5+4+3+3+4 = 22 (синхронизация приватных + инициализация региона + барьер до первого цикла + по барьеру во время инициализации каждой нити + по барьеру во время инициализации последующей нити + барьер в конце региона) | | | Рис. 16. Схема распараллеливания в 2-м регионе программы "SOR" при конвейерном варианте.На Рис. 15 и Рис. 16 показаны варианты параллелизма, которые будут перебираться "Экспертом". Стоимость последовательная = 22*8*8=1408, следовательно, будет выбран вариант c конвейером.4) Шаг 3 и Шаг 4На шаге 3 не найдется параллельных соседних параллельных регионов для склейки. Из всевозможных альтернативных локализаций ни одна не будет принята, т.к. в любой из них количество приватных переменных (а следовательно, и оценочная функция будут расти). Для простановки threadprivate не найдется ни одного приватного массива.На шаге 4 получим выходную программу для варианта задачи с 4 процессорами:program sorparameter (n = 10)real a(n,n),eps,maxeps,winteger itmax!$INTEGER OMP_GET_NUM_THREADS,OMP_GET_THREAD_NUM!$INTEGER IAM, NUMT,ISYNC(4)print *, '********** TEST_SOR **********'itmax = 20maxeps = 5.000000e-006w = 5.000000e-001!$OMP PARALLEL PRIVATE(i)!$OMP DOdo j = 1,ndo i = 1,nif (i .eq. j) thena(i,j) = n + 2elsea(i,j) = (-(1.0))endifenddoenddo!$OMP END DO!$OMP END PARALLELdo it = 1,20eps = 0!$OMP PARALLEL PRIVATE (IAM,NUMT,ILIMIT) PRIVATE(i) SHARED(a) PRIVATE(s) & &REDUCTION(MAX:eps)!$ iam = omp_get_thread_num ()!$ numt = omp_get_num_threads ()!$ ISYNC (IAM) = 0!$ ILIMIT=min(NUMT-1,n-1-2)!$OMP BARRIERdo j = 2,n - 1!$IF (IAM .GT. 0 .AND. IAM .LE. ILIMIT) THEN!$ DO WHILE (ISYNC(IAM-1) .EQ. 0)!$OMP FLUSH(ISYNC)!$ ENDDO!$ ISYNC(IAM-1)=0!$OMP FLUSH(ISYNC)!$ ENDIF!$OMP DOdo i = 2,n - 1s = a(i,j)a(i,j) = 5.000000e-001 / 4 * (a(i - 1,j) + a(i + 1,j) + a&(i,j - 1) + a(i,j + 1)) + (1 - 5.000000e-001) * a(i,j)eps = max (eps,abs (s - a(i,j)))enddo!$OMP ENDDO NOWAIT!$ IF (IAM .LT. ILIMIT) THEN!$ DO WHILE (ISYNC (IAM) .EQ. 1)!$OMP FLUSH (ISYNC)!$ ENDDO!$ ISYNC (IAM)=1!$OMP FLUSH(ISYNC)!$ ENDIFenddo!$OMP BARRIER!$OMP END PARALLELprint 200, it,eps200 FORMAT(' IT = ',I4, ' EPS = ', E14.7)if (eps .lt. 5.000000e-006) goto 4enddo4 open (unit = 3,file = 'SOR.DAT',form = 'FORMATTED',status = 'UNKNO&WN')write (unit = 3,fmt = *) aclose (unit = 3)endДля данной программы будет выдана следующая оценка производительности:Общее время последовательного выполнения: 28343 у.е.Общее время параллельного выполнения (4 нити): 14880 у.е.Суммарное ускорение: в 1,9 раза5.5.3 Программа "Модифицированный SOR"Данный пример приведен для того, чтобы показать работу "Эксперта" на зависимостях по данным в массиве, для которого невозможно применение конвейера.1) Листинг последовательной программыPROGRAM SORPARAMETER ( N = 10 )REAL A( N, N ), B(N,N), EPS, MAXEPS, WINTEGER ITMAXPRINT *, '********** TEST_SOR **********'ITMAX=20MAXEPS = 0.5E - 5W = 0.5DO 1 J = 1, NDO 1 I = 1, NIF ( I .EQ.J) THEN A( I, J ) = N + 2ELSE A( I, J ) = -1.0ENDIF1CONTINUEDO 2 IT = 1, ITMAXEPS = 0.DO 21 J = 2, N-1DO 21 I = 2, N-1S = A(I,J)A( I, J ) = (W / 4) * (A( I-1, J ) + A( I+1, J ) + A( I, J-1 ) +*A( I, J+1 )) + ( 1-W ) * A( I+1, J+1)B(I,J) = A(I,J)EPS = MAX ( EPS, ABS( S - B( I, J )))21CONTINUEPRINT 200, IT, EPS200 FORMAT(' IT = ',I4, ' EPS = ', E14.7)IF (EPS .LT. MAXEPS ) GO TO 42CONTINUE4 OPEN (3, FILE='SOR.DAT', FORM='FORMATTED',STATUS='UNKNOWN')WRITE (3,*) ACLOSE (3)END2) Работа "Эксперта"Для данной программы будут произведены действия, аналогичные тем, что описаны в пункте 5.5.2. Остановимся лишь на отличиях в шаге 2 и выходных данных.2-й регион: циклы (4) и (5). Здесь будет рассмотрено 3 варианта, время последовательного исполнения первых 3 директив = 19, 4-й директивы = 4:|
!$OMP PARALLEL PRIVATE(S) PRIVATE(I)!$OMP DO REDUCTION(EPS,MAX)DO 21 J = 2, N-1DO 21 I = 2, N-1!$OMP ORDEREDS = A(I,J)A( I, J ) = (W / 4) * (A( I-1, J ) + A( I+1, J ) + A( I, J-1 ) +*A( I, J+1 )) + ( 1-W ) * A( I+1, J+1)B(I,J) = A(I,J)!$OMP END ORDEREDEPS = MAX ( EPS, ABS( S - B( I, J )))21CONTINUE!$OMP END DO !$OMP END PARALLEL | DO 21 J = 2, N-1!$OMP PARALLEL PRIVATE(S)!$OMP DO REDUCTION(EPS,MAX)DO 21 I = 2, N-1!$OMP ORDEREDS = A(I,J)A( I, J ) = (W / 4) * (A( I-1, J ) + A( I+1, J ) + A( I, J-1 ) +*A( I, J+1 )) + ( 1-W ) * A( I+1, J+1)B(I,J) = A(I,J)!$OMP END ORDEREDEPS = MAX ( EPS, ABS( S - B( I, J )))!$OMP END DO!$OMP END PARALLEL 21 CONTINUE | | Стоимость = 19*8*8 + 4*8*8/4 + 18 = 1298Количество приватных = 4Время инициализации = 5Время синхронизации переменных и удаления региона = 9 Итого: 18 | Стоимость = 8*(19*8 + 4*8/4 + 16) = 1408Количество приватных = 3Время инициализации = 5Время синхронизации переменных и удаления региона = 8 Итого: 16 | | | Рис. 17. Сравнение вариантов распараллеливания в 2-м регионе программы "модифицированный SOR".На Рис. 17 показаны возможные варианты параллелизма для данного региона. Как видно, случай с конвейером не будет рассмотрен, из-за того, что элемент A(I,J) зависит от "бокового" элемента A(I+1,J+1). Стоимость последовательная = 23*8*8=1472, следовательно, будет выбран 1-й вариант.На выходе получим следующую программу:program sorparameter (n = 10)real a(n,n),b(n,n),eps,maxeps,winteger itmaxprint *, '********** TEST_SOR **********'itmax = 20maxeps = 5.000000e-006w = 5.000000e-001!$OMP PARALLEL PRIVATE(i)!$OMP DOdo j = 1,ndo i = 1,nif (i .eq. j) thena(i,j) = n + 2elsea(i,j) = (-(1.0))endifenddoenddo!$OMP END DO!$OMP END PARALLELdo it = 1,20eps = 0!$OMP PARALLEL PRIVATE(i) SHARED(a) PRIVATE(s)!$OMP DO ORDERED REDUCTION(MAX:eps)do j = 2,n - 1do i = 2,n - 1!$OMP ORDEREDs = a(i,j)a(i,j) = 5.000000e-001 / 4 * (a(i - 1,j) + a(i + 1,j) + a&(i,j - 1) + a(i,j + 1)) + (1 - 5.000000e-001) * a(i + 1,j + 1)b(i,j) = a(i,j)!$OMP END ORDEREDeps = max (eps,abs (s - b(i,j)))enddoenddo!$OMP END DO!$OMP END PARALLELprint 200, it,eps200 FORMAT(' IT = ',I4, ' EPS = ', E14.7)if (eps .lt. 5.000000e-006) goto 4enddo4 open (unit = 3,file = 'SOR.DAT',form = 'FORMATTED',status = 'UNKNO&WN')write (unit = 3,fmt = *) aclose (unit = 3)endОбщее время последовательного выполнения: 29623 у.е.Общее время параллельного выполнения (4 нити): 26143 у.е.Суммарное ускорение: в 1,13 раза5.5.4 Программа "Модифицированный Якоби"Данный пример приведен для того, чтобы показать работу "Эксперта", при установке директивы NOWAIT. Исходная программа "Якоби" была изменена, чтобы проверка установки NOWAIT была успешна. Работа "Эксперта" на этом примере повторяет действия из пункта 5.5.1 за исключением того, что проверка установки NOWAIT даст положительный результат.1) Листинг последовательной программыPROGRAM JACPARAMETER (L=8, ITMAX=20)REAL A(L,L), EPS, MAXEPS, B(L,L), C(L,L)C arrays A and B with block distributionPRINT *, '********** TEST_JACOBI **********'MAXEPS = 0.5E - 7Cnest of two parallel loops, iteration (i,j) will be executed onCprocessor, which is owner of element A(i,j)DO 1 J = 1, LDO 1 I = 1, LA(I, J) = 0.IF(I.EQ.1 .OR. J.EQ.1 .OR. I.EQ.L .OR. J.EQ.L) THENB(I, J) = 0.ELSEB(I, J) = ( 1. + I + J )ENDIF1 CONTINUEDO 2 IT = 1, ITMAXEPS = 0.Cvariable EPS is used for calculation of maximum valueDO 21 J = 2, L-1DO 21 I = 2, L-1A(I, J) = B(I, J)21 CONTINUECCopying shadow elements of array A fromCneighbouring processors before loop executionDO 22 J = 2, L-1DO 22 I = 2, L-1A(I, J) = (C( I-1, J ) + C( I, J-1 ) + C( I+1, J)+* C( I, J+1 )) / 422 CONTINUEPRINT 200, IT, EPS200 FORMAT(' IT = ',I4, ' EPS = ', E14.7)IF ( EPS . LT . MAXEPS ) GO TO 32 CONTINUE3 OPEN (3, FILE='JAC.DAT', FORM='FORMATTED', STATUS='UNKNOWN')WRITE (3,*) BCLOSE (3)END2) Выходная программаprogram jacparameter (l = 8,itmax = 20)real a(l,l),eps,maxeps,b(l,l),c(l,l)! arrays A and B with block distributionprint *, '********** TEST_JACOBI **********'maxeps = 5.000000e-008!nest of two parallel loops, iteration (i,j) will be executed on!processor, which is owner of element A(i,j)!$OMP PARALLEL PRIVATE(i)!$OMP DOdo j = 1,ldo i = 1,la(i,j) = 0.if (i .eq. 1 .or. j .eq. 1 .or. i .eq. l .or. j .eq. l) thenb(i,j) = 0.elseb(i,j) = 1. + i + jendifenddoenddo!$OMP END DO!$OMP END PARALLELdo it = 1,itmaxeps = 0!variable EPS is used for calculation of maximum value!$OMP PARALLEL PRIVATE(i)!$OMP DOdo j = 2,l - 1do i = 2,l - 1a(i,j) = b(i,j)enddoenddo!Copying shadow elements of array A from!neighbouring processors before loop execution!$OMP END DO NOWAIT!$OMP DOdo j = 2,l - 1do i = 2,l - 1a(i,j) = (c(i - 1,j) + c(i,j - 1) + c(i + 1,j) + c(i,j +&1)) / 4enddoenddo!$OMP END DO!$OMP END PARALLELprint 200, it,0200 FORMAT(' IT = ',I4, ' EPS = ', E14.7)if (0 .lt. 5.000000e-008) goto 3enddo3 open (unit = 3,file = 'JAC.DAT',form = 'FORMATTED',status = 'UNKNO&WN')write (unit = 3,fmt = *) bclose (unit = 3)endОбщее время последовательного выполнения: 7667 у.е.Общее время параллельного выполнения (4 нити): 2471 у.е.Суммарное ускорение: в 3,1 раза6. ЗаключениеВ рамках дипломной работы был реализован "Эксперт по распараллеливанию на мультипроцессор", как компонент "Системы автоматизации распараллеливания".Работа системы была протестирована на примерах, описанных в пункте 5.5. В качестве выходного результата формируется файл с выходной программой, а также файл, описывающий пошаговые действия "Эксперта" с аргументированием причины формирования выходного файла, а также подсчитывающего ускорение программы.Проект реализован в программе Visual Studio .NET на языке C++. Общий объем программного кода, реализующего "Эксперт"- свыше 1800 строк.Перечень принятых терминовПотенциально Параллельный Цикл (ППЦ) - цикл, который можно распараллелить средствами OpenMP, не обязательно эффективно.Цикл Неподдающийся Распараллеливанию (ЦНР) - циклы с зависимостями следующих видов:1) содержащие ввод/вывод,2) содержащие вызовы процедур,3) содержащие выход из цикла,4) содержащие неизвестные анализатору зависимости,5) циклы, с которыми не справился анализатор.Параллельный регион - последовательность циклов, линейных фрагментов, ветвлений, которая будет заключена в рамки !$OMP PARALLEL - !$OMP END PARALLEL.Вариант параллелизма программы (Вариант параллелизма) - вариант директив OpenMP, описывающих параллельные области и параллельные циклы (без директив локализации переменных).Вариант локализации переменных (Вариант локализации) - вариант директив локализации переменных. Для каждого варианта параллелизма может существовать несколько вариантов локализации.Схема распараллеливания - фиксация одного варианта параллелизма и одного варианта локализации.1-е внутреннее представление - дерево, по структуре схожее с деревом из Базы Данных, в котором помечены все ППЦ и для каждого ППЦ обозначены пометки для локализации. Является результатом работы 1-го шага.2-е внутреннее представление - дерево, по структуре схожее с деревом из Базы Данных, в котором расставлены пометки, по которым в базу данных можно занести комментарии по распараллеливанию (Распараллеливание и Локализацию). Является результатом работы 3-го шага.Наилучшие комментарии - комментарии такие, что оценочная функция для программы с такими комментариями будет минимальна по сравнению с программой с любыми другими комментариями. Нахождение таких комментариев - главная задача эксперта.Проверка Альтернативного Распараллеливания - нахождения минимума оценочной функции между текущим 2-м внутренним представлением и неким другим (альтернативным) распараллеливанием, с фиксацией распараллеливания с минимальной оценочной функцией во 2-м внутреннем представлении.Проверка Альтернативной Локализации - нахождения минимума оценочной функции для набора локализаций для данного распараллеливания с фиксированием комментариев, соответствующих минимальной оценочной функцией во 2-м внутреннем представлении.
Страницы: 1, 2, 3, 4, 5, 6
|
|
|
© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент. |
|
|