def collect_timings(outdir, tic): # list_timings(TimingClear.keep, [TimingType.wall, TimingType.system]) # t = timings(TimingClear.keep, [TimingType.wall, TimingType.user, TimingType.system]) t = timings(TimingClear.keep, [TimingType.wall]) # Use different MPI reductions t_sum = MPI.sum(MPI.comm_world, t) # t_min = MPI.min(MPI.comm_world, t) # t_max = MPI.max(MPI.comm_world, t) t_avg = MPI.avg(MPI.comm_world, t) # Print aggregate timings to screen print('\n' + t_sum.str(True)) # print('\n'+t_min.str(True)) # print('\n'+t_max.str(True)) print('\n' + t_avg.str(True)) # Store to XML file on rank 0 if MPI.rank(MPI.comm_world) == 0: f = File(MPI.comm_self, os.path.join(outdir, "timings_aggregate.xml")) f << t_sum # f << t_min # f << t_max f << t_avg dump_timings_to_xml(os.path.join(outdir, "timings_avg_min_max.xml"), TimingClear.clear) elapsed = time.time() - tic comm = mpi4py.MPI.COMM_WORLD rank = comm.Get_rank() size = comm.Get_size() if rank == 0: with open(os.path.join(outdir, 'timings.pkl'), 'w') as f: json.dump({'elapsed': elapsed, 'size': size}, f) pass
(fig2, ax1, ax2) = pp.plot_spectrum(parameters, data, tc) plt.legend(loc='lower left') # ax2.set_ylim(-1e-7, 2e-4) fig2.savefig(os.path.join(experiment, "spectrum.pdf"), bbox_inches='tight') from dolfin import list_timings, TimingType, TimingClear list_timings(TimingClear.keep, [TimingType.wall, TimingType.system]) t = list_timings(TimingClear.keep, [TimingType.wall, TimingType.user, TimingType.system]) # Use different MPI reductions # t_sum = MPI.sum(MPI.comm_world, t[0]) # t_min = MPI.min(MPI.comm_world, t[1]) # t_max = MPI.max(MPI.comm_world, t[2]) t_avg = MPI.avg(MPI.comm_world, t[3]) # Print aggregate timings to screen # print('\n'+t_sum.str(True)) # print('\n'+t_min.str(True)) # print('\n'+t_max.str(True)) print('\n' + t_avg.str(True)) # Store to XML file on rank 0 if MPI.rank(MPI.comm_world) == 0: f = File(MPI.comm_self, os.path.join(experiment, "timings_aggregate.xml")) # f << t_sum # f << t_min # f << t_max f << t_avg