Hi Dr. Pavan,

Thank you so much for your reply. Sorry to post the whole code.

I found out the where is the problem. due to my different communicator, 1 process doesn't create window. so I failed to free it.

Once again. Thanks a lot!

Sufeng



On Tue, Jul 23, 2013 at 6:27 PM, Pavan Balaji <balaji@mcs.anl.gov> wrote:

Please send a *simple* example which demonstrates the problem.

I'm almost certain it's a problem with your application and not with MPI.  Hence you going through the exercise of creating a simple example will allow you to figure out what's wrong.

 -- Pavan


On 07/23/2013 06:10 PM, Sufeng Niu wrote:
sure, no problem. but I guess svn maybe easier. since there is some
images file to run it. Can you use svn to clone it?

it is: https://subversion.xray.aps.anl.gov/detpool/SUFENGNIU/MPI_Compression

just make, you need two terminals to run it. one terminal type:
./run.perl main
the second terminal type: ./udp_client 55Fe_run5.tif

which is that the first terminal send the data, the second terminal
receive it and process it.

Thank you so much. Due to my limited knowledge I didn't find out where
is the problem.

once again, thanks a lot!

Sufeng


On Tue, Jul 23, 2013 at 6:00 PM, Pavan Balaji <balaji@mcs.anl.gov
<mailto:balaji@mcs.anl.gov>> wrote:


    Can you send us a simple program that gives this error?

      -- Pavan


    On 07/23/2013 05:55 PM, Sufeng Niu wrote:

        Hello,

        I used MPI_Win_free, and it returns error code: 45, Invalid
        MPI_Win. I
        checked all my code, but I still cannot find out where is the
        problem. I
        was wondering any one can give a suggestion?

        I defined win as
        MPI_Win win;

        in RMA, I create a sub communicator: MPI_FOR_WORLD
        MPI_Win_create(image_buff,
        2*image_info->image_size*__sizeof(uint16),

        sizeof(uint16), MPI_INFO_NULL, MPI_FOR_WORLD, win);

        In other MPI_FOR_WORLD process:
        MPI_Win_create(MPI_BOTTOM, 0, sizeof(uint16), MPI_INFO_NULL,
        MPI_FOR_WORLD, win);

        I use MPI_Get, just as normal thing. no mem violation.

        free it as
        MPI_Win_free(&win);

        I still cannot figure out why it keeps saying MPI_Win_free
        failed. Thank
        you very much for any suggestions.

        --
        Best Regards,
        Sufeng Niu
        ECASP lab, ECE department, Illinois Institute of Technology
        Tel: 312-731-7219 <tel:312-731-7219> <tel:312-731-7219
        <tel:312-731-7219>>


        _________________________________________________
        discuss mailing list discuss@mpich.org <mailto:discuss@mpich.org>

        To manage subscription options or unsubscribe:
        https://lists.mpich.org/__mailman/listinfo/discuss

        <https://lists.mpich.org/mailman/listinfo/discuss>


    --
    Pavan Balaji
    http://www.mcs.anl.gov/~balaji




--
Best Regards,
Sufeng Niu
ECASP lab, ECE department, Illinois Institute of Technology
Tel: 312-731-7219



--
Best Regards,
Sufeng Niu
ECASP lab, ECE department, Illinois Institute of Technology
Tel: 312-731-7219