An easy way to reduce computation time is to parallelize pvTrace just using the cores available on a PC/Mac, since most laptops and desktops have multiple cores. The multiprocessing package 86 creates a pool of all available cores and distributes tasks amongst them in the most efficient way possible, which typically means the rays are evenly distributed amongst the cores. The advantage of this approach is immediately apparent: implementation of the multiprocessing pool of the 2 cores available on the 2017 MacBook Pro results in a 50% decrease in computation time (for either 1,000 or 10,000 rays) compared to serialized (nonparallelized) simulations using only 1 computing core (see Figure ). While a ~100 s run time is not prohibitively high, this will increase significantly for more complex parts, such as STLs with multiple surfaces, motivating the need for parallelization. It is also possible to run the code on a computing cluster. Clusters typically have several nodes, and each node has multiple CPUs or cores. Figure shows the results of running 10,000 rays in parallelized pvTrace on the Cambridge computing cluster, running on a single node with a multiprocessing pool of 1 through 16 cores, with a power curve fit plotted. The equation of the curve fit is shown, and the exponent of x close to -1 proves the nature of the power fit.