Changeset 109

Show
Ignore:
Timestamp:
03/19/07 01:25:24
Author:
kunxi
Message:

Add io_fread_List_shared_comm test case. Cleanup the units_shared.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/io_fread_list_shared_comm.upc

    r103 r109  
    1414#endif 
    1515 
     16static TYPE vbf[180]; 
    1617 
    1718/* 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, 30, 81 , 25, 77, 121, 139, 47}; 
     19static int nmembs [] = { 23, 37 }; 
     20static int offsets [] = { 2, 39 }; 
    2021 
    2122int 
     
    2627        upc_off_t offset = offsets[MYTHREAD]; 
    2728        int blocksize = BLOCKSIZE; 
     29        TYPE *vbfp;  
    2830        ssize_t bytes; 
    2931 
     
    3537        memvec[0].baseaddr = buffer + offsets[0]; 
    3638        memvec[0].blocksize = blocksize; 
    37         memvec[0].elemsize = 1; 
    3839        memvec[0].len = nmembs[0]; 
     40        memvec[0].elemsize = sizeof(TYPE); 
    3941 
    4042        memvec[1].baseaddr = buffer + offsets[1]; 
    4143        memvec[1].blocksize = blocksize; 
    4244        memvec[1].len = nmembs[1]; 
    43         memvec[1].elemsize = 1
     45        memvec[1].elemsize = sizeof(TYPE)
    4446 
    4547        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)
    4850 
    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)
    5153 
    52         filevec[2].offset = 40
    53         filevec[2].len = 29
     54        filevec[2].offset = 40 * sizeof(TYPE)
     55        filevec[2].len = 29 * sizeof(TYPE)
    5456 
    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         } 
    6557 
    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); 
    6759        if (fd == NULL) { 
    6860#if BLOCKSIZE != 0 
     
    7870        upc_barrier; 
    7971 
    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"); 
    8572 
    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                } 
    9089        } 
    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; 
    9490 
    9591#if BLOCKSIZE != 0 
  • src/units_shared

    r90 r109  
    22io_fread_shared_comm 
    33io_fwrite_shared_ind 
     4io_fwrite_shared_comm 
     5io_fread_list_shared_ind 
     6io_fread_list_shared_comm