Changes between Version 3 and Version 4 of 2021WP/HPC-03_Mele_Comm_Cleanup
- Timestamp:
- 2021-03-15T09:18:59+01:00 (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
2021WP/HPC-03_Mele_Comm_Cleanup
v3 v4 26 26 === Implementation 27 27 28 The implementation (or better the rationalization) of the lbc_lnk calls will start from DYN and ZDF modules (the TRA modu e was completed in 2020). Because we decided to support halo=1 execution, we put the lbc_lnk call inside of an IF statement condition whenever needed.28 The implementation (or better the rationalization) of the lbc_lnk calls will start from DYN and ZDF modules (the TRA module was completed in 2020). Because we decided to support halo=1 execution, we put the lbc_lnk call inside of an IF statement condition whenever needed. 29 29 30 The movement of a communication earlier in the code (in the case of halo=2) often leads to a difference in the outputs when compared with the halo=1 run. This is due to the north folding algorithm. In the attached document we analysed the problem and found that, due to the north fold, some expressions are evalauted correctly but with a different order of the floating point operations with respect the halo=1 case.30 The movement of a communication earlier in the code (in the case of halo=2) often leads to a difference in the outputs when compared with the halo=1 run. This is due to the north folding algorithm. In the attached document ([attachment:NorthFold_and_Halo2.pdf.pdf]) we analysed the problem and found that, due to the north fold, some expressions are evalauted correctly but with a different order of the floating point operations with respect the halo=1 case. 31 31 32 In order to preserve the bit compari on of the results between the cases halo=1 and halo=2, we have to "force" the order of the floating point operations in both cases by introducing round brackets whiththe interested expressions.32 In order to preserve the bit comparison of the results between the cases halo=1 and halo=2, we have to "force" the order of the floating point operations in both cases by introducing round brackets whithin the interested expressions. 33 33 34 We propose to insert the round brackets in the expressions where needed directly into the trunk. This will cause a version of the trunk which is not bit comparable with the previ uos one, but the differences will be only due to the changes in the order of the floating point operations, hence they should be acceptable.34 We propose to insert the round brackets in the expressions where needed directly into the trunk. This will cause a version of the trunk which is not bit comparable with the previous one, but the differences will be only due to the changes in the order of the floating point operations, hence they should be acceptable. 35 35 36 36