2013-10-16 3 views
0

배열 A [m X n] 인 경우 [0..255] 의 [i] [j] 분할 배열을 2 또는 4 부분으로 만듭니다. 각 부품의 카운트 주파수. 결합 후. 이것을 구현하기 위해 OpenMP를 사용하는 방법을 보여줄 수 있습니까?요소의 빈도 계산

+2

시도해 보셨나요? – kangshiyin

+0

사용자에게 작업을 요청하지 마십시오. OpenMP가 어떻게 작동하는지 배우고 코드를 작성하십시오. 문제가 발생하면 해결책을 찾거나 질문하십시오. –

+0

나는 n 개의 부분 (n 개의 실)으로 나뉘었다. 나는 n 개의 배열 freq [n] [256]을 사용한다. 각 스레드의 각 배열 카운트 빈도. n 개의 배열을 결합한 후. 내 노트북 ​​2 코어/4 스레드, num_threads = 2, 1 스레드를 사용하는 것보다 빠르지 만 num_theads = 4 인 경우 2 스레드를 사용하는 것보다 느립니다. 내 질문을 게시, 다른 사람이 나에게 다른 추천을 표시하기를 바랍니다. – shang12

답변

0

코드가 없으면 프로그램에 어떤 문제가 있는지 알 수 없습니다. n 개의 배열을 결합한다고 해? 어떻게 그걸합니까? 그것이 포트란이라면, 어레이 축소를 사용 중일 수 있습니다. C/C++ 인 경우 배열을 어떻게 조합합니까? OpenMP for C/C++은 배열 축소를 지원하지 않습니다 (OpenMP 4.0의 사용자 정의 축소 제외).

건배, - 마이클

+0

축소를 사용하지 마십시오. 예는 4 개의 스레드를 사용합니다 : 4 개의 배열 freq [4] [256]. 주파수 [i] = freq [0] [i] + freq [1] [i] + freq [2] [i] + freq [3] [i] – shang12