2016-12-07 12 views
0

서브 커뮤니케이터에서 PetscInitialize를 호출하는 것이 왜 유익한 지 알 수있는 사람이 있는지 궁금합니다. 예를 들어 4 코어에서 실행 중이지만 두 개만 Petsc를 사용해야합니다. 나는서브 커뮤니케이터에서 PetscInitialize를 호출하는 이점

PETSC_COMM_WORLD=mySubCommunicator

을 설정하여 만 두 개의 프로세스를 포함한 subcommunicator에 PetscInitialize를 호출 할 수 있지만, 난 그냥 MPI_COMM_WORLD에 그것을 초기화 할 수 없습니다 만 subcommunicator에 Petsc 루틴을 호출? 내가 묻는 이유는 단지 코드가 MPI_COMM_WORLD으로 초기화되는 것을 단순화 할 것이지만 결과적으로 부정적인 결과를 낳고 싶지 않을 것입니다. 의견을 주셔서 감사합니다.

답변

1

PETSC_COMM_WORLD에서 순위의 하위 집합과 함께 일괄 작업을 호출하지 않는 한 괜찮습니다. 암시 적으로 내가 찾을 수있는 유일한 기능은 PetscMallocDump, PetscMPIDump 및 일부 PetscLog*입니다. 모든 등급에서 PetscFinalize으로 전화해야합니다.