Perfomance

[1]:
import kenv as kv
import numpy as np
import pandas as pd
import glob

import redpic as rp

rp.__version__
[1]:
'0.7.56'
[2]:
def simulation():
    acc = rp.accelerator.Accelerator(z_start=0.7, z_stop=1.7, dz=0.01)
    acc.add_accel('Acc. 1',      4.096,          -1.1,         'Ez.dat')
    acc.add_accel('Acc. 2',      5.944,          -1.1,         'Ez.dat')
    acc.add_solenoid('Sol. 1',      0.450,          -0.0580,   'Bz.dat')
    acc.add_solenoid('Sol. 2',      0.957,           0.0390,   'Bz.dat')
    acc.add_solenoid('Sol. 3',      2.107,           0.0250,   'Bz.dat')
    acc.add_solenoid('Sol. 4',      2.907,           0.0440,   'Bz.dat')
    acc.add_solenoid('Sol. 5',      3.670,           0.0400,   'Bz.dat')
    acc.add_solenoid('Sol. 6',      4.570,           0.0595,   'Bz.dat')
    acc.add_solenoid('Sol. 7',      5.470,           0.0590,   'Bz.dat')
    acc.compile()
    beam = rp.beam.UniformBeam(
        type=rp.constants.electron,
        energy = 1.32,          # MeV
        current = 0.5e3,  # A
        radius_x = 48e-3, # initial r (m)
        radius_y = 48e-3, # initial r (m)
        radius_z = 3.5,
        radius_xp = 2*35.0e-3,     # initial r' (rad)
        radius_yp = 2*35.0e-3,     # initial r' (rad)
        x  = 0.0e-3,   # horizontal centroid position (m)
        xp = 0.0e-3,     # horizontal centroid angle (rad)
        y = 0,          # vertical centroid position (m)
        normalized_emittance = 200e-6) # m*rad
    beam.generate(n=1_000)
    beam.df
    sim = rp.solver.Simulation(beam, acc)
    sim.track()
[3]:
rp.core.config.DISABLE_JIT = True
%timeit -n 3 simulation()
2023-08-31 17:48:10,201 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:48:16,199 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.68 m (98.0 %)
2023-08-31 17:48:21,271 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:48:26,363 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:48:31,194 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.64 m (94.0 %)
2023-08-31 17:48:34,907 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:48:40,510 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:48:44,858 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:48:51,429 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:48:59,170 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:49:03,724 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:49:08,643 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:49:15,642 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:49:20,485 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.68 m (98.0 %)
2023-08-31 17:49:24,141 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:49:29,462 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:49:33,707 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:49:37,057 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:49:41,692 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:49:48,170 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:49:51,789 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.68 m (98.0 %) 5.03 s ± 662 ms per loop (mean ± std. dev. of 7 runs, 3 loops each)
[4]:
rp.core.config.DISABLE_JIT = False
%timeit -n 3 simulation()
2023-08-31 17:49:55,743 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.56 m (86.0 %)
2023-08-31 17:49:57,341 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.58 m (88.0 %)
2023-08-31 17:49:58,676 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.62 m (92.0 %)
2023-08-31 17:49:59,940 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.60 m (90.0 %)
2023-08-31 17:50:01,475 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.62 m (92.0 %)
2023-08-31 17:50:02,755 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.60 m (90.0 %)
2023-08-31 17:50:04,061 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.56 m (86.0 %)
2023-08-31 17:50:05,403 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:50:06,766 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.60 m (90.0 %)
2023-08-31 17:50:08,150 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.62 m (92.0 %)
2023-08-31 17:50:09,642 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.60 m (90.0 %)
2023-08-31 17:50:11,920 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:50:13,776 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.58 m (88.0 %)
2023-08-31 17:50:15,395 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.58 m (88.0 %)
2023-08-31 17:50:17,119 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.58 m (88.0 %)
2023-08-31 17:50:18,894 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.58 m (88.0 %)
2023-08-31 17:50:20,707 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.64 m (94.0 %)
2023-08-31 17:50:22,649 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.60 m (90.0 %)
2023-08-31 17:50:24,600 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.56 m (86.0 %)
2023-08-31 17:50:26,249 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.66 m (96.0 %)
2023-08-31 17:50:27,895 - redpic.beam.uniform - INFO - Generate a uniform beam with 1000 particles
z = 1.68 m (98.0 %) 1.61 s ± 217 ms per loop (mean ± std. dev. of 7 runs, 3 loops each)
[5]:
! sysctl -n machdep.cpu.brand_string
Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
[ ]: