The StrayLight algorithm performs digital processing on data sent from satellites, clearing up unintended lighting effects recorded inside them.
The prototype provided by ESA personnel, was implemented in the IDL programming language. IDL is a near-perfect match for its intended audience, offering an easy way for scientists and engineers to analyze and process data (scalars, vectors, matrices, etc, as well as ready-made library functions for FFTs, interpolations, convolutions, …)
Moreover, the associated REPL  execution environment compiles the IDL code on the fly (in a manner very similar to that of a JIT engine ). In collaboration with the highly optimized implementations of the underlying primitives, the end result offered by IDL is an excellent balance between code complexity and run-time speed.
There is, however, room for improvement in that final regard – speed.
The following sections demonstrate how we increased the overall execution speed of the complete StrayLight algorithm (including the PSF computation) in our development machine  by a factor of close to 8x, through porting of the IDL code to C++/CUDA. In fact, since the calculation of the PSF data is not frame-dependent , the parts of the computation that have to be performed per frame are executing 35 times faster, enabling real-time processing.
Nara Sumber : IMW