Hi Ftinetti, Thank you very much for your reply. I glad that you went through my post
. My reaction is follows:
I measure runtime with Fortran function, which is placed in the beginning and end of code:
- Code: Select all
call system_clock (time_begin)
call system_clock (time_end, count_rate)
write(*,*) 'Time of operation was ', real(time_end - time_begin)/real(count_rate), ' seconds'
AD 2) Yes, result are same
AD 3) Four core Intel processor
AD 4) I’m using Intel Fortran Composer as add-in to Microsoft Visual Studio and I’ve changed only Linker>System>Stack Reserve Size = 5MB. Rest options are default.
AD 5) No, I’ll try that tomorrow
To your firs suggestion: I’ve already done same think what you suggested and it leads to lower SpeedUp. But I’ll acquaint you with all my results about position of PARELLEL DO etc. In the following table:
* In first row are values of variable “KolikVstupuVahovat”. The more higher is this variable, the more work has to be done inside nested loop (precisely subroutine “ModelOdchylekKal” in loop with tittle “Suma rozdílů mezi…” – in which the most of computation time is spent)
* Second row is values of SpeedUp if PARELLEL DO is placed in front of “DO Mesic = 1, 12” (same like provided source code)
* Third row is values of SpeedUp if PARELLEL DO is placed in front of “Do TestRadek = PocRadekMesic, (PocetRadku - PredpovedDo), 12”
* Last row is values of SpeedUp if PARELLEL DO is placed in front of loop with tittle “Suma rozdílů mezi…” in subroutine “ModelOdchylekKal”.
OpenMP directives are in the module “ZpracovaniDatModul.f90” but this not play significant role in overall SpeedUp of software (calibration).
I compile this code in Microsoft Visual Studio with add in Intel Fortran Composer. I ran this code directly from visual studio.
Please if you have any other question don’t hesitate to ask (because I want to solve my issue