climateprediction.net home page
Lowest common denominator of floating point math instructions?

Lowest common denominator of floating point math instructions?

Message boards : Number crunching : Lowest common denominator of floating point math instructions?
Message board moderation

To post messages, you must log in.

AuthorMessage
lazlo_vii

Send message
Joined: 11 Dec 19
Posts: 64
Credit: 1,971,833
RAC: 5,265
Message 61997 - Posted: 20 Jan 2020, 13:58:48 UTC
Last modified: 20 Jan 2020, 13:59:27 UTC

After staring at the list of active CPU models used by CPDN clients (https://www.cpdn.org/cpu_list.php) for a while it dawned on me that the project might still be using SSE2 instructions for floating point math.

If the project is using AVX instructions (which the vast majority of clients do support) then they would have to recompile the executable binaries for the minority of CPU models so that they could use SSE2 instead. Because the team at Oxford is small and has limited resources I am guessing that this is not the case. There are two ways I could find out for sure: 1.) Ask about in a new thread and wait for a reply, or 2.) Analyze the files I am downloading and running on my own. The only way I know of getting an answer by going with Option 2 is to "de-compile" Oxford's code and that seems a bit invasive to me so I went with Option 1.
ID: 61997 · Report as offensive     Reply Quote
Profile Dave Jackson
Volunteer moderator

Send message
Joined: 15 May 09
Posts: 2722
Credit: 3,327,142
RAC: 1,283
Message 61998 - Posted: 20 Jan 2020, 16:14:30 UTC - in response to Message 61997.  

After staring at the list of active CPU models used by CPDN clients (https://www.cpdn.org/cpu_list.php) for a while it dawned on me that the project might still be using SSE2 instructions for floating point math.

If the project is using AVX instructions (which the vast majority of clients do support) then they would have to recompile the executable binaries for the minority of CPU models so that they could use SSE2 instead. Because the team at Oxford is small and has limited resources I am guessing that this is not the case. There are two ways I could find out for sure: 1.) Ask about in a new thread and wait for a reply, or 2.) Analyze the files I am downloading and running on my own. The only way I know of getting an answer by going with Option 2 is to "de-compile" Oxford's code and that seems a bit invasive to me so I went with Option 1.


I can certainly remember when the project stopped supporting processors without SSE2. I don't recall any announcement of a similar sort with regards to AVX so I suspect SSE2 is still in use. The code does not belong to Oxford but to the UK Met Office and it is not open source. One of the reasons models with the exception of Open IFS are all 32 bit. The IFS code is open source from a European collaboration. I don't know if there will eventually be more options giving the researchers a wider selection of tools to use. I also don't know if the OpenIFS code uses SSE2 or AVX though being open source, that is probably easier to track down.
ID: 61998 · Report as offensive     Reply Quote
lazlo_vii

Send message
Joined: 11 Dec 19
Posts: 64
Credit: 1,971,833
RAC: 5,265
Message 61999 - Posted: 20 Jan 2020, 17:37:14 UTC - in response to Message 61998.  
Last modified: 20 Jan 2020, 17:39:05 UTC

After a bit of searching I found this:

https://confluence.ecmwf.int/display/OIFS/OpenIFS+Licensing

It seems to me that the license is free (as in "Free beer!") but not free (as in "Free Speech"). While there is no mention of having to pay to use it, researchers are somewhat limited in how they can use it and what they kinds of data they can publish.

OpenIFS does appear to have it's roots in the old school vector math supercomputers sold by Cray which means that AVX instruction support is likely. New versions support symmetric multiprocessing using MPI and OpenMP frameworks. This might mean multi-threaded work units would be possible for CPDN in the future but I am no position to even guess at the odds of that happening.

https://confluence.ecmwf.int/display/OIFS/OpenIFS+user+meeting+2014?preview=%2F31066048%2F36012517%2FIFS_technical.pdf
ID: 61999 · Report as offensive     Reply Quote
Profile geophi
Volunteer moderator

Send message
Joined: 7 Aug 04
Posts: 1929
Credit: 41,264,292
RAC: 22,398
Message 62002 - Posted: 20 Jan 2020, 21:47:24 UTC - in response to Message 61997.  

If the code is using higher than SSE2 optimizations, then it is likely able to fall back to SSE2 if necessary, as I haven't seen any reports of older P4s and early Athlon64s falling over. Then again, there can't be too many of those CPUs still running this project.

Back in the olden days, when they used to communicate more with the moderators about such things, we knew both the Windows and Linux apps used the Intel compiler. Windows and Linux ran the same models/model types, supposedly with the same optimizations. But there were often noticeable differences in performance between Linux and Windows on the same system, and performance deficits that shouldn't have existed for AMD if using the same optimization. So, it's always been a bit dodgy as to whether the same exact optimizations were being used for all circumstances. Last compiler I remember them mentioning was Intel compiler version 11 or 12, but that's remembering things from nearly a decade ago. It's likely to be very different now.
ID: 62002 · Report as offensive     Reply Quote

Message boards : Number crunching : Lowest common denominator of floating point math instructions?

©2020 climateprediction.net