[MPICH] Serial read-in of MPI-2 I/O

Peter Diamessis pjd38 at cornell.edu
Thu Sep 20 09:25:44 CDT 2007


Hi Jean Marc,

I really appreciate the response. I did forget to attach the
source code, which I've now added to this email.

The files were generated on a Linux cluster that used x86 (i686)
with 32-bit native word size and little endian representation. The
version of MPICH on this machine was v1.2.6 (at the time the
files were generated). They've now upgraded to v1.2.7..15 . I'm
not sure as to why they don't transition to MPICH2.

My main concern was if there was any header information.
Nonetheless, when I look at the source code, at the end of the
file I output 8 Integers (4 bytes each) and 4 Double Reals  (8 bytes),
i.e. 64 bytes. The first part of the file consists of 4 Single Precision Reals
(MPI_FLOAT) 3-D arrays each having dimensions: 258x128x175 .
Each array thus occupies 23,116,800 bytes . It turns out the file size
is 92,467,264 bytes, which totally matches the above numbers.

I'm guessing that if the viz guy is familiar with the subtleties of his
machine he should be able to read the data.

Many thanks again and I hope this wasn't too naive a question.

Cheers,

Peter

----- Original Message ----- 
From: "Jean-Marc Saffroy" <saffroy at gmail.com>
To: "Peter Diamessis" <pjd38 at cornell.edu>
Cc: <mpich-discuss at mcs.anl.gov>
Sent: Wednesday, September 19, 2007 5:43 PM
Subject: Re: [MPICH] Serial read-in of MPI-2 I/O


> On Tue, 18 Sep 2007, Peter Diamessis wrote:
> 
>> I've attached the actual F90 source code for the output. As you can see, 
>> the four 3-D arrays containing the primitive variables are outputted, 
>> followed by some secondary information on domain size & grid-spacing.
> 
> I think you forgot the attachment, or maybe it was removed by the mailing 
> list robot.
> 
>> The "Using MPI-2" book says that files created by 'native' 
>> representation are not portable. However, I'm assuming that Linux works 
>> with Little Endian and thus this MPI-2 generated data can be read 
>> serially on another Linux machine ?
> 
> Linux works with whatever endian is used by your processor. Some processor 
> architectures can use only one of little endian (eg. x86, x64, Alpha) or 
> big endian (SPARC, POWER); some can use both (IA64), and Linux uses only 
> one endianness (Linux on IA64 is little endian).
> 
> Note that the format of your data can depend on the processor endianness, 
> but also on the native word size (ie. 32 or 64 bits), and of course on 
> your MPI implementation.
> 
> Maybe you should mention which MPI and processor you are using to produce 
> and to read data, then maybe someone (not me) will be able to state if you 
> can read it as 'native'; if not, the following page could tell you how 
> your application should write its data so another app. can read it:
> 
> http://www.mhpcc.edu/training/workshop2/mpi_io/std/node198.html
> 
> 
> -- 
> saffroy at gmail.com
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: output.f
Type: application/octet-stream
Size: 9732 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20070920/028c9152/attachment.obj>


More information about the mpich-discuss mailing list