Yes, I will take a look at shared arrays. The halo ( overlap of arrays resulting from the poisson's part of the wave equation) might be easier to program with a shared array. I will make an MPI version from the fortran as well. Is there an MPI for Julia available somewhere ? Thanks for your valuable inputs. I made tremendous progress recently -Alain
2015-10-12 1:07 GMT+03:00 Kristoffer Carlsson <[email protected]>: > The reason for the improvements when you fixed the truncations is that > indexing with a float is deprecated and calling deprecated methods is very > slow. For good performance it is therefore important not to repeatedly call > any deprecated method. > > @inbounds is good if you have a very tight loop with many vector loads > (like in your example). Remember that @inbounds turns off bounds checking > so if you mess up you can segfault or get garbage data. > > For parallellization I would look at shared arrays: > http://julia.readthedocs.org/en/latest/manual/parallel-computing/#shared-arrays > > On Sunday, October 11, 2015 at 11:28:08 PM UTC+2, Alain Clo wrote: >> >> Pretty good improvements Thanks to you Kristoffer. >> I am puzzled why the changes on the truncations for sxloc and szloc >> brings a factor of 3 to the whole program, >> to the loop underneath. Maybe the truncation changed the indexing type to >> the whole array, right ? >> How did you figure out this affect ? >> >> Regarding @inbounds and @fastmath. I have the same question, but I see >> them now in the performance tips. >> Maybe as a generic rule, those options have to be checked. >> >> Would you have any suggestions for parallelisation ? >> >> Thanks for the feedback >> Alain >> >> >> >> >> Le dimanche 11 octobre 2015 23:48:55 UTC+3, Kristoffer Carlsson a écrit : >>> >>> Some unsolicited comments on the code. >>> >>> You probably want to change line 118 and 119 to >>> >>> sxloc = trunc(Int, mxnx / 2) >>> szloc = trunc(Int, mxnz / 2) >>> >>> so that they really are ints, Without the "Int" it will still be a float. >>> >>> As a base line, your code for me ran in 1.239 seconds. >>> >>> Adding "@inbounds" on line 127 takes this down to 0.75 seconds. >>> >>> Adding "@fastmath" on the same line reduces it further down to 0.52 >>> seconds. Normal caveats for fastmath of course applies. >>> >>> // Kristoffer >>> >>> >>> >>> On Sunday, October 11, 2015 at 9:32:04 PM UTC+2, Alain Clo wrote: >>>> >>>> See attached the updated code ( slight modifications, code embedded >>>> into a function acoustic(), and some loops interchanged). >>>> To see some images, uncomment at the end of the code. >>>> Enjoy ! >>>> Alain >>>> Le dimanche 11 octobre 2015 21:30:43 UTC+3, Kristoffer Carlsson a >>>> écrit : >>>>> >>>>> Maybe you can give a link to the updated code? >>>> >>>>
