DVSM에서 ITC
현재 DVSM Architecture에서
ITC(Intel Trace Collector) 를 사용하려합니다
그래서 제가 사용하고 있는 DVSM코드를 수정해서
MPI에서 사용하는 방식 그대로 parameter를 넘기면
ITC가 DVSM코드를 runtime에서 tracing할 수 있게 하려고
합니다만 이에 관한 정보가 거의 없습니다
일단은 MPI 프로그램을 이용해서 각 프로세서에
할당되는 parameter를 파악한 상태고
그걸 그대로 DVSM 코드로 넘겼는데
process 0 에 대한 initialize가 실행되지가 않습니다
char *msp[20];
char **t_argv = msp;
char temp[20][128];
int narg = 0;
int i;
int sv_argc = 5;
int cl_argc = 8;
for(i=0; i<20; i++)
{
t_argv[i] = temp[i];
t_argv[i][0]=0;
}
if(IS_HOST)
{
idm_printf("---------It's HOST!!!\n");
sprintf(t_argv[narg++],"/home/realdale/FESi_VT/FESI_idm/example/gauss/gauss");
sprintf(t_argv[narg++],"-p4pg");
sprintf(t_argv[narg++],"/home/realdale/FESi_VT/FESI_idm/example/gauss/PI");
sprintf(t_argv[narg++],"-p4wd");
sprintf(t_argv[narg++],"/home/realdale/FESi_VT/FESI_idm/example/gauss");
int rval;
if(idm_proc_id==0)
{
rval = VT_initialize(&narg, &t_argv);
idm_printf("VT init Result: %d\n", rval);
}
}
else
{
narg=0;
if(idm_proc_id==1)
{
sprintf(t_argv[narg++],"/home/realdale/FESi_VT/FESI_idm/example/gauss/gauss");
sprintf(t_argv[narg++],"cl12");
sprintf(t_argv[narg++],"33974");
sprintf(t_argv[narg++]," 4amslave");
sprintf(t_argv[narg++],"-p4yourname");
sprintf(t_argv[narg++],"cl13");
sprintf(t_argv[narg++],"-p4rmrank");
sprintf(t_argv[narg++],"%d", idm_proc_id);
}
else if(idm_proc_id==2)
{
sprintf(t_argv[narg++],"/home/realdale/FESi_VT/FESI_idm/example/gauss/gauss");
sprintf(t_argv[narg++],"cl12");
sprintf(t_argv[narg++],"33974");
sprintf(t_argv[narg++]," 4amslave");
sprintf(t_argv[narg++],"-p4yourname");
sprintf(t_argv[narg++],"cl14");
sprintf(t_argv[narg++],"-p4rmrank");
sprintf(t_argv[narg++],"%d", idm_proc_id);
}
else if(idm_proc_id==3)
{
sprintf(t_argv[narg++],"/home/realdale/FESi_VT/FESI_idm/example/gauss/gauss");
sprintf(t_argv[narg++],"cl12");
sprintf(t_argv[narg++],"33974");
sprintf(t_argv[narg++]," 4amslave");
sprintf(t_argv[narg++],"-p4yourname");
sprintf(t_argv[narg++],"cl15");
sprintf(t_argv[narg++],"-p4rmrank");
sprintf(t_argv[narg++],"%d", idm_proc_id);
}
idm_printf("Before init of Client VT \n");
int cval;
cval=VT_initialize(&narg, &t_argv);
idm_printf("Client %d init Result : %d\n", idm_proc_id, cval);
}
이런 식으로 코딩하였는데요
process 0 (IS_HOST) 의 VT_initialize()를 하면
멈춰버립니다
다른 클라이언트 프로세스들은 제대로 동작을 합니다만
MPI에서 전달하는 parameter 는...
server(process 0)에 대해서
실행파일, -p4pg, 실행디렉토리, -p4wd, 디렉토리
순서입니다
그럼...
댓글 달기