2013-04-24 2 views
0

원칙적으로 부스트 파이썬 라이브러리를 사용하여 MPI 기능을 가진 C++에서 사용자 정의 파이썬 모듈을 만들 수 있습니까? 나는 도서관의 기능의 일부 MPI 기능을 포함 할 수 있다면 그래서 내가 궁금하고이 같은 파이썬 스크립트를 만들 :mpi가 내장 된 맞춤형 부스트 파이썬 모듈?

해봐요()가 parallelisation에 대한 몇 가지 기회 기능입니다
import myModule 

A = myModule.myClass() 

A.doSomething() 

. 그러면 할 것입니다.

mpirun -np [NUM_PROCS] python my_script.py [OPTIONS] 

을 얻고 병렬 기능을 사용하십시오. 이것이 가능하다면 어떻게해야할까요? 필자는 분명히 모듈의 소스에 MPI 라이브러리를 포함해야하지만 Python 스크립트에서 병렬로 실행되도록해야할까요? GIL과 전투를해야합니까? 이것에 대해서는 많은 문서가없는 것처럼 보이므로, 나는 그것에 대해 어떻게 생각하는지 조금 우둔합니다. 또는 일부 문서를 어딘가에 놓친 경우 URL을 크게 알 수 있습니다.

+0

[mpi4py] (http://mpi4py.scipy.org/)를 사용하는 대신이 작업을 수행 할 이유가 있습니까? –

+0

글쎄, 처음에는 파이썬으로 작성된 라이브러리를 가지고 있었지만 매우 느렸다. 이제는 C++로 컴파일되었지만 훨씬 빠릅니다. 그러나 다시 실행하는 데 꽤 오래 걸리는 지점까지 확장했습니다 (즉, 더 많은 숫자 조작 기능이 추가되었습니다). 기본 계산을 수행하는 데는 몇 시간이 걸리지 만 코드를 확장하면 하루의 반으로 단축됩니다. – orentago

답변

2

몇 가지 실험을 한 후이를 수행 할 수 있습니다. 라이브러리는 mpicxx로 컴파일해야하며이를 호출하는 파이썬 스크립트는 mpi 환경을 초기화해야합니다. 예를 들어, mpi4py를 사용하여 MPI.COMM_WORLD를 수행했습니다. 라이브러리 함수는 모든 프로세스에 의해 호출되며 함수는 프로세스 간의 데이터 흐름을 제어하는 ​​코드를 포함 할 수 있습니다.

관련 문제