void WINAPI SVMlibParse(int* argc,char **argv,HostData *actHost) { char *Port=0,*Display=0; ConfContext *Context=0; if(!actHost->ProcData || !actHost->ProcData->Context) { Context = (ConfContext*)EProcs.GetContext(actHost,sizeof(ConfContext)); initContext(Context); } else Context = (ConfContext*)actHost->ProcData->Context; Context->StartServer = IsArgPresent(argc,argv,"-mpe"); if(Context->StartServer) { DWORD size = 256; GetComputerName(Context->Display,&size); } if(IsArgPresent(argc,argv,"-alog")) Context->LogFormat = 2; if(IsArgPresent(argc,argv,"-clog")) Context->LogFormat = 1; if(IsArgPresent(argc,argv,"-slog")) Context->LogFormat = 0; GetStringArg(argc,argv,"-display",&Display); GetStringArg(argc,argv,"-port",&Port); if(Port) strcpy(Context->Port,Port); if(Display) strcpy(Context->Display,Display); }
int GetWinspecs(int *argc, char **argv, Winspecs *winspecs) { int myid; MPI_Comm_rank(MPI_COMM_WORLD, &myid); if (!myid) { GetIntArg(argc, argv, "-height", &(winspecs->height)); GetIntArg(argc, argv, "-width", &(winspecs->width)); winspecs->bw = IsArgPresent(argc, argv, "-bw"); GetIntArg(argc, argv, "-xpos", &(winspecs->xpos)); GetIntArg(argc, argv, "-ypos", &(winspecs->ypos)); GetIntArg(argc, argv, "-colors", &(winspecs->numColors)); } MPI_Bcast(winspecs, 1, winspecs_type, 0, MPI_COMM_WORLD); return 0; }
int GetFlags(int *argc, char **argv, Winspecs *winspecs, Flags *flags) { double x, y; int myid, strLens[3]; MPI_Comm_rank(MPI_COMM_WORLD, &myid); if (myid == 0) { GetStringArg(argc, argv, "-l", &(flags->logfile)); GetStringArg(argc, argv, "-i", &(flags->inf)); /* if reading from input file, disable zooming */ if (flags->inf) { flags->zoom = 0; } GetStringArg(argc, argv, "-o", &(flags->outf)); GetIntArg(argc, argv, "-breakout", &(flags->breakout)); if (IsArgPresent(argc, argv, "-randomize")) { flags->randomize = 0; } if (IsArgPresent(argc, argv, "+randomize")) { flags->randomize = 1; } GetIntArg(argc, argv, "-colreduce", &(flags->colReduceFactor)); flags->loop = IsArgPresent(argc, argv, "-loop"); if (IsArgPresent(argc, argv, "-zoom")) { flags->zoom = 0; } if (IsArgPresent(argc, argv, "+zoom") && !flags->inf) { flags->zoom = 1; } flags->askNeighbor = IsArgPresent(argc, argv, "-neighbor"); flags->sendMasterComplexity = IsArgPresent(argc, argv, "-complexity"); flags->drawBlockRegion = IsArgPresent(argc, argv, "-delaydraw"); if (IsArgPresent(argc, argv, "-mandel")) { flags->fractal = MBROT; } else if (IsArgPresent(argc, argv, "-julia")) { flags->fractal = JULIA; } else if (IsArgPresent(argc, argv, "-newton")) { flags->fractal = NEWTON; } GetIntArg(argc, argv, "-maxiter", &(flags->maxiter)); if (GetDoubleArg(argc, argv, "-boundary", &x)) { flags->boundary_sq = x * x; } GetDoubleArg(argc, argv, "-epsilon", &(flags->epsilon)); if (GetDoubleArg(argc, argv, "-rmin", &x)) { NUM_ASSIGN(flags->rmin, DBL2NUM(x)); } if (GetDoubleArg(argc, argv, "-rmax", &x)) { NUM_ASSIGN(flags->rmax, DBL2NUM(x)); } if (GetDoubleArg(argc, argv, "-imin", &x)) { NUM_ASSIGN(flags->imin, DBL2NUM(x)); } if (GetDoubleArg(argc, argv, "-imax", &x)) { NUM_ASSIGN(flags->imax, DBL2NUM(x)); } if (GetDoubleArg(argc, argv, "-radius", &x)) { if (GetDoubleArg(argc, argv, "-rcenter", &y)) { NUM_ASSIGN(flags->rmin, DBL2NUM(y-x)); NUM_ASSIGN(flags->rmax, DBL2NUM(y + x)); } if (GetDoubleArg(argc, argv, "-icenter", &y)) { NUM_ASSIGN(flags->imin, DBL2NUM(y-x)); NUM_ASSIGN(flags->imax, DBL2NUM(y + x)); } } strLens[0] = (flags->logfile) ? strlen(flags->logfile) + 1 : 0; strLens[1] = (flags->inf) ? strlen(flags->inf) + 1 : 0; strLens[2] = (flags->outf) ? strlen(flags->outf) + 1 : 0; } /* End of myid == 0 */ MPI_Bcast(flags, 1, flags_type, 0, MPI_COMM_WORLD); MPI_Bcast(strLens, 3, MPI_INT, 0, MPI_COMM_WORLD); if (myid != 0) { flags->logfile = (strLens[0]) ? (char *)malloc(strLens[0] * sizeof(char)) : 0; flags->inf = (strLens[1]) ? (char *)malloc(strLens[1] * sizeof(char)) : 0; flags->outf = (strLens[2]) ? (char *)malloc(strLens[2] * sizeof(char)) : 0; } if (strLens[0]) MPI_Bcast(flags->logfile, strLens[0], MPI_CHAR, 0, MPI_COMM_WORLD); if (strLens[1]) MPI_Bcast(flags->inf, strLens[1], MPI_CHAR, 0, MPI_COMM_WORLD); if (strLens[2]) MPI_Bcast(flags->outf, strLens[2], MPI_CHAR, 0, MPI_COMM_WORLD); return 0; }