#pytanie z #programowanie #clang #cpp #openmp Mam bardzo prosty programik w C wykorzystujący OpenMP. Zadaje mu ilość operacji dla pętli i w tej pętli inkrementuje zmienną. Na końcu pokazuje wartość tej zmiennej. Wartość zmiennej powinna być równa ilości iteracji. I tak jest ale w przypadku gdy program jest sekwencyjny. Gdy włączę równoległość to wyniki wychodzą różne i nie dobijają do zadanej ilości operacji.
Mam bardzo prosty programik w C wykorzystujący OpenMP. Zadaje mu ilość operacji dla pętli i w tej pętli inkrementuje zmienną. Na końcu pokazuje wartość tej zmiennej. Wartość zmiennej powinna być równa ilości iteracji. I tak jest ale w przypadku gdy program jest sekwencyjny. Gdy włączę równoległość to wyniki wychodzą różne i nie dobijają do zadanej ilości operacji.
http://stackoverflow.com/questions/7798010/openmp-atomic-vs-critical