/* UPC Testing Suite Copyright (C) 2000 Sebastien Chauvin This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Test: XIII_case3_i - Private to shared string copy Purpose: Test the upc_memput functionalities Type: Positive. How : - For each thread do the following: - Initialize a private array - Copy the private array to a shared array - Compare the two arrays */ #include #include #include #include #define SIZE 100000 #define VERBOSE0 #define MAX_THREADS 100 shared [] int dst[SIZE]; int src[SIZE]; int main() { int i, j; int thr_errflag[MAX_THREADS] = {0}; int errflag=0; if (THREADS>MAX_THREADS) { if(!MYTHREAD) printf("Too many threads.\n"); exit(-1); } // Initialize private arrays (src) for(i=0; i to (%d)\n", src, dst[(MYTHREAD+1)%THREADS], SIZE*sizeof(int)); printf("upc_memput from 0x%0lx to 0x%0lx (size=%d)\n", src, upc_addrfield(dst), SIZE*sizeof(int)); #endif upc_memput(dst, src, SIZE*sizeof(int)); } upc_barrier 2; if (MYTHREAD==0) { for(j=0; j