Example #1
0
        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()
Example #2
0
    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: