Zrównoleglanie za pomocą OpenMP w C

Zrównoleglanie za pomocą OpenMP w C
G1
  • Rejestracja: dni
  • Ostatnio: dni
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)

Kopiuj
 #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

satirev
  • Rejestracja: dni
  • Ostatnio: dni
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 :)

G1
  • Rejestracja: dni
  • Ostatnio: dni
0

Jak to zrobić ?

satirev
  • Rejestracja: dni
  • Ostatnio: dni
0

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

G1
  • Rejestracja: dni
  • Ostatnio: dni
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ść :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.