1. MPI_Init
개요
int MPI_Init(int *argc, char ***argv)
MPI_Init
호출 전에 MPI 함수 호출 불가MPI_Init
호출은 argument update 가능 but implementation에 의존적실행
MPI_Init
실행 시 MPI_COMM_WORLD
라는 기본 Communicator 생성MPI_COMM_WORLD
: 사용하는 모든 프로세스를 의미MPI Communicator
2. MPI_Finalize
int MPI_Finalize(void)
MPI_Finalize
호출 이후 MPI 함수 호출 불가3. MPI_Comm_size
int MPI_Comm_size(MPI_Comm comm, int *size)
4. MPI_Comm_rank
int MPI_Comm_rank(MPI_Comm comm, int *rank)
1. C code
#include <stdio.h>
#include <mpi.h>
int main(int argc, char *argv[])
{
int ver, subver;
int nRank, nProcs;
char procName[MPI_MAX_PROCESSOR_NAME];
int nNameLen;
// MPI Start
MPI_Init(NULL, NULL);
// Get Current processor rank id
MPI_Comm_rank(MPI_COMM_WORLD, &nRank);
// Get number of processors
MPI_Comm_size(MPI_COMM_WORLD, &nProcs);
// MPI Version Information
MPI_Get_version(&ver, &subver));
if (nRank==0) printf("MPI Version %d.%d\n",ver,subver);
MPI_Get_processor_name(procName, &nNameLen);
printf("Hello World. (Process name=%s, nRank=%d, nProcs=%d)\n",procName,nRank,nProcs);
MPI_Finalize();
return 0;
}
2. Result
NODEFILE
의 상위 4개 노드 사용-np 16
을 지정했다면, node8104도 사용되었을 것