The upc_all_exchange function

Synopsis

 
    #include <upc.h>
    #include <upc_collective.h>
    void upc_all_exchange(shared void * restrict dst, 
                          shared const void * restrict src, 
                          size_t nbytes, upc_flag_t flags);  
    

Description

The upc_all_exchange function copies the ith block of memory from a shared memory area that has affinity to thread j to the jth block of a shared memory area that has affinity to thread i. The number of bytes in each block is nbytes.

nbytes must be strictly greater than 0.

The upc_all_exchange function treats the src pointer and the dst pointer as if each pointed to a shared memory area of nbytes * THREADS bytes on each thread and therefore had type:

    shared [nbytes * THREADS] char[nbytes * THREADS * THREADS]

The targets of the src and dst pointers must have affinity to thread 0.

The src and dst pointers are treated as if they have phase 0.

For each pair of threads i and j, the effect is equivalent to copying the ith block of nbytes bytes that has affinity to thread j pointed to by src to the jth block of nbytes bytes that has affinity to thread i pointed to by dst.

 

 

Terms, definitions, and symbols

Back to index of all UPC functions