Update the test to check that all data is exposed via the
convertor_raw interface. This commit was SVN r20383.
Этот коммит содержится в:
родитель
d0a05e90ba
Коммит
e0638c84c8
@ -71,6 +71,7 @@ static int test_upper( unsigned int length )
|
|||||||
iov_count = 5;
|
iov_count = 5;
|
||||||
max_data = 0;
|
max_data = 0;
|
||||||
ompi_convertor_raw( pConv, iov, &iov_count, &max_data );
|
ompi_convertor_raw( pConv, iov, &iov_count, &max_data );
|
||||||
|
i -= max_data;
|
||||||
}
|
}
|
||||||
GET_TIME( end );
|
GET_TIME( end );
|
||||||
total_time = ELAPSED_TIME( start, end );
|
total_time = ELAPSED_TIME( start, end );
|
||||||
@ -100,7 +101,7 @@ static int local_copy_ddt_raw( ompi_datatype_t* pdt, int count, int iov_num )
|
|||||||
long total_time;
|
long total_time;
|
||||||
int i;
|
int i;
|
||||||
uint32_t iov_count = iov_num;
|
uint32_t iov_count = iov_num;
|
||||||
size_t max_data;
|
size_t max_data = 0, remaining_length;
|
||||||
|
|
||||||
iov = (struct iovec*)malloc(iov_num * sizeof(struct iovec));
|
iov = (struct iovec*)malloc(iov_num * sizeof(struct iovec));
|
||||||
|
|
||||||
@ -110,14 +111,28 @@ static int local_copy_ddt_raw( ompi_datatype_t* pdt, int count, int iov_num )
|
|||||||
return OMPI_ERROR;
|
return OMPI_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
remaining_length = count * pdt->size;
|
||||||
GET_TIME( start );
|
GET_TIME( start );
|
||||||
while( 0 != ompi_convertor_raw(convertor, iov, &iov_count, &max_data) ) {
|
while( 0 == ompi_convertor_raw(convertor, iov, &iov_count, &max_data) ) {
|
||||||
|
#if 0
|
||||||
|
printf( "New raw extraction (iov_count = %d, max_data = %lu)\n",
|
||||||
|
iov_count, max_data );
|
||||||
|
for( i = 0; i < iov_count; i++ ) {
|
||||||
|
printf( "\t{%p, %d}\n", iov[i].iov_base, iov[i].iov_len );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
remaining_length -= max_data;
|
||||||
iov_count = iov_num;
|
iov_count = iov_num;
|
||||||
}
|
}
|
||||||
|
remaining_length -= max_data;
|
||||||
GET_TIME( end );
|
GET_TIME( end );
|
||||||
total_time = ELAPSED_TIME( start, end );
|
total_time = ELAPSED_TIME( start, end );
|
||||||
printf( "raw extraction in %ld microsec\n", total_time );
|
printf( "raw extraction in %ld microsec\n", total_time );
|
||||||
OBJ_RELEASE( convertor );
|
OBJ_RELEASE( convertor );
|
||||||
|
if( remaining_length != 0 ) {
|
||||||
|
printf( "Not all raw description was been extracted (%ld bytes missing)\n",
|
||||||
|
remaining_length );
|
||||||
|
}
|
||||||
return OMPI_SUCCESS;
|
return OMPI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -253,7 +268,9 @@ int main( int argc, char* argv[] )
|
|||||||
printf( ">>--------------------------------------------<<\n" );
|
printf( ">>--------------------------------------------<<\n" );
|
||||||
printf( "Vector data-type (450 times 10 double stride 11)\n" );
|
printf( "Vector data-type (450 times 10 double stride 11)\n" );
|
||||||
pdt = create_vector_type( MPI_DOUBLE, 450, 10, 11 );
|
pdt = create_vector_type( MPI_DOUBLE, 450, 10, 11 );
|
||||||
ompi_ddt_dump( pdt );
|
if( outputFlags & DUMP_DATA_AFTER_COMMIT ) {
|
||||||
|
ompi_ddt_dump( pdt );
|
||||||
|
}
|
||||||
if( outputFlags & CHECK_PACK_UNPACK ) {
|
if( outputFlags & CHECK_PACK_UNPACK ) {
|
||||||
local_copy_ddt_raw(pdt, 1, iov_num);
|
local_copy_ddt_raw(pdt, 1, iov_num);
|
||||||
}
|
}
|
||||||
@ -279,7 +296,9 @@ int main( int argc, char* argv[] )
|
|||||||
printf( ">>--------------------------------------------<<\n" );
|
printf( ">>--------------------------------------------<<\n" );
|
||||||
pdt = test_create_blacs_type();
|
pdt = test_create_blacs_type();
|
||||||
if( outputFlags & CHECK_PACK_UNPACK ) {
|
if( outputFlags & CHECK_PACK_UNPACK ) {
|
||||||
ompi_ddt_dump( pdt );
|
if( outputFlags & DUMP_DATA_AFTER_COMMIT ) {
|
||||||
|
ompi_ddt_dump( pdt );
|
||||||
|
}
|
||||||
local_copy_ddt_raw(pdt, 4500, iov_num);
|
local_copy_ddt_raw(pdt, 4500, iov_num);
|
||||||
}
|
}
|
||||||
printf( ">>--------------------------------------------<<\n" );
|
printf( ">>--------------------------------------------<<\n" );
|
||||||
@ -292,7 +311,6 @@ int main( int argc, char* argv[] )
|
|||||||
}
|
}
|
||||||
printf( ">>--------------------------------------------<<\n" );
|
printf( ">>--------------------------------------------<<\n" );
|
||||||
OBJ_RELEASE( pdt1 ); assert( pdt1 == NULL );
|
OBJ_RELEASE( pdt1 ); assert( pdt1 == NULL );
|
||||||
OBJ_RELEASE( pdt2 ); assert( pdt2 == NULL );
|
|
||||||
|
|
||||||
/* clean-ups all data allocations */
|
/* clean-ups all data allocations */
|
||||||
ompi_ddt_finalize();
|
ompi_ddt_finalize();
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user