'mean_dE', 'std_dE', 'mean_dt', 'std_dt') test_string += '{:+10.10e}\t{:+10.10e}\t{:+10.10e}\t{:+10.10e}\n'.format( 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
filename = args['monitorfile'] else: filename = 'monitorfiles/ps-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 = SlicesMonitor(filename=filename, n_turns=np.ceil(n_iterations / args['monitor']), profile=profile, rf=rf_params, Nbunches=n_bunches) if worker.hasGPU: bm.use_gpu(gpu_id=worker.gpu_id) PS_longitudinal_intensity.use_gpu() tracker.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) worker.sync() timing.reset() start_t = time.time() # for i in range(n_iterations): for turn in range(n_iterations):
filename = 'monitorfiles/lhc-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 = SlicesMonitor(filename=filename, n_turns=np.ceil( n_iterations / args['monitor']), profile=profile, rf=rf, Nbunches=n_bunches) # bm.GPU(args['gpu']) if worker.hasGPU: # Here we pass the gpu_id, if this is < 0, means don't use the gpu bm.use_gpu(gpu_id=worker.gpu_id) tracker.use_gpu() totVoltage.use_gpu() beam.use_gpu() PL.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) worker.sync() timing.reset() start_t = time.time() for turn in range(n_iterations):
np.std(my_beam.dt)) # ACCELERATION MAP------------------------------------------------------------- map_ = [tot_vol] + [ring_RF_section] + [slice_beam ] #+ [bunchmonitor] + [plots] 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-------------------------------------------------------------