Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

Subject: Re: [OMPI users] Open MPI data transfer error
From: Jed Brown (jed_at_[hidden])
Date: 2010-11-06 19:15:01


On Sat, Nov 6, 2010 at 18:00, Jack Bryan <dtustudy68_at_[hidden]> wrote:

> Thanks,
>
> About my MPI program bugs:
>
> I used GDB and got the error:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0: 0x0000003a31c62184 in fwrite () from /lib64/libc.so.6
>

Clearly fwrite was called with invalid parameters, but you don't give enough
information for anyone to explain why. Compile your program with debugging
symbols and print the whole stack trace, e.g. with "backtrace full". Also
try valgrind.

> class CNSGA2
> {
> allocate mem for var;
> some deallocate statement;
> some pointers;
> evaluate(); // it is a function
> }
>

This isn't even close to valid code since you can't have statements in the
suggested scope.

main()
> {
> CNSGA2* nsga2a = new CNSGA2(true); // true or false are only for different
> constructors
> CNSGA2* nsga2b = new CNSGA2(false);
> if (myRank == 0) // scope1
> {
> initialize the objects of nsga2a or nsga2b;
> }
> broadcast some parameters, which are got from scope1.
>
> According to the parameters, define a datatype (myData) so that all workers
> use that to do recv and send.
>
> if (myRank == 0) // scope2
> {
> send out myData to workers by the datatype defined above;
> }
> if (myRank != 0)
> {
> newCNSGA2 myNsga2;
> recv data from master and work on the recved data;
> myNsga2.evaluate(recv data);
> send back results;
> }
>
> }
>

According to the above, rank 0 never receives the results from before. You
should paste valid code.

Jed