/*
	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 <stdio.h>
#include <omp.h>
#include <mtmalloc.h>
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
}

