Rajeev Thakur wrote on Thu, 8 Jul 2010 at 18:24:16
You can define a filetype that is many Gbytes and read only a small part of it. The filetype is specified in MPI_File_set_view and is not passed in the read/write calls. The datatype passed in the read/write calls refers to the buffer passed to that call.
Perfect, thanks for the example! Does this imply that MPI_Type_get_extent, which returns an MPI_Aint, might overflow the extent parameter on a 32-bit platform on which a user defines a many Gbyte filetype? How should we address this (there are probably other APIs affected similarly)? -Fab
-----Original Message----- From: Fab Tillier Sent: Thursday, July 08, 2010 3:32 PM
Rajeev Thakur wrote on Thu, 8 Jul 2010 at 12:52:58
As an aside, can count ever be larger than size_t?
Probably not in the communication or I/O functions since count refers to the number of items in the memory buffer, but it could be for the datatype constructor functions since datatypes can represent file layout.
How would you use a datatype that is larger than your address space? You can't read or write it, you can't send or receive it, you can't pack/unpack it...
Am I missing something and a datatype like this would be useful?
-Fab