Adachi, You're right indeed, I should have multiplied the displacement by the extent of the datatype. Thanks for catching this! Commit r26259 is supposed to fix this.
george. On Apr 9, 2012, at 01:57 , ADACHI Tomoya wrote: > Hi George, > > This fix seems insufficient for multibyte datatypes... > The correct increment of the pointers is length * extent, isn't it? > > (2012/04/06 23:50), bosi...@osl.iu.edu wrote: >> Author: bosilca >> Date: 2012-04-06 10:50:04 EDT (Fri, 06 Apr 2012) >> New Revision: 26243 >> URL: https://svn.open-mpi.org/trac/ompi/changeset/26243 >> >> Log: >> Don't forget to move the pointers after the copy (only affects large data >> transfers). >> >> Text files modified: >> trunk/ompi/datatype/ompi_datatype.h | 5 ++++- >> 1 files changed, 4 insertions(+), 1 deletions(-) >> >> Modified: trunk/ompi/datatype/ompi_datatype.h >> ============================================================================== >> --- trunk/ompi/datatype/ompi_datatype.h (original) >> +++ trunk/ompi/datatype/ompi_datatype.h 2012-04-06 10:50:04 EDT (Fri, >> 06 Apr 2012) >> @@ -289,8 +289,11 @@ >> while( 0 != count ) { >> length = INT_MAX; >> if( ((size_t)length)> count ) length = (int32_t)count; >> - rc = opal_datatype_copy_content_same_ddt(&type->super, count, >> pDestBuf, pSrcBuf ); >> + rc = opal_datatype_copy_content_same_ddt(&type->super, length, >> + pDestBuf, pSrcBuf ); >> if( 0 != rc ) return rc; >> + pDestBuf += (ptrdiff_t)length; >> + pSrcBuf += (ptrdiff_t)length; >> count -= (size_t)length; >> } >> return 0; >> _______________________________________________ >> svn-full mailing list >> svn-f...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/svn-full >> >> > > -- > 富士通株式会社 次世代TC開発本部 > ソフトウェア開発統括部 第四開発部 > 安達 知也 (ADACHI Tomoya) (adachi.tom...@jp.fujitsu.com) > tel: 7103-8632(内線) 044-754-8769(外線) > > _______________________________________________ > devel mailing list > de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/devel