1

나는 병렬 프로그래밍에 익숙하지 않다. 하지만 두 응용 프로그램을 같은 응용 프로그램에서 사용할 수 있는지 궁금합니다. 어떤 이점이 있습니까? 할 수 있니? 아무도이 질문을하지 않는 것 같습니다. OpenMP와 MPI를 결합하는 것과 비슷한 질문이 있습니다. 그리고 일반적인 대답은 의존에 대한 예입니다. 하지만 저는 MPI에 익숙하지 않습니다.부스트 결합 :: 스레드와 OpenMP

답변

2

MPI는 의미에서 OpenMP와 직각입니다. MPI는 각 MPI 프로세스가 다른 MPI 프로세스 메모리에 직접 액세스 할 수있는 방법이없는 분산 메모리 시스템을 프로그래밍하는 패러다임입니다 (예 : 다른 컴퓨팅 노드에서 실행되는 다른 프로세스). 요즘 대부분의 컴퓨팅 노드는 멀티 코어이기 때문에 OpenMP 또는 다른 스레딩 방식을 사용하여 각 노드를 프로그래밍하고 MPI를 사용하여 노드간에 메시지를 교환 할 수 있습니다. OpenMP와 boost:threads은 모두 스레딩 패러다임입니다. 일반 스레드 작업을 수행하는 데 boost::threads을 사용하고 특정 데이터 병렬 작업의 경우 개념 상 더 단순한 OpenMP를 사용하는 경우를 제외하고는 혼합하지 않아도됩니다.

+0

MPI로 받으십시오. 멀티 코어 노드에 관심이 있습니다. 기술적으로 boost :: threads는 OpenMP보다 많은 기능을 제공하지만 후자는 단순함의 이점을 가지고 있습니다. 그리고 둘 다 사용하는 유일한 이유는 openmp가 오래된 singlecore 코드를 빠르게 "확장"할 수 있다는 것입니다. Boost :: Threads는 프로그램의 새롭고 쓰여지지 않은 부분을 도울 것입니다. – Palax