OpenMP를 사용하여 별도의 CPU에서 두 개의 프로세스를 실행하려고합니다. 이 경우 각 CPU에는 하이퍼 스레딩 (12 개의 하드웨어 스레드)이있는 6 개의 코어가 있습니다. 그들은 서로의 PID를 아는 경우 더 쉽게 보이는 동기화를 수행해야합니다. 그래서 나는 GOMP_CPU_AFFINITY 환경 변수에 대해 다른 값을 사용하여 호출 된 에서 fork
하지 순차적으로. 병렬로 처리하면 속도가 향상 될 것이라고 생각하여 #pragma 연산자를 적용했습니다. 순차적으로 실행할 때 아무런 문제가 없지만 결과는 좋지만 #pragma omp parallel과 함께 실행할 때 (때때로 다른 지점에서) 알고리즘 내에서 segfault가 발생합니다. #pragma omp parallel for
for(int i =
내가 GCC와 수세에 --version 4.9.4 > g++ -std=c++11 -o a.exe -fopenmp ./file.cpp
> ./a.exe
./a.exe을 OpenMP를 사용하는 프로그램을 컴파일하기 위해 노력했습니다 찾을 수 없습니다/USR/lib64에/libgomp.so.1 : (./a.exe에 필요한) 를 찾을 수없는 버전`GOMP_4
-fopenmp가 지정되었을 때 libgomp를 자동으로 연결하지 않도록 컴파일러/링커 지시문을 gcc에 공급할 수 있어야합니다. 이유는 인텔의 MKL BLAS에 맞서 빌드하려고하기 때문입니다. MKL은 다중 스레드 (예 : libmkl_intel_thread 또는 libmkl_gnu_thread)를 처리하기 위해 별도의 Intel 라이브러리를 추가해야합니
arm-elf-gcc 및 arm-rtems-gcc를 사용하여 vsoc_beta에 대한 일부 테스트를 실행하려고합니다. 그러나 두 컴파일러는 나에게 같은 오류를 준 : /home/student/vsoc-beta/apps/libgomp/root.o: In function `main':
/home/student/vsoc-beta/apps/libgomp/libg
OpenMP를 사용하는 QT 응용 프로그램이 있습니다. (mingw, win8) qt 생성자없이 .exe 파일을 사용하고 싶습니다. 이미 빌드 디렉토리에 모든 dll을 넣었지만 .exe 파일을 실행하면이 메시지가 나타납니다. 그런데 Qt 생성자에서 실행하면 모든 것이 잘 작동합니다. 내 응용 프로그램에있는 유일한 OpenMP를 코드입니다 : #pragma