When starting Dragonfly on Windows, you may run into an error message looking like this (the path may differ of course):


The ordinal 191 could not be located in the dynamic link library C:\ProgramData\ORS\Dragonfly41\Anaconda3\Library\bin\mkl_intel_thread.dll


The dll that is the root cause is not mkl_intel_thread.dll, it's in reality libiomp5md.dll.


This error is caused by dll mixups with Intel's Dynamic OpenMP library, due to how Windows dlls work.


Dragonfly uses that library, but its dlls are located in the location indicated in the error message. This results in somewhat isolated use of the library.


Other software using the same library did not behave so well, they instead copied the libiomp5md.dll to the Windows system32 folder, and that dll is already loaded by Windows when Dragonfly is started, resulting in the above error (see this article Windows DLL search order to fully understand what is going on behind the scenes).


The easy way to solve the issue is to move libiomp5md.dll from the Windows system32 folder to the folder of the software that placed them there in the first place, but you need to know which software package placed the dll in the Windows system32 folder. Another solution (a naive solution) is to plain delete libiomp5md.dll from the Windows system32 folder, but this solution can cause the other package to stop working.


The better solution is a little more involved. To understand the solution fully, you can read this article: https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-redirection 


You need to follow the following steps:


-change the registry setting like stated in the article above
-reboot
-create a file named dragonfly_main.exe.local in our installation folder. The file can be empty Windows just needs to see a file with that name.
-Copy libiomp5md.dll from %programdata%\ors\dragonflyNN\anaconda3\library\bin to our installation folder, where NN is the current Dragonfly version (for example 2020.1)
-start dragonfly normally