<div dir="ltr"><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">Hello All,</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
I intend to solve a Finite Element problem using MPI and PETSc. I have a conceptual problem with reading a mesh file in parallel with MPI IO.</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
My mesh file structure is as follows (3 blocks):</p><blockquote style="font-style:italic;quotes:'';margin:0px 0px 1.5em;padding:0px 0px 0px 3em;color:rgb(96,96,96);font-family:Arial,宋体,Tahoma,Helvetica,sans-serif;font-size:13px;line-height:19px">
<p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">!Block1: Connectivity data</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
1 10 11 12 13   !ElementNumber, Node1, Node2, Node3, Node4   <element 1 is connected to nodes 10, 11, 12 and 13></p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
2 14 15 16 17</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">.</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
.</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">.</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
****   ****   ****   ****   </p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">!Block2: Coordinate data</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
1 0.0 0.0 0.0  !Node1, x, y and z</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">2 0.0 0.0 1.0</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
.</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">.</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
.</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">****   **.**   **.**   **.**</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
!Block3: Boundary data</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">*   *   *  *  *  </p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
*   *   *  *  *  </p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">*   *   *  *  *  .</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
.</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">.</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
.</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">*   *   *  *  *  </p></blockquote><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
The goal is to read this single file parallely in multiple processors. Parallelization type = MPI. No multithreading involved. I'll be using a Lustre parallel file system.</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
I understand the idea summarized in the figure below:</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)"><img src="https://dl.dropboxusercontent.com/u/13762821/MPI_IO.png" height="212" width="707" style="border: 0px; max-width: 100%; height: auto;"></p>
<p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">Unlike in the figure above I have a file which is different in structure (i.e. formatted with blocks of different size and datatypes) and I don't get how different blocks of data can be read in parallel. Should there be a synchronization call like MPI_BARRIER, after every block is completed on all processors? Also, if there is a fortran example, I'll be really happy to have it. Any suggestions are more than welcome.</p>
<p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">Many Thanks,</p><p style="margin:0px 0px 1.5em;padding:0px;font-family:Arial,Helvetica,sans-serif;font-size:12px;color:rgb(83,87,94)">
Amar</p></div>