2012-01-29 3 views
0

사실 openmp가 모든 스레드에 의해 실행된다는 사실을 고려하면 openmp 병렬 응용 프로그램을 작성할 때 조심해야합니다. 왜 우리는 같은 멀티 스레드 버전보다 openmp를 선호해야합니까? 알고리즘?OpenMP SIMD 대 멀티 스레드

+0

OpenMP는 쓰기가 훨씬 쉽기 때문입니다. 내가 물어 보자 : 왜 OpenMP 병렬 응용 프로그램을 작성하는 동안 조심해야하나요? – Nobody

+0

거짓 공유 때문에 (SIMD로 인해) 조건문을 피하십시오. – peeyush

+0

OpenMP 전문가가 아니지만 이해하기 쉽습니다. pragma를 추가하여 멀티 스레드 응용 프로그램을 쉽게 만들 수 있습니다. 단지 pragma를 변경하여 단일 코어 응용 프로그램으로 쉽게 변환 할 수 있습니다. 컴파일 플래그. OpenMp는 cpus와 동일한 수의 스레드를 생성합니다. – sherif

답변

2

OpenMP는 3.0 이후부터는 더 이상 SiMD가 아닙니다.

그리고 일반적인 이유는 다음과 같습니다 코드를 사용/양의

  • 용이합니다.
  • -fopenmp 플래그없이 동일한 코드를 컴파일하고 "레거시 코드 레트로 호환성"을 얻을 수 있습니다. 분명히 #pragma 문을 사용하는 것과 관련이 있습니다.