Go to the documentation of this file.
202 unsigned int fileflag_in;
204 char name[MPI_MAX_PROCESSOR_NAME+1];
207 MPI_Init(&argc,&arg);
211 MPI_Comm_set_errhandler(MPI_COMM_WORLD,MPI_ERRORS_RETURN);
213 MPI_Comm_rank(MPI_COMM_WORLD,&p);
214 MPI_Comm_size(MPI_COMM_WORLD,&np);
219 ri=( unsigned int)time(NULL);
266 Error( "Could not open main output file");
277 fprintf(f_out, "\n==========================================================================\n");
278 fprintf(f_out, "RESTARTING CUIK FROM A PREVIOUS EXECUTION STATE\n");
279 fprintf(f_out, "WE ASSUME THAT THE .cuik FILE AND THE .param FILE HAVE NOT CHANGED");
280 fprintf(f_out, "\n==========================================================================\n\n");
285 fprintf(f_out, "\n==========================================================================\n");
286 fprintf(f_out, "Random seed: %u",ri);
287 fprintf(f_out, "\n==========================================================================\n");
291 fprintf(f_out, "\n==========================================================================\n");
295 Error( "Error opening input file");
300 do { c=fgetc(f_in); if (c!=EOF) fprintf(f_out, "%c",c); } while(c!=EOF);
305 fprintf(f_out, "\n==========================================================================\n");
307 fprintf(f_out, "\n==========================================================================\n");
315 if ((p==0)&&(!restart))
317 fprintf(f_out, "Cuik executed in %u processors\n",np);
318 fprintf(f_out, "SOLUTIONS (to input file %s):\n\n", GetFileFullName(&fcuik));
326 NULL,f_out,NULL,&cuiksystem);
331 MPI_Get_processor_name(name,&len);
338 fprintf(stdout, "Main scheduler running on %s\n",name);
339 fprintf(stdout, "Waiting all processes to read the param/cuik files\n");
342 for(i=1;i<( unsigned int)np;i++)
344 while ((MPI_Recv(&fileflag_in,1,MPI_UNSIGNED,i,50+i,MPI_COMM_WORLD,&status)!=MPI_SUCCESS)&&
346 fprintf(stdout, "Ping from process %u received\n",i);
350 fprintf(stdout, "Starting scheduler\n");
357 fprintf(stdout, "Starting sub-proces on processor %d running on %s\n",p,name);
361 MPI_Ssend(&p,1,MPI_UNSIGNED,0,50+p,MPI_COMM_WORLD);
365 printf( "Killing sub-process %u\n",p);
373 fprintf(f_out, "END OF THE SOLUTION FILE\n\n");
397 fprintf(stderr, " Wrong number of parameters.\n");
398 fprintf(stderr, " Use:\n");
399 fprintf(stderr, " cuik <problem file name>.cuik \n");
400 fprintf(stderr, " where <problem file name> contains the kinematic equations\n");
401 fprintf(stderr, " (the '.cuik' extension is not required)\n");
409 return(EXIT_SUCCESS);
|
Follow us!