Changeset 109
- Timestamp:
- 03/19/07 01:25:24
- Files:
-
- src/io_fread_list_shared_comm.upc (modified) (4 diffs)
- src/units_shared (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
src/io_fread_list_shared_comm.upc
r103 r109 14 14 #endif 15 15 16 static TYPE vbf[180]; 16 17 17 18 /* nmembs and offsets, this only works for up to 8 threads */ 18 static int nmembs [] = { 23, 37 , 12 , 44, 14, 31, 4, 55};19 static int offsets [] = { 2, 3 0, 81 , 25, 77, 121, 139, 47};19 static int nmembs [] = { 23, 37 }; 20 static int offsets [] = { 2, 39 }; 20 21 21 22 int … … 26 27 upc_off_t offset = offsets[MYTHREAD]; 27 28 int blocksize = BLOCKSIZE; 29 TYPE *vbfp; 28 30 ssize_t bytes; 29 31 … … 35 37 memvec[0].baseaddr = buffer + offsets[0]; 36 38 memvec[0].blocksize = blocksize; 37 memvec[0].elemsize = 1;38 39 memvec[0].len = nmembs[0]; 40 memvec[0].elemsize = sizeof(TYPE); 39 41 40 42 memvec[1].baseaddr = buffer + offsets[1]; 41 43 memvec[1].blocksize = blocksize; 42 44 memvec[1].len = nmembs[1]; 43 memvec[1].elemsize = 1;45 memvec[1].elemsize = sizeof(TYPE); 44 46 45 47 struct upc_filevec filevec[3]; 46 filevec[0].offset = offsets[0] ;47 filevec[0].len = 30 ;48 filevec[0].offset = offsets[0] * sizeof(TYPE); 49 filevec[0].len = 30 * sizeof(TYPE); 48 50 49 filevec[1].offset = offsets[1] ;50 filevec[1].len = 1 ;51 filevec[1].offset = offsets[1] * sizeof(TYPE); 52 filevec[1].len = 1 * sizeof(TYPE); 51 53 52 filevec[2].offset = 40 ;53 filevec[2].len = 29 ;54 filevec[2].offset = 40 * sizeof(TYPE); 55 filevec[2].len = 29 * sizeof(TYPE); 54 56 55 for( j = 0; j< THREADS; j++ ) {56 if( MYTHREAD == j) {57 fprintf(stderr, "TH%d : ", j);58 for(i = 0; i < 2; i++ )59 fprintf( stderr, "memvec: len = %d, fv: offset = %d\n", memvec[i].len, filevec[i].offset );60 fprintf(stderr, "\n");61 }62 sleep(3);63 upc_barrier;64 }65 57 66 upc_file_t* fd = upc_all_fopen( "test2.txt", UPC_RDONLY | UPC_COMMON_FP, 0, NULL);58 upc_file_t* fd = upc_all_fopen(argv[1], UPC_RDONLY | UPC_COMMON_FP, 0, NULL); 67 59 if (fd == NULL) { 68 60 #if BLOCKSIZE != 0 … … 78 70 upc_barrier; 79 71 80 if( MYTHREAD == 0) {81 fprintf(stderr, "TH%d : ", MYTHREAD);82 for(i = 0; i < nmembs[0]; i++ )83 fprintf( stderr, "%u ", buffer[ i+offsets[0] ] );84 fprintf(stderr, "\n\n\n");85 72 86 fprintf(stderr, "TH%d : ", MYTHREAD); 87 for(i = 0; i < nmembs[1]; i++ ) 88 fprintf( stderr, "%u ", buffer[ i+offsets[1] ] ); 89 fprintf(stderr, "\n"); 73 /* Validation start */ 74 75 /* copy the chunks to vbf */ 76 vbfp = vbf; 77 gupc_memget(vbfp, memvec[0].baseaddr, blocksize, sizeof(TYPE), memvec[0].len); 78 vbfp += memvec[0].len; 79 gupc_memget(vbfp, memvec[1].baseaddr, blocksize, sizeof(TYPE), memvec[1].len); 80 81 /* verify the data using the filevec information */ 82 vbfp = vbf; 83 for (i = 0; i < 3; i++) { 84 for (j = 0; j < filevec[i].len/sizeof(TYPE); j++) { 85 if (*vbfp != (filevec[i].offset / sizeof(TYPE) + j) % 0x80) 86 GULA_FAIL("Data integrity is violated!"); 87 vbfp ++; 88 } 90 89 } 91 offset = upc_all_fseek(fd, 0, UPC_SEEK_CUR);92 fprintf(stderr, "Th%d: origin=%d, read %d bytes, cur offset = %d\n", MYTHREAD, 0, bytes, offset);93 upc_barrier;94 90 95 91 #if BLOCKSIZE != 0 src/units_shared
r90 r109 2 2 io_fread_shared_comm 3 3 io_fwrite_shared_ind 4 io_fwrite_shared_comm 5 io_fread_list_shared_ind 6 io_fread_list_shared_comm
