filename = args['monitorfile'] else: filename = 'monitorfiles/sps-t{}-p{}-b{}-sl{}-approx{}-prec{}-r{}-m{}-se{}-w{}'.format( n_iterations, n_particles, n_bunches, n_slices, approx, args['precision'], n_turns_reduce, args['monitor'], seed, worker.workers) slicesMonitor = MultiBunchMonitor(filename=filename, n_turns=np.ceil(n_iterations / args['monitor']), profile=profile, rf=rf_station, Nbunches=n_bunches) if args['gpu'] > 0: bm.use_gpu(gpu_id=worker.gpu_id) profile.use_gpu() tracker.use_gpu() phaseLoop.use_gpu() bm.enable_gpucache() print( f'Glob rank: [{worker.rank}], Node rank: [{worker.noderank}], Intra rank: [{worker.intrarank}], GPU rank: [{worker.gpucommrank}], hasGPU: {worker.hasGPU}' ) worker.initDLB(args['loadbalance'], n_iterations) delta = 0 worker.sync() timing.reset() start_t = time.time()
np.mean(my_beam.dE), np.std(my_beam.dE), np.mean(my_beam.dt), np.std(my_beam.dt)) # ACCELERATION MAP------------------------------------------------------------- # import argparse # parser = argparse.ArgumentParser() # parser.add_argument('-g', default = False, action='store_true') # parser.add_argument('-d', default = False, action='store_true') # args = parser.parse_args() # print(args) if (args['gpu'] == 1): import blond.utils.bmath as bm bm.use_gpu() total_induced_voltage.use_gpu() ring_RF_section.use_gpu() slice_beam.use_gpu() #map_ = [total_induced_voltage] + [ring_RF_section] + [slice_beam] #+ [bunchmonitor] + [plots] map_ = [ring_RF_section] + [slice_beam] # TRACKING + PLOTS------------------------------------------------------------- for i in range(1, n_turns + 1): # print(i) for m in map_: m.track() # # Plots # if (i% n_turns_between_two_plots) == 0:
map_freq = [tot_vol_freq] + [ring_RF_section_freq] + [slice_beam_freq] \ #+ [bunchmonitor_freq] + [plots_freq] map_res = [tot_vol_res] + [ring_RF_section_res] + [slice_beam_res] \ #+ [bunchmonitor_res] + [plots_res] if (args['gpu'] == 1): import blond.utils.bmath as bm bm.use_gpu() tot_vol.use_gpu() tot_vol_freq.use_gpu() tot_vol_res.use_gpu() ring_RF_section.use_gpu() ring_RF_section_freq.use_gpu() ring_RF_section_res.use_gpu() slice_beam.use_gpu() slice_beam_freq.use_gpu() slice_beam_res.use_gpu() # long_tracker_1.use_gpu() # long_tracker_2.use_gpu() # slice_beam.use_gpu() # long_tracker_tot.use_gpu() # TRACKING + PLOTS------------------------------------------------------------- for i in np.arange(1, n_turns + 1): #print(i) for m in map_: m.track() for m in map_freq: