Research Article

Optimizing NEURON Simulation Environment Using Remote Memory Access with Recursive Doubling on Distributed Memory Systems

Algorithm 2

RMA_Allgather for spikes communication between processors.
Input parameters: sendbuf, count, datatype, MPI_Comm_World
Output Parameters: Recv_buf
    Start:
    Initialize local variables target, displacement, step, origin
    Calculate number of steps =
    if first step then
        Get communication size and proc_id
        Initialize recv_bufer
        Create window according to recv_bufer
    for to
        Calculate origin_addr as
        Origin_Addr ))
        Calculate target according to step and id (Algo 1)
        MPI Fence (Synchronization)
        MPI_Put values from origin to target
        Next
    End