for a simple 2DES calculation using the most straightforward coding without any vectorization. If we vectorize the propagations for the time steps between any two laser pulses, we reduce the computational cost from O(T 3 ) to O(T 2 ), as can be seen from the yellow curve. Vectorization over two propagation periods further reduces the cost to a linear scaling, O(T ), represented by the green curve. If we vectorize over all three propagation segments, we get a constant scaling O(T 0 ). It should be noted that, although very efficient, the vectorization over time costs a lot of memory and to actually get a constant scaling, one needs to have a reasonably large GPU resource per trajectory. To get the most out of the available resources, one may need to compromise on the levels of vectorization we do. However, with the above scheme, we have a way to systematically control the level of vectorization and parallelization, if the level of computational resource is no longer the limiting factor.