Как подключить openMP? - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <time.h> #include <conio.h> #include <locale.h> #include <stdlib.h> volatile long unsigned C[1000][1000], A[1000][1000], B[1000][1000]; int main() { setlocale(LC_CTYPE, "Rus"); time_t start, end; int i, j, k, t, m; printf("Введите порядок матрицы\n"); scanf_s("%d", &m); start = time(NULL); for (i = 0; i < m; i++) for (j = 0; j < m; j++) { A[i][j] = 1 + rand() % (1 - 9); B[i][j] = 1 + rand() % (1 - 9); } for (i = 0; i < m; i++) { for (j = 0; j < m; j++) { t = B[i][j]; B[i][j] = B[j][i]; B[j][i] = t; } } for (i = 0; i < m; i++) { for (j = 0; j < m; j++) { C[i][j] = 0; for (k = 0; k < m; k++) C[i][j] += A[i][k] * B[j][k]; printf(" %d", C[i][j]); } printf("\n"); } end = time(NULL); printf("Матрица посчиталась за %f секунд.\n", difftime(end, start)); _getch(); }
Решение задачи: «Как подключить openMP?»
textual
Листинг программы
#include <stdio.h> #include <time.h> #include <conio.h> #include <locale.h> #include <stdlib.h> #include <omp.h> volatile long unsigned C[1000][1000], A[1000][1000], B[1000][1000]; int main() { setlocale(LC_CTYPE, "Rus"); time_t start, end; int i, j, k, t, m; printf("Введите порядок матрицы\n"); scanf_s("%d", &m); start = time(NULL); #pragma omp parallel for for (i = 0; i < m; i++) for (j = 0; j < m; j++) { A[i][j] = 1 + rand() % (1 - 9); B[i][j] = 1 + rand() % (1 - 9); } for (i = 0; i < m; i++) { for (j = 0; j < m; j++) { t = B[i][j]; B[i][j] = B[j][i]; B[j][i] = t; } } for (i = 0; i < m; i++) { for (j = 0; j < m; j++) { C[i][j] = 0; for (k = 0; k < m; k++) C[i][j] += A[i][k] * B[j][k]; printf(" %d", C[i][j]); } printf("\n"); } end = time(NULL); printf("Матрица посчиталась за %f секунд.\n", difftime(end, start)); _getch(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д