Using MPI IO to read a Finite Element Mesh

Using MPI IO to read a Finite Element Mesh

Hello Intel,

I intend to solve a Finite Element problem using intel MPI and PETSc. I have a conceptual problem with reading a mesh file in parallel with MPI IO.

My mesh structure is as follows (3 blocks):

!Block1: Connectivity data

1 10 11 12 13   !ElementNumber, Node1, Node2, Node3, Node4   <element 1 is connected to nodes 10, 11, 12 and 13>

2 14 15 16 17

.

.

.

****   ****   ****   ****   

!Block2: Coordinate data

1 0.0 0.0 0.0  !Node1, x, y and z

2 0.0 0.0 1.0

.

.

.

****   **.**   **.**   **.**

!Block3: Boundary data

*   *   *  *  *  

*   *   *  *  *  

*   *   *  *  *  .

.

.

.

*   *   *  *  *  

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.

I understand the idea summarized in the figure below:

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 cal 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 welcome.

Many Thanks,

Amar

1 contribution / 0 nouveau(x)
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.