GSoC 2021 has officially ended and I can say without a doubt that what a journey it was. I recently concluded with my GSoC project, the final PR got merged and I’m quite satisfied with the outcome.
Earlier we were able to find the time complexity of LBL>Voigt, DIT>Voigt and DIT>FFT (Formely known as LDM>FFT). On a small test replacing
scipy.signal.oaconvolve, we were able to achieve 2 to 30 times performance boost. So we re-ran the benchmarks and were able to confirm this fact.
You can see the result at Benchmark Visualization GSoC 2021.
The above results proved that
DIT>Voigt performs better than
DIT>FFT in almost every case. So we decided to use
DIT>Voigt as the default setting in
A predict_time() function was added, which computes the predicted time for LBL>Voigt, DIT>Voigt and DIT>FFT using the derived time complexity, and on
verbose>=2 shows the user the predicted time.
Also we Bifurcated
broadening_max_width into 2 parameters:
• Truncation: Used in truncation of Voigt method.
• neighbour_lines: Increases Spectral range
So now users have a lot of flexibility. Based on Physics, the default value of truncation is set to 50cm-1 and the default value of neighbour_lines is set to 0 cm-1. Apart from this, some minor improvements were done in the
Profiler class such as an improved algorithm is used to store data and now calculation time gets appended to the same key rather than overwriting it, which useful when we use
chunksize or DIT optimization for
So overall the code has been optimized and a user can expect a performance boost upto 40x in worst scenarios.
You can find all my work during the GSoC period here.
It was a great experience contributing to Radis and I definitely have learned alot along the way. And a big thanks to the great mentors at Radis especially Erwan Pannier who guided me at every stage of the program. The road doesn’t end here as I will stick around the organisation and will always find ways to contribute to Radis. One last thanks to GSoC for providing such a wonderful opportunity.
Till we meet again, keep Swinging for the fences.