[mpich-discuss] Problem with RMA && MPI_Type_vector when stride value is relatively large (UPD)

Zhao, Xin xinzhao3 at illinois.edu
Thu Oct 16 12:59:00 CDT 2014


Hi Victor,

I think it is due to a bug for MPI_PUT to handle large derived datatype and we will fix it as soon as possible. The code works with MPI_GET.

You can track this bug at: https://trac.mpich.org/projects/mpich/ticket/2189

Thanks,
Xin

________________________________
From: Victor Vysotskiy [victor.vysotskiy at teokem.lu.se]
Sent: Thursday, October 16, 2014 11:19 AM
To: discuss at mpich.org
Subject: Re: [mpich-discuss] Problem with RMA && MPI_Type_vector when stride value is relatively large (UPD)

Hi,

I am sorry that the test bed code has not been attached to the original message.
Enclosed please find it. I have also checked the issue in MPICH v3.1.3. Unfortunately,
the latest MPICH3 version behaves exactly the same as the MPICH2 v1.5, i.e. it also hangs
at "30000 2000".

With best regards,
Victor.

P.s. Below is given an update on MPICH3 version used:

MPICH2 Version:         3.1.3

MPICH2 Release date:    Wed Oct  8 09:37:19 CDT 2014

MPICH2 Device:          ch3:nemesis

MPICH2 configure:       --prefix=/opt/mpi/mpich3-1.3/ --disable-weak-symbols

MPICH2 CC:      gcc    -O2

MPICH2 CXX:     c++   -O2

MPICH2 F77:     gfortran   -O2

MPICH2 FC:      gfortran   -O2

GCC version 4.7.3
________________________________
From: Victor Vysotskiy
Sent: Thursday, October 16, 2014 1:34 PM
To: discuss at mpich.org
Subject: Problem with RMA && MPI_Type_vector when stride value is relatively large


Hi,

I am straggling with a simple MPI program when a vector derived datatype is used as origin/remote datatypes in the MPI_Put RMA operation.  The underlying idea is quite simple: a contiguous  piece of memory is interpreted as a 2D array and only its certain slice is going to be updated via MPI_Put. To this end, I am using a  MPI_Type_vector call. Everything works fine when the stride value <= 24000, regardless count and blocklength. However, if stride is greater than 24000 then program simply hangs.  The source code is attached and you can simply verify the issue by compiling and running it with the following parameters:

mpicc mpi_tvec_rma.c

mpirun -np 2 ./a.out 10000 2000

Ok

mpirun -np 2 ./a.out 20000 2000

Ok

mpirun -np 2 ./a.out 30000 2000

Hangs

Is there any internal/known limits to the size of MPI_TYPE_VECTOR datatypes?

So, I am really puzzled what is happening here and any help will be greatly appreciated!

With best regards,

Victor.

P.S. The attached code is perfectly runs with the OpenMPI v1.8.2.

P.P.S. Below are given some details about hardware and software setups used:

MPICH2 Version:         1.5

MPICH2 Release date:    Mon Oct  8 14:00:48 CDT 2012

MPICH2 Device:          ch3:nemesis

MPICH2 configure:       --prefix=/opt/mpi/mpich2/ --disable-weak-symbols

MPICH2 CC:      gcc    -O2

MPICH2 CXX:     c++   -O2

MPICH2 F77:     gfortran   -O2

MPICH2 FC:      gfortran   -O2

GCC version 4.7.3


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20141016/7b3bc62a/attachment.html>
-------------- next part --------------
_______________________________________________
discuss mailing list     discuss at mpich.org
To manage subscription options or unsubscribe:
https://lists.mpich.org/mailman/listinfo/discuss


More information about the discuss mailing list