Ejemplo n.º 1
0
    '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
Ejemplo n.º 2
0
        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):
Ejemplo n.º 3
0
        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):
Ejemplo n.º 4
0
    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-------------------------------------------------------------