Re: Similar systems, different performance of fortran code
To add more information about this:
I did a time profiling with gprof. The most important changes:
woody:
time seconds seconds calls s/call s/call name
96.79 13.88 13.88 482 0.03 0.03 move_
0.28 14.16 0.04 482 0.00 0.00 cpft_
0.21 14.23 0.03 241 0.00 0.00 fields_
sid:
time seconds seconds calls s/call s/call name
99.25 107.86 107.86 482 0.22 0.22 move_
0.58 108.49 0.63 241 0.00 0.00 fields_
0.06 108.56 0.07 482 0.00 0.00 cpft_
So there is a huge difference in the subroutines move and fields. But move,
for instance, is not very involved. It's a subroutine which calls no other
functions, just defines some variables, "common" lines, and such,
and then iterates on the particles to move them. A series of matrices
containing data for the particles are accessed element by element,
divided by scalars, summed, etc. Nothing exotic. But these lines are the most
often executed lines in the code, and are probably causing this huge
difference in performance. But it's not obvious (to me at least) why...
Regards,
Victor
Reply to: