SHMEM\_CSWAP - Online Linux Manual PageSection : 3
Updated : Jan 21, 2016
Source : 1.10.2
Note : Open MPI

NAMEshmem_int_cswap(3), shmem_int4_cswap(3), shmem_int8_cswap(3), shmem_long_cswap(3), shmem_longlong_cswap(3) − Performs an atomic conditional swap to a remote data object

SYNOPSISC or C++: #include <mpp/shmem.h> int shmem_int_cswap(int *target, int cond, int value, int pe); long shmem_long_cswap(long *target, long cond, long value, int pe); long long shmem_longlong_cswap(longlong *target, longlong cond, longlong value, int pe); Fortran: INCLUDE "mpp/shmem.fh" INTEGER pe INTEGER(KIND=4) SHMEM_INT4_CSWAP ires = SHMEM_INT4_CSWAP(target, cond, value, pe) INTEGER(KIND=8) SHMEM_INT8_CSWAP ires = SHMEM_INT8_CSWAP(target, cond, value, pe)

DESCRIPTIONThe conditional swap routines conditionally update a target data object on an arbitrary processing element (PE) and return the prior contents of the data object in one atomic operation. The arguments are as follows: target  The remotely accessible integer data object to be updated on the remote PE. If you are using C/C++, the type of target should match that implied in the SYNOPSIS section. If you are using the Fortran compiler, it must be of type integer with an element size of 4 bytes for SHMEM_INT4_ADD and 8 bytes for SHMEM_INT8_ADD. value  The value to be atomically added to target. If you are using C/C++, the type of value should match that implied in the SYNOPSIS section. If you are using Fortran, it must be of type integer with an element size of target. pe  An integer that indicates the PE number upon which target is to be updated. If you are using Fortran, it must be a default integer value. target  The remotely accessible integer data object to be updated on the remote PE. If you are using C/C++, the data type of target should match that implied in the SYNOPSIS section. If you are using Fortran, it must be of the following type: SHMEM_INT4_CSWAP: 4−byte integer  SHMEM_INT8_CSWAP: 8−byte integer  cond  cond is compared to the remote target value. If cond and the remote target are equal, then value is swapped into the remote target. Otherwise, the remote target is unchanged. In either case, the old value of the remote target is returned as the function return value. cond must be of the same data type as target. value  The value to be atomically written to the remote PE. value must be the same data type as target. pe  An integer that indicates the PE number upon which target is to be updated. If you are using Fortran, it must be a default integer value.

NOTESThe term remotely accessible is defined in intro_shmem(3)​.

RETURN VALUESThe contents that had been in the target data object on the remote PE prior to the conditional swap.

EXAMPLESThe following call ensures that the first PE to execute the conditional swap will successfully write its PE number to race_winner on PE 0. main() { static int race_winner = −1; int oldval; shmem_init(); oldval = shmem_int_cswap(&race_winner, −1, shmem_my_pe(), 0); if (oldval == −1) printf("pe %d was first\n",shmem_my_pe()); }

SEE ALSOintro_shmem(3), shmem_cache(3), shmem_swap(3)
0
Johanes Gumabo
Data Size   :   10,503 byte
man-shmem_longlong_cswap.3Build   :   2024-12-05, 20:55   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   2 / 197,200
Visitor ID   :     :  
Visitor IP   :   18.119.142.113   :  
Visitor Provider   :   AMAZON-02   :  
Provider Position ( lat x lon )   :   39.962500 x -83.006100   :   x
Provider Accuracy Radius ( km )   :   1000   :  
Provider City   :   Columbus   :  
Provider Province   :   Ohio ,   :   ,
Provider Country   :   United States   :  
Provider Continent   :   North America   :  
Visitor Recorder   :   Version   :  
Visitor Recorder   :   Library   :  
Online Linux Manual Page   :   Version   :   Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.05
Online Linux Manual Page   :   Library   :   lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page   :   Library   :   lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base   :   Version   :   Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base   :   Library   :   lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36

Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.

ERROR : Need New Coding :         (rof_escape_sequence|91|shmem_int_cswap.3|14|\_CSWAP" "3" "Jan 21, 2016" "1.10.2" "Open MPI" |.TH "SHMEM\\_CSWAP" "3" "Jan 21, 2016" "1.10.2" "Open MPI" )         (rof_nr_x|149|shmem_int_cswap.3|120|\n",shmem_my_pe());| printf("pe %d was first\\n",shmem_my_pe()); )