Hi @flodeux,
Welcome back!
Most of the time it’s done using Multithreading which works by breaking your problem into smaller ones and solving them in parallel in different threads.
I don’t know the internals of how your algorithm works but you can also find ways to improve efficiency with programming / algorithmic tricks. (choosing the right data structures, avoid cache misses and useless memory allocations…)