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), bosilca_at_[hidden] 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-full_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/svn-full
>>
>>
>
> --
> å¯å£«éæ ªå¼ä¼ç¤¾ 次ä¸ä»£TCéçºæ¬é¨
> ã½ããã¦ã§ã¢éçºçµ±æ¬é¨ 第åéçºé¨
> å®é ç¥ä¹ (ADACHI Tomoya) (adachi.tomoya_at_[hidden])
> tel: 7103-8632(å
ç·) 044-754-8769(å¤ç·)
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
|