Главная /
Параллельное программирование с OpenMP /
Для выделения памяти для SHARABLE-переменных в технологии Intel Cluster OpenMP требуется использовать:
Для выделения памяти для SHARABLE
-переменных в технологии Intel Cluster OpenMP требуется использовать:
вопрос
Правильный ответ:
обычные функции
malloc
, realloc
и т.д
специальные функции
kmp_sharable_malloc
, kmp_sharable_realloc
и т.д
как обычные, так и специальные функции. Доступ к переменным, для которых память выделена при помощи специальных функций осуществляется быстрее
Сложность вопроса
54
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
Какой человек ищет вот эти ответы с интуитом? Это же не сложно
29 апр 2018
Аноним
Очень сложные тесты
13 окт 2016
Другие ответы на вопросы из темы программирование интуит.
- # Причинная модель консистентности памяти определяется следующим условием:
- # Найдите ошибку в следующем фрагменте программы: #pragma omp parallel default(shared) { int i; #pragma omp for schedule(dynamic) for (i=0; i<n; i++) { #pragma omp ordered printf("iteration %d\n", i); } }
- # Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 void work(int i); int main () { #pragma omp parallel { #pragma omp for for (int i=0;i<N;i++) work (i); } }
- # Директива SHARABLE в технологии Intel Cluster OpenMP:
- # Найдите ошибку в следующем фрагменте MPI/OpenMP-программы, реализующей метод релаксации Якоби: int jacobi(int p, int id, int my_rows, double **u, double **w) { double diff, global_diff, tdiff; int i,j,it; MPI_Status status; it=0; for(;;) { if (id>0) MPI_Send (u[1], N, MPI_DOUBLE, id-1, 0, MPI_COMM_WORLD); if (id<p-1) { MPI_Send (u[my_rows-2], N, MPI_DOUBLE, id+1, 0, MPI_COMM_WORLD); MPI_Recv (u[my_rows-1], N, MPI_DOUBLE, id+1, 0, MPI_COMM_WORLD, &status); } if (id>0) MPI_Recv (u[0], N, MPI_DOUBLE, id-1, 0, MPI_COMM_WORLD, &status); diff=0.0; #pragma omp parallel private (i,j,tdiff) { tdiff=0.0; #pragma omp for for (i=1; i<my_rows; i++) for (j=1; j<N-1; j++) { w[i][j]=(u[i-1][j]+u[i+1][j]+u[i][j-1]+u[i][j+1])/4.0; if (fabs(w[i][j]-u[i][j]) >tdiff) tdiff=fabs(w[i][j]-u[i][j]); } #pragma omp for nowait for (i=1; i<my_rows; i++) for (j=1; j<N-1; j++) u[i][j]=w[i][j]; if (tdiff > diff) diff=tdiff; } MPI_Allreduce (&diff, &global_diff, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); if (global_diff <= EPSILON) break; it++; } return it; }