openmp

    0

    1답변

    일부 병렬 처리를 위해 이미 OpenMP를 사용 중이며 차단 수신과 함께 제어 스레드를 추가하려고합니다. 대부분의 경우이 스레드는 차단 될 것이므로 코어를 차지하면서 거기에 앉아있는 것을 원하지 않습니다. 이상적으로 블로킹 호출은 추가 작업자 스레드에 대한 출력량을 트리거합니다. OpenMP가 차단 호출을 어떻게 처리합니까? 이 같은 뭔가 : #includ

    0

    2답변

    으로 줄이기 this post 코드 : for(i = 0; i< ROUND_DOWN(contours.size(),3);i+=3) { cv::convexHull(contours[i], convexHulls[i]); cv::convexHull(contours[i+1], convexHulls[i+1]); cv::convexHull(contours[i+2]

    0

    1답변

    이 코드를 실행할 때마다 병렬 섹션에서 다른 런타임에 걸리는 시간이 표시됩니다. 내 코어에 따라 일정한 수의 스레드로 시도했지만 여전히 노력은 쓸모 없습니다. 이 프로그램은 pi 값을 계산합니다. gcc -fopenmp으로 컴파일되었습니다. #include <stdio.h> #include <omp.h> static long num_steps = 10

    1

    1답변

    win (Win7 x64, Corei7 3.4HGz) 및 Mac (10.12.3 Core i7 2.7 HGz)에서 openmp의 성능을 테스트하는 코드를 작성했습니다. xcode에서 컴파일 된 기본값을 설정하는 콘솔 응용 프로그램을 만들었습니다. 내가 LLVM 3.7 및 OpenMP 5 (opm.h에서 KMP_VERSION_MAJOR = 5를 정의하고 KM

    0

    1답변

    C++로 프로그래밍하고 OpenMP를 사용하여 병렬 처리합니다. 이 기계에는 각 소켓 당 2 개의 CPU 소켓과 8 개의 코어가 있습니다. 내가 인텔 컴파일러로 컴파일 이후, 나는 바이너리를 실행할 때 나는 다음과 같은 메시지를 볼 수 있습니다, 자세한 옵션을 다음과 같은 환경 변수를 export KMP_AFFINITY=verbose,scatter 을

    3

    1답변

    다음 코드가 있습니다. 함수는 단순히 64 비트 정수의 비트 수를 계산합니다. test 함수는 내가 더 복잡한 코드에서 수행하고있는 비슷한 예제 중 하나입니다.이 코드에서는 행렬에 쓰기가 for 루프의 성능을 크게 떨어 뜨리는 이유와 그 이유를 파악하려고합니다. 그것은 그렇게하고, 그것에 대한 해결책이 있다면. #include <vector> #inclu

    0

    1답변

    결과 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451 -84215045 -842150451 -842150451 -842150451 -84215045 -842150451 -842150451 처럼 그리고 사람이 함께하시기 바

    0

    3답변

    나는 C++과 GMP를 사용하여 작은 Collatz conjecture calculator에서 작업하고 있으며 OpenMP를 사용하여 병렬 처리를 구현하려고 시도하고 있지만 스레드 안전과 관련하여 문제가 발생합니다. 약자로, 코드를 실행하려고하면이를 얻을 것입니다 : *** Error in `./collatz': double free or corruptio

    0

    1답변

    저는 컴퓨터 비전 라이브러리를 개발하는 회사에서 일하고 있습니다. 그것은 부분적으로 더 복잡한 알고리즘을 가진 많은 행렬 연산을 포함합니다. 모든 것을 더 빠르게하기 위해 우리는 행렬 연산에서 실행해야 할 엄청난 양의 이중 루프를 병렬화하기 위해 OpenMP를 사용하기 시작했으며,이 알고리즘을 때로는 여러 개를 호출 할 수있는 더 복잡한 알고리즘을 사용하기

    1

    1답변

    vector::resize(...) 함수를 사용하여 행과 열의 수를 알고 있고 이미 설정 한 행렬 (std::vector< std::vector<T> >)을 채워야합니다. 각 행렬 요소의 개체는 class T의 개체이며, 다른 개체 중에서는 std::set<int>이 있어야합니다. 이 세트의 크기를 미리 알 수있는 방법은 없습니다. 난 다음, m 같은 루프