Zrównoleglanie za pomocą OpenMP w C

0

Witam

Mam napisany prosty programik liczący iloczyn 2 dużych liczb. Teraz muszę go zrównoleglić za pomocą dyrektywy OpenMP.
Jako tako udaje mi się to w Visual Studio, ale wolałbym to robić w Code Blocks (a jeszcze bardziej wolałbym nie robić wcale :) ).
Powiedzmy, że kod wygląda mniej więcej tak: (oczywiscie nie jest to mnożenie tylko taki trening)

 #include "omp.h"
#include <stdio.h>
#include <windows.h>

int main() {
    double start = omp_get_wtime( );
    double end = omp_get_wtime( );
    double wtick = omp_get_wtick( );

    printf_s("start = %.16g\nend = %.16g\ndiff = %.16g\n",
             start, end, end - start);

    printf_s("wtick = %.16g\n1/wtick = %.16g\n",
             wtick, 1.0 / wtick);
}

Próbuję zbudować i dostaję:
C:\Users\MaciekLocal\Desktop\Studia\PRiR\Projekt\Czas OMP\TimeCount\main.c|6|undefined reference to omp_get_wtime'| C:\Users\MaciekLocal\Desktop\Studia\PRiR\Projekt\Czas OMP\TimeCount\main.c|7|undefined reference to omp_get_wtime'|
C:\Users\MaciekLocal\Desktop\Studia\PRiR\Projekt\Czas OMP\TimeCount\main.c|8|undefined reference to `omp_get_wtick'|

Byłbym bardzo wdzięczny za pomoc, bo od tego zależy moje zaliczenie przedmiotu :)

Pozdrawiam, Maciek

0

Nie linkujesz OpenMP.

Btw, odejdę trochę od tego tematu. Ostatnio na forum sporo zapytań o OpenMP...dla wszystkich entuzjastów tej biblioteki, spróbujcie wykonać redukcję poprzez przeciążenie operatorów, np. "+" i sprawdźcie, czy zadziała :)

0

Jak to zrobić ?

0

W opcjach kompilatora dodaj: -fopenmp. Dodaj także ścieżkę do nagłówków biblioteki.

0

Ok zrobiłem tak:
Settings -> Compiler -> Other settings -> -fopenmp
i dodałem poprzez add File omp.h

Ale żadnej różnicy
Dodam, że jestem totalnym leszczem C, także jak robię jakieś rażące błędy to proszę o wyrozumiałość :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1