Sorry for late answer.

I've checked your source code, and I didn't find anything wrong, everything works just fine with Open MPI trunk version. Could you tell me which version did you use, so that I can debug with your generated mpi libs?

By the way, I noticed that you put MPI_Init, MPI_Comm_rank, MPI_Comm_size, and MPI_Finalize in the function that will be triggered by the button press. This is only fine with the first button click, but not for the second click and so on. It's better to place them in the class initialization and finalization, so that they will only be executed once.


On 2010-8-12 1:20 PM, lyb wrote:
Some other information supply. the function breaks at the 3rd ASSERT. Send you the picture. thanks

 the message is,
Unhandle exception at 0x7835b701 (mfc80ud.dll) : 0xC0000005: conflit while read 0xf78e9e00.



I personally haven't try to program MPI with MFC, but in principle it should work. What kind of error did you get, was there any error message? Thanks.


On 2010-8-12 9:13 AM, lyb wrote:

I have a MFC project, and need to add mpi functions in it,  and  choose openmpi.
but I  searched all of mail list ,  not. find the answer.

And I try to call mpi functions under MFC, as follows,

int ompi_test(int *argc, char **argv)
    int rank, size;

    MPI_Init(argc, &argv);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
    MPI_Comm_size(MPI_COMM_WORLD, &size);
    printf("Hello, world, I am %d of %d\n", rank, size);

    return 0;
void CSchedulerDlg::OnBnClickedButton1()
    ompi_test(NULL, NULL);

but break at MPI_Init(argc, &argv);.

So what should I do?
Can anybody help me?

Thanks in advance.

Best Regards.

users mailing list

Shiqing Fan                          http://www.hlrs.de/people/fan
High Performance Computing           Tel.: +49 711 685 87234
  Center Stuttgart (HLRS)            Fax.: +49 711 685 65832
Address:Allmandring 30               email: fan@hlrs.de    
70569 Stuttgart