| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > OpenMP |
| Автор: крылья 13.4.2015, 16:08 |
| Ребят хочу распараллелить перемножение матриц с помощью технологии OpenMP перед циклами я добавил директиву "#pragma omp paralell private (j, k) " чтобы параллельно выполнялся.....пытаюсь запустить , пишет "требуется имя директивы" не могу понять что он хочет........ если я уберу дерективу то матрицы будут последовательно перемножаться, а если оставлю и будет работать то они перемножаться параллельно , и в дальнейшем я могу посмотреть время выполнения и оценить разницу))))) буду благодарен за помощь!!! [CPP] void MatricA::basic_parallel_algorithm(double *a, double *b, double *c) { long t1 = clock(); int Size = N; #pragma omp paralell for private (j, k) { for (i = 0; i < Size; i++) { for (j = 0; j < Size; j++) { for (k = 0; k < Size; k++) { c[i*Size + j] += a[i*Size + k] * b[k*Size + j]; } } } } long t2 = clock(); cout << "time--> " << t2 - t1 << endl; // вывод времени в миллисекундах } [/CPP] |
| Автор: rudolfninja 14.4.2015, 12:32 |
| Прочтите http://habrahabr.ru/company/intel/blog/85273/ по этому поводу. В частности раздел "Директива for". Должно помочь...надеюсь =) |