/* -*- Mode: C; c-basic-offset:4 ; -*- */ /* * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. * Copyright (c) 2004-2014 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2006 High Performance Computing Center Stuttgart, * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. * Copyright (c) 2006 Sun Microsystems Inc. All rights reserved. * Copyright (c) 2018 Los Alamos National Security, LLC. All rights * reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */ #include "ompi_config.h" #include "ompi/datatype/ompi_datatype.h" #include #include #ifdef HAVE_SYS_TIME_H #include #endif #include #define TIMER_DATA_TYPE struct timeval #define GET_TIME(TV) gettimeofday( &(TV), NULL ) #define ELAPSED_TIME(TSTART, TEND) (((TEND).tv_sec - (TSTART).tv_sec) * 1000000 + ((TEND).tv_usec - (TSTART).tv_usec)) #define DUMP_DATA_AFTER_COMMIT 0x00000001 #define CHECK_PACK_UNPACK 0x00000002 extern uint32_t outputFlags; /** * Cache cleanup. */ extern void cache_trash( void ); /** * Data-type functions. */ ompi_datatype_t* create_inversed_vector( const ompi_datatype_t* type, int length ); extern void print_double_mat( unsigned int N, double* mat ); extern int init_random_upper_matrix( unsigned int N, double* mat ); extern int check_diag_matrix( unsigned int N, double* mat1, double* mat2 ); extern ompi_datatype_t* upper_matrix( unsigned int mat_size ); extern ompi_datatype_t* lower_matrix( unsigned int mat_size ); extern ompi_datatype_t* test_matrix_borders( unsigned int size, unsigned int width ); extern ompi_datatype_t* test_contiguous( void ); extern ompi_datatype_t* test_struct_char_double( void ); extern ompi_datatype_t* test_create_twice_two_doubles( void ); /* Datatype 0x832cf28 size 0 align 1 id 0 length 4 used 0 true_lb 0 true_ub 0 (true_extent 0) lb 0 ub 0 (extent 0) nbElems 0 loops 0 flags 6 (committed contiguous )-cC--------[---][---] contain 13 disp 0x420 (1056) extent 4 --C-----D*-[ C ][INT] MPI_INT count 13 disp 0x478 (1144) extent 4 --C-----D*-[ C ][INT] MPI_INT count 13 disp 0x4d0 (1232) extent 4 --C-----D*-[ C ][INT] MPI_INT count 13 disp 0x528 (1320) extent 4 --C-----D*-[ C ][INT] MPI_INT count 13 disp 0x580 (1408) extent 4 --C-----D*-[ C ][INT] MPI_INT count 13 disp 0x5d8 (1496) extent 4 --C-----D*-[ C ][INT] MPI_INT count 13 disp 0x630 (1584) extent 4 --C-----D*-[ C ][INT] MPI_INT count 12 disp 0x68c (1676) extent 4 --C-----D*-[ C ][INT] MPI_INT count 11 disp 0x6e8 (1768) extent 4 --C-----D*-[ C ][INT] MPI_INT count 10 disp 0x744 (1860) extent 4 --C-----D*-[ C ][INT] MPI_INT count 9 disp 0x7a0 (1952) extent 4 --C-----D*-[ C ][INT] MPI_INT count 8 disp 0x7fc (2044) extent 4 --C-----D*-[ C ][INT] MPI_INT count 7 disp 0x858 (2136) extent 4 --C-----D*-[ C ][INT] MPI_INT count 6 disp 0x8b4 (2228) extent 4 --C-----D*-[ C ][INT] MPI_INT count 5 disp 0x910 (2320) extent 4 --C-----D*-[ C ][INT] MPI_INT count 4 disp 0x96c (2412) extent 4 --C-----D*-[ C ][INT] MPI_INT count 3 disp 0x9c8 (2504) extent 4 --C-----D*-[ C ][INT] MPI_INT count 2 disp 0xa24 (2596) extent 4 --C-----D*-[ C ][INT] MPI_INT count 1 disp 0xa80 (2688) extent 4 */ extern ompi_datatype_t* test_create_blacs_type( void ); extern ompi_datatype_t* test_create_blacs_type1( const ompi_datatype_t* base_type ); extern ompi_datatype_t* test_create_blacs_type2( const ompi_datatype_t* base_type ); extern ompi_datatype_t* test_struct( void ); extern ompi_datatype_t* create_strange_dt( void ); extern ompi_datatype_t* create_contiguous_type( const ompi_datatype_t* data, int count ); extern ompi_datatype_t* create_vector_type( const ompi_datatype_t* data, int count, int length, int stride ); extern ompi_datatype_t* create_struct_constant_gap_resized_ddt( ompi_datatype_t* type );