void finish_run(FILE *log,t_commrec *cr,char *confout, t_nsborder *nsb,t_topology *top,t_parm *parm, t_nrnb nrnb[],double nodetime,double realtime,int step, bool bWriteStat) { int i,j; t_nrnb ntot; real runtime; for(i=0; (i<eNRNB); i++) ntot.n[i]=0; for(i=0; (i<nsb->nnodes); i++) for(j=0; (j<eNRNB); j++) ntot.n[j]+=nrnb[i].n[j]; runtime=0; if (bWriteStat) { runtime=parm->ir.nsteps*parm->ir.delta_t; if (MASTER(cr)) { fprintf(stderr,"\n\n"); print_perf(stderr,nodetime,realtime,runtime,&ntot,nsb->nnodes); } else print_nrnb(log,&(nrnb[nsb->nodeid])); } if (MASTER(cr)) { print_perf(log,nodetime,realtime,runtime,&ntot,nsb->nnodes); if (nsb->nnodes > 1) pr_load(log,nsb->nnodes,nrnb); } }
int main (int argc, char **argv) { int k_param = 1; int length; char * inbuf; char * outbuf; FILE * fptr; struct pixrect *pix; struct mpr_data *src_mpr; int skip; argv++; if ( (argc > 1) && (**argv == '-')) { switch (*++*argv) { case '1': k_param = 1; break; case '2': k_param = 2; break; case '4': k_param = 4; break; case 'n': k_param = 1; break; case 'l': k_param = 2; break; case 'h': k_param = 4; break; case 'v': k_param = 32767; break; default : fprintf (stderr,"Usage: %s -[124nlhv] \n",argv[0]); exit (-1); } argv++; argc--; } if ((pix = pr_load (stdin, NULL)) == (struct pixrect *)NULL) fprintf (stderr,"Not a pixrect.\n"); PIC_LINESIZE = pix->pr_size.x; STOP = PIC_LINESIZE + 1; NUMLINES = pix->pr_size.y; src_mpr = (struct mpr_data *)(pix->pr_data); inbuf = (char *) src_mpr->md_image; skip = 16 - (PIC_LINESIZE % 16); if (skip == 16) skip = 0; outbuf = encode_t4 (k_param,inbuf,skip); fwrite (outbuf, optlen, 1, stdout); }
void finish_run(FILE *fplog,t_commrec *cr,char *confout, t_inputrec *inputrec, t_nrnb nrnb[],gmx_wallcycle_t wcycle, double nodetime,double realtime,int nsteps_done, bool bWriteStat) { int i,j; t_nrnb *nrnb_all=NULL,ntot; real delta_t; double nbfs,mflop; double cycles[ewcNR]; #ifdef GMX_MPI int sender; double nrnb_buf[4]; MPI_Status status; #endif wallcycle_sum(cr,wcycle,cycles); if (cr->nnodes > 1) { if (SIMMASTER(cr)) snew(nrnb_all,cr->nnodes); #ifdef GMX_MPI MPI_Gather(nrnb,sizeof(t_nrnb),MPI_BYTE, nrnb_all,sizeof(t_nrnb),MPI_BYTE, 0,cr->mpi_comm_mysim); #endif } else { nrnb_all = nrnb; } if (SIMMASTER(cr)) { for(i=0; (i<eNRNB); i++) ntot.n[i]=0; for(i=0; (i<cr->nnodes); i++) for(j=0; (j<eNRNB); j++) ntot.n[j] += nrnb_all[i].n[j]; print_flop(fplog,&ntot,&nbfs,&mflop); if (nrnb_all) { sfree(nrnb_all); } } if ((cr->duty & DUTY_PP) && DOMAINDECOMP(cr)) { print_dd_statistics(cr,inputrec,fplog); } if (SIMMASTER(cr)) { if (PARTDECOMP(cr)) { pr_load(fplog,cr,nrnb_all); } wallcycle_print(fplog,cr->nnodes,cr->npmenodes,realtime,wcycle,cycles); if (EI_DYNAMICS(inputrec->eI)) { delta_t = inputrec->delta_t; } else { delta_t = 0; } if (fplog) { print_perf(fplog,nodetime,realtime,cr->nnodes-cr->npmenodes, nsteps_done,delta_t,nbfs,mflop); } if (bWriteStat) { print_perf(stderr,nodetime,realtime,cr->nnodes-cr->npmenodes, nsteps_done,delta_t,nbfs,mflop); } /* runtime=inputrec->nsteps*inputrec->delta_t; if (bWriteStat) { if (cr->nnodes == 1) fprintf(stderr,"\n\n"); print_perf(stderr,nodetime,realtime,runtime,&ntot, cr->nnodes-cr->npmenodes,FALSE); } wallcycle_print(fplog,cr->nnodes,cr->npmenodes,realtime,wcycle,cycles); print_perf(fplog,nodetime,realtime,runtime,&ntot,cr->nnodes-cr->npmenodes, TRUE); if (PARTDECOMP(cr)) pr_load(fplog,cr,nrnb_all); if (cr->nnodes > 1) sfree(nrnb_all); */ } }