[Beowulf] parallelization problem

Mattijs Janssens m.janssens at opencfd.co.uk
Thu Aug 13 13:45:01 PDT 2009


Do a non-blocking receive as well so MPI_IRECV instead of MPI_RECV and make 
sure you have an MPI_WAITALL for all the requests (both from sending and from 
receiving).

Kind regards,

Mattijs

On Thursday 13 August 2009 20:15:04 amjad ali wrote:
> Hi, all,
>
>
>
> I am parallelizing a CFD 2D code in FORTRAN+OPENMPI. Suppose that the grid
> (all triangles) is partitioned among 8 processes using METIS. Each process
> has different number of neighboring processes. Suppose each process has n
> elements/faces whose data it needs to sends to corresponding neighboring
> processes, and it has m number of elements/faces on which it needs to get
> data from corresponding neighboring processes. Values of n and m are
> different for each process. Another aim is to hide the communication behind
> computation. For this I do the following for each process:
>
>
>
> DO j = 1 to n
>
> CALL MPI_ISEND (send_data, num, type, dest(j), tag, MPI_COMM_WORLD,
> ireq(j), ierr)
>
> ENDDO
>
>
>
> DO k = 1 to m
>
> CALL MPI_RECV(recv_data, num, type, source(k), tag, MPI_COMM_WORLD, status,
> ierr)
>
> ENDDO
>
>
>
>
>
> This solves my problem. But it gives memory leakage; RAM gets filled after
> few thousands of iteration. What is the solution/remedy? How should I
> tackle this?
>
>
>
> In another CFD code I removed this problem of memory-filling by following
> (in that code n=m) :
>
>
>
> DO j = 1 to n
>
> CALL MPI_ISEND (send_data, num, type, dest(j), tag, MPI_COMM_WORLD,
> ireq(j), ierr)
>
> ENDDO
>
>
>
> CALL MPI_WAITALL(n,ireq,status,ierr)
>
>
>
> DO k = 1 to n
>
> CALL MPI_RECV(recv_data, num, type, source(k), tag, MPI_COMM_WORLD, status,
> ierr)
>
> ENDDO
>
>
>
> But this is not working in current code; and the previous code was not
> giving correct results with large number of processes.
>
>
>
> Please suggest solution.
>
>
>
>  THANKS A LOT FOR YOUR KIND ATTENTION.
>
>
>
> With best regards,
>
> Amjad Ali.

-- 

Mattijs Janssens

OpenCFD Ltd.
9 Albert Road,
Caversham,
Reading RG4 7AN.
Tel: +44 (0)118 9471030
Email: M.Janssens at OpenCFD.co.uk
URL: http://www.OpenCFD.co.uk



More information about the Beowulf mailing list