/* Calc simple matrix WindyHana's Solanara: OpenMP http://www.solanara.net/solanara/openmp cc -O3 -mt -lmtmalloc -xopenmp=parallel -o openmpmatrix openmp_matrix.c */ #include #include #include const int nrows = 10; const int ncols = 1000000; int main(int argc, char *argv[]) { int* array[nrows]; printf("Initializing...\n"); #pragma omp parallel for for (int i = 0; i < nrows; i++) { array[i] = (int*) malloc(sizeof(int) * ncols); } #pragma omp parallel for for (int i = 0; i < nrows; i++) { printf("Calc %d column by ThreadNum %d\n", i, omp_get_thread_num()); for (int j = 0; j < ncols; j++) { for (int k = 0; k < nrows; k++) { array[i][j] = array[i][k] * array[k][j]; } } } return 0 }