Hello Christoph,
thanks for your answer!
We could easily remove EIGEN_COMP_ICC from the cases where
EIGEN_STRONG_INLINE is a __force_inline:
https://bitbucket.org/eigen/eigen/src/default/Eigen/src/Core/util/Macros.h#Macros.h-755
But I don't know the history of this, i.e., if it was necessary for
older ICC versions. Or if it is necessary at other places.
Same here, hence I wanted to ask whether defining EIGEN_STRONG_INLINE
has some disadvantages. According to the Intel profiling tools, my
function that contains all the calculations actually calls the Eigen
functions (e.g., Eigen::Matrix<...>::Matrix<...> and
Eigen::Matrix<...>::operator=). I expected that those will be inlined.
Is this something to worry about?
Maybe I should add that I do not use the -inline-forceinline flag for
the Intel compiler since this lead to incredibly long compilation times.
Did you try to reduce your code to a minimal example where the
performance drop occurs?
Yes, but I cannot comprehend the performance drop yet. Apparently the
quite complex structure of the project produces this behavior, whereas
in a small application which performs similar calculations the
performance is about the same. Work in progress.
Regarding mbsolve: Sure, please give us a small description text and
tell which category you want to get listed in.
I think "Science" is the best fit, since mbsolve [1] "is an open-source
solver tool for the Maxwell-Bloch equations, which are used to model
light-matter interaction in nonlinear optics."
Thanks a lot for any comments!
Regards,
Michael
[1] https://github.com/mriesch-tum/mbsolve