[FLASH-USERS] Oddness in results when using uneven number of parallel processors

Seyit Hocuk seyit at astro.rug.nl
Mon Sep 14 08:18:37 EDT 2009


Hi Community,

I am experiencing somewhat odd results with a newly written unit when I 
am running with odd number of processors. Everything seems fine when 
using 1 or even number of processors.
By the way, I realise now that it works for 2^x number of processors. 
So, with even, I mean 2^x and odd =! 2^x.


The code goes something like this (A is important here):

 >>Unit<<
do blockID = 1, blockCount
...
    do k = blkLimits(LOW,KAXIS),blkLimits(HIGH,KAXIS)
        do j = blkLimits(LOW,JAXIS),blkLimits(HIGH,JAXIS)
           do i = blkLimits(LOW,IAXIS),blkLimits(HIGH,IAXIS)
             ...
             do LeafID = 1, blockCount
                 call subroutine1
                 ...
...
end

 >>subroutine1<<
...
call subroutine2
...
end

 >>subroutine2<<
do n = blkLimits(LOW,KAXIS),blkLimits(HIGH,KAXIS)
   do m = blkLimits(LOW,JAXIS),blkLimits(HIGH,JAXIS)
       do l = blkLimits(LOW,IAXIS),blkLimits(HIGH,IAXIS)
       ...
       A = A + x  (a summation)
       ...
end


I was thinking that every processor calculates its own piece of 
summation of A, but fails to communicate between eacother so that it is 
not the actual sum I am seeing. However, I find it weird that it does 
works for certain number of processors more than 1. To solve this, I 
used the solnData pointer. That is, instead of A, I have tried 
solnData(A,i,j,k) so that the different processors will be connected 
through this mediator. No change.


Kind Regards,
Seyit





More information about the flash-users mailing list