TIL - Today I Learned (Again)
At present, I find myself tackling some rather complex issues related to an Amines gas treatment simulation. There's a certain pleasure in resolving both speciation (we're talking about chemical equilibria using equilibrium constants) and diffusion of the gas that we aim to purify into the fluid phase (this entails chemical reaction rates, discretisation over space and time).
The real issue is that the software my customer provided doesn't quite meet their speed expectations. Having previously built one of the fastest multi-phase, multi-model flashes, my customer requested that I optimize their code.
For numerical work, my solution, as soon as the number of equations starts to be in the hundreds or more, is always to let the big players do the heavy work.
In this case, this involves using the MKL for all linear algebra calculations.
Having worked with the MKL for over a decade, I usually know exactly which DLLs to package with the application.
However, with the introduction of OneAPI, it seems they've decided to play a game of musical chairs with their files - renaming and moving them around, leaving me with some nice C06D007E
exceptions.
To identify the necessary DLLs, I built a small application to test all the routines I wanted to use, and then kept tabs on it with the Process Explorer utility. This compact 2MB tool is incredibly useful, providing a host of insights about a running process, such as:
- Environment variables
- Loaded DLLs
- Memory and CPU usage
- Number of active threads
- Open TCP/IP connections
- Level of coffee in your mug
- And much more!
With the software running and monitored, I was able to compile the list of necessary DLLs in no time. It was an efficient and hassle-free solution. In fact, it took me more time writing this small note than doing the analysis, so yes, highly recommended -- and you do not need to be administrator to run it!