OP didn't reply (yet) with details of requirements ... so I'll add my solution, to help fill the vacuum
Virtualization ... yep ...
The problem with many single-threaded applications, or trying to get to the best single-threaded performance, is the way in which we try to solve that problem with today's technology. If this were DOS, and you had a truly single-threaded application, then a faster cpu would be the common fix, followed by any of the other typical bottleneck fixes.
Today, we have windows (insert your choice of OS insanity), doing all kinds of things in the background ... you don't get to do things in a single-threaded approach any longer. Unless ... you go back to the point where you could give a single-threaded app the undivided attention of the processor. There are many ways to do this today, and lacking details of the application in question, you can also consider some form of virtualization.
Given a multi-core cpu, just assign one or two cores to the host OS (and that overhead stays there for the most part), and get your application into a Virtual Machine state where it has the best chance of running full out. Gobs of whatever it needs ... cpu, ram, ssd, etc. Perhaps even a docker vm, to reduce all other overhead to something approaching zero.
Again, don't know the exact application, or the exact bottlenecks you faced with the old(er) platform ... could be many ways to skin this critter ...
Hope this helps ...