1
1
openmpi/ompi
Mark Allen aeb2c02d2f Type_create_darray with mix of BLOCK/CYCLIC
Example (using MPI_ORDER_C so the below has 6 rows of 4 ints to parcel out)
    size = 4;
    rank = 0;
    ndims=2;
    gsizes[0] = 6;
    gsizes[1] = 4;
    distribs[0] = MPI_DISTRIBUTE_CYCLIC;
    distribs[1] = MPI_DISTRIBUTE_BLOCK;
    dargs[0] = 2;
    dargs[1] = 2;
    psizes[0] = 2;
    psizes[1] = 2;
    MPI_Type_create_darray(size, rank, ndims,
        gsizes, distribs, dargs, psizes,
        MPI_ORDER_C, MPI_INT, &mydt);

Expectation for the layout:
   inner dimension (1) is
       4 items (ints) distributed block over 2 ranks with 2 items each
       eg for rank 0: [ x x . . ]
   outer dimension (0) is:
       6 items (the above [ x x . .]) cyclic over 2 ranks with 2 items each
       eg for rank 0:
           [ x x . . ]    :  offset=0 bytes=8
           [ x x . . ]    :  ofset=16 bytes=8
           [ . . . . ]
           [ . . . . ]
           [ x x . . ]    :  offset=64 bytes=8
           [ x x . . ]    :  offset=80 bytes=8

Or more specifically a stream of ints 0,1,2,3,4,5,6,7 sent into that
type should be
    [ 0 1 . . ]
    [ 2 3 . . ]
    [ . . . . ]
    [ . . . . ]
    [ 4 5 . . ]
    [ 6 7 . . ]
The data was laying out though as
    [ 0 1 2 3 ]
    [ . . . . ]
    [ . . . . ]
    [ . . . . ]
    [ 4 5 6 7 ]
    [ . . . . ]
because the recursive construction inside the block() function (which
creates the smaller row datatype [ x x . . ]) wasn't setting the extent
of that type.

Signed-off-by: Mark Allen <markalle@us.ibm.com>
2017-06-07 16:53:03 -04:00
..
attribute ompi/attribute: plug a memory leak in set_value() 2016-12-01 14:24:30 +09:00
class Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
communicator predefined MPI object padding: set to fixed number of bytes (#3634) 2017-06-01 15:28:23 -04:00
contrib Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
datatype Type_create_darray with mix of BLOCK/CYCLIC 2017-06-07 16:53:03 -04:00
debuggers fixes for Dave's get/set info code 2017-05-17 01:12:49 -04:00
dpm Update the connect/accept support so we check to see if we have the proper infrastructure and RTE support, including whether we have ompi-server available if the connect/accept spans multiple applications. Print pretty help messages in all cases where we do not have support 2017-05-27 10:47:08 -07:00
errhandler Improve the opal_pointer_array & more (#3369) 2017-04-18 21:41:26 -04:00
etc Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
file predefined MPI object padding: set to fixed number of bytes (#3634) 2017-06-01 15:28:23 -04:00
group predefined MPI object padding: set to fixed number of bytes (#3634) 2017-06-01 15:28:23 -04:00
include Topic/datatype (#3441) 2017-05-09 09:31:40 -04:00
info predefined MPI object padding: set to fixed number of bytes (#3634) 2017-06-01 15:28:23 -04:00
interlib fixes for Dave's get/set info code 2017-05-17 01:12:49 -04:00
mca osc/sm: fix SEGV in new info usage 2017-06-01 12:32:30 -06:00
message predefined MPI object padding: set to fixed number of bytes (#3634) 2017-06-01 15:28:23 -04:00
mpi Merge pull request #3641 from ggouaillardet/topic/fortran_strings 2017-06-05 15:31:08 -04:00
mpiext fixes for Dave's get/set info code 2017-05-17 01:12:49 -04:00
op predefined MPI object padding: set to fixed number of bytes (#3634) 2017-06-01 15:28:23 -04:00
patterns ompi: use ompi_coll_base_sendrecv_actual() whenever possible 2017-04-20 10:01:28 +09:00
peruse Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
proc ompi: Avoid unnecessary PMIx lookups when adding procs (step 2). 2017-03-16 07:47:27 +07:00
request predefined MPI object padding: set to fixed number of bytes (#3634) 2017-06-01 15:28:23 -04:00
runtime Update the connect/accept support so we check to see if we have the proper infrastructure and RTE support, including whether we have ompi-server available if the connect/accept spans multiple applications. Print pretty help messages in all cases where we do not have support 2017-05-27 10:47:08 -07:00
tools java: Use correct date/version in mpijava man page 2017-05-31 17:24:49 +09:00
util Cleanup warnings when timing is not enabled 2017-04-11 17:29:27 -07:00
win predefined MPI object padding: set to fixed number of bytes (#3634) 2017-06-01 15:28:23 -04:00
Makefile.am Implement the changes required to support cross-library coordination. Update PMIx to support intra-process notifications and ensure that we always notify ourselves for events. Add a new ompi/interlib directory where cross-lib coordination code can go, and put the code to declare ourselves there (called from ompi_mpi_init.c). 2017-05-08 10:04:50 -07:00