Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28385 Discussions

Is it worth migrating my application from Windows to Linux for performance?

MarcioBezerra
Beginner
757 Views

Hello folks,

Hope all is well.

Do you think it is worth migrating a fortran application from Windows 10 to Debian linux for performance?

Will my code run faster on Debian?

I have had this code for a while. Always ran it under windows using gfortran, after I found out ifort was free, I gave it a try and noticed a bit of a difference in performance.  I have had people tell me Linux offers an edge in performance and that should consider porting.

Would someone knowlegeable in Linux and Windows confirm this?

Very much appreciated.

0 Kudos
1 Solution
DataScientist
Valued Contributor I
717 Views

I don't think if you would see a substantial difference. Yes, applications tend to run slower on Windows, but mostly because there are tens of other resource-demanding applications that are simultaneously running in the background, things like anti-malware/virus software, ...

If running under a different OS makes a substantial difference in the performance of your code, then it is probably time to parallelize it instead of migrating to another platform solely to gain a slight performance.

On a side note, you should write your code such that it is portable to any other platform/architecture/compiler without any changes to the code.

View solution in original post

2 Replies
DataScientist
Valued Contributor I
718 Views

I don't think if you would see a substantial difference. Yes, applications tend to run slower on Windows, but mostly because there are tens of other resource-demanding applications that are simultaneously running in the background, things like anti-malware/virus software, ...

If running under a different OS makes a substantial difference in the performance of your code, then it is probably time to parallelize it instead of migrating to another platform solely to gain a slight performance.

On a side note, you should write your code such that it is portable to any other platform/architecture/compiler without any changes to the code.

Martin1
New Contributor I
689 Views

Hi,

I recently compared the performance of my ifort compiled application on windows and linux. The reason was that it was much slower on windows than fortran, for which, as has been noted, there should be no reason. In fact I tried a number of compute and (different types of) memory bound kernels and found no significant difference between the two OS. However, there was a huge difference with allocation, in particular deallocation, see

BUG-deallocate-always-aquires-a-lock-in-openmp-region 

Huge-performance-difference-with-allocate-deallocate-in-openmp 

I have gone as far as using an external allocator to achieve a similar performance in windows compared to Linux as suggested in the second link.

If you installed oneapi, you can run a hotspot analysis with vtune. If possible you could just port the hotspot code and make your own comparison and judgment.

(You might see significant differences in IO related code, which might run faster on Linux, as it is supposed to be better optimised.)

Reply