LU factorization in v7.24 is taking a lot of time

Questions, suggestions, feature requests, bug reports, feedbackCategory: QuestionsLU factorization in v7.24 is taking a lot of time
Aaditya WangikarAaditya Wangikar asked 10 months ago

I ran two angle of attack points with T6 control polar with VPW and it took around 2 hrs for just two angles of attack, whereas in previous version it was taking around half an hour for the entire angle of attack sweep. Total number of triangles for both the versions were around 24000. 

André Deperroistechwinder Staff replied 10 months ago

This problem has been reported in the past when running flow5 on an AMD CPU for which Intel’s MKL is not optimized. Can you check in the log file that it is the LU factorization which is the long operation?
Otherwise the intent is that flow5 calculations take less than a minute. Matrix sizes should be less than 20k and preferably less than 15k. Increasing sizes above this value increases computation times geometrically with limited benefits in terms of accuracy. To reduce matrix sizes, use tri-uniform rather than tri-linear panels, and clean the fuselage geometry to remove all small surfaces and edges before meshing.
With limited sizes MKL performs well on AMD – at least that is my experience.
André

2 Answers
Aaditya WangikarAaditya Wangikar answered 10 months ago

The CPU which has been used in INTEL Xeon and it is the LU factorization which is taking time. I have tried with matrix size less than 15k and it is also taking a lot of time to calculate. 
Yes, I have used Triuniform density panel. 
How can I optimize INTEL MKL?

André Deperroistechwinder Staff replied 10 months ago

Unfortunately, there aren’t any options to customize MKL other than setting the number of threads in the Preferences.
André

André Deperroistechwinder Staff answered 8 months ago

After some inverstigations, it appears that the problem may be caused by the “Efficiency cores” which deliver low performance. These pages explain how to  force MKL to use “Performance cores”:

  1. Linux: Managing Performance with Heterogeneous Cores
  2. Windows: Managing Performance with Heterogeneous Cores

Practically you’ll need to

  1. open a terminal window
  2. set the environment variable, for instance “set KMP_HW_SUBSET=8c:intel_core,1t” in Windows and “export KMP_HW_SUBSET=8c:intel_core,1t” in Linux
  3. Launch flow5 from the same terminal window by typing c:/path/to/flow5.exe

Alternatively the environment variable can be set at system level, or you can create a script.
Hope this helps,
André