2013-04-10 1 views
1

다음 링크 MPICH/MVAPICH에서 함수 이름 접두사 규칙을 나타낸다 (예를 들어, MPID 및 MPIU 접두사) (설명하지 위의 링크)? 어느 레이어에서 구현되고 어느 레이어에 액세스 할 수 있습니까? advnaceMPIR 접두사/MVAPICH

답변

2

MPIR_에 덕분 보통 실제 MPI_ 인터페이스 미만이지만, 그 심볼 일반적 MPID_ 프리픽스를 가지고 추상적 장치 인터페이스 (ADI) 위에 최상위 계층에 정의 된 심볼을 위해 사용된다. 대부분 MPIU_ 심볼도이 계층에 정의되어 있지만 일반적으로 "MPI 비즈니스 로직"을 구현하지 않는 완전히 다른 유틸리티 루틴을위한 것입니다. 이러한 명명 규칙이 항상 그렇듯이, 모든 경우에 엄격하게 협약은 100 % 준수되지 않았습니다.

출처 : my brain; 저는 5 년 이상 MPICH를 개발해 왔습니다. 우리가 실수 MPI 네임 스페이스에 춤추는 잠재적으로 미래의 표준화와 충돌하거나 실제로 표준 기능이 무엇인지에 대해 사용자를 혼란스럽게하지 않음을 의미하기 때문에 도서관 내에서 정의 된 루틴에 대한 비 MPI_ 이름을 사용

중요하다 : http://www.mpi-forum.org/docs/mpi22-report/node31.htm#Node31

우리는 ISO C 선언 형식을 사용합니다. 모든 MPI 이름은 접두어 MPI_이며, 정의 된 상수는 모두 대문자이며, 정의 된 유형과 함수는 접두사 뒤에 대문자가 하나 있습니다. 프로그램은 접두어 MPI_으로 시작하는 이름을 가진 변수 또는 함수를 선언해서는 안됩니다. 프로파일 링 인터페이스를 지원하려면 프로그램에서 접두어 PMPI_으로 시작하는 이름을 가진 함수를 선언해서는 안됩니다.

+0

덕분에, 그래서 당신은 MPI 인터페이스와 장치 층 사이에 층이 있다는 말을하고 있습니다. 따라서 "MPID_ 함수가 MPI 수준에서 사용할 장치에 의해 구현됩니다"라고 말하면 "MPI 수준"으로 MPIR을 의미합니다. 그렇습니까? 그리고 "MPI_ 함수가 MPI 레벨에 의해 애플리케이션에서 사용하도록 구현되었습니다"라고 말하면 MPI 인터페이스를 의미합니까? – Iman

+0

일종의 방법은보고 싶은 방식에 따라 다릅니다. 나는 "MPI 레벨"과 "MPIR 레벨"을 다이어그램에서 같은 레이어로 봅니다. 즉, 인터페이스는 잘 정의 된 함수 세트와 데이터 유형 (잘 설계된 헤더 집합을 생각해보십시오.)으로 이상적으로 구성된 레이어 간의 경계입니다. 레이어는 이러한 함수의 실제 구현이 존재하는 곳입니다 (헤더의'.c' 파일). 불행하게도 저는 이것을 명확하게 보여주는 다이어그램을 가지고 있지 않습니다. –

+0

정보를 제공해 주셔서 감사합니다. – Iman

관련 문제