Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MPI_INIT & MPI_FINALIZE #313

Closed
mpiforumbot opened this issue Jul 24, 2016 · 10 comments
Closed

MPI_INIT & MPI_FINALIZE #313

mpiforumbot opened this issue Jul 24, 2016 · 10 comments

Comments

@mpiforumbot
Copy link
Collaborator

mpiforumbot commented Jul 24, 2016

Originally by snir on 2012-01-11 22:11:18 -0600


clean text about who needs to invoke them

@mpiforumbot
Copy link
Collaborator Author

Originally by dougmill on 2012-02-08 08:33:32 -0600


How about describing this in terms of the program execution instead of MPI or OS processes:

"Entity" is used to describe an execution-instance of code, for example a thread (or in the case of "non-threaded apps", an OS process).

There is exactly one call to MPI_INIT or MPI_INIT_THREAD for each entity that executes main() (for C/C++, or the PROGRAM block for FORTRAN) in an MPI Program. There is exactly one call to MPI_FINALIZE for each call to MPI_INIT/MPI_INIT_THREAD.

We can then state that it is up to the implementations (of both MPI and other paradigms that are interoperable with MPI, such as UPC) to ensure that MPI_INIT (et al.) have reasonable/intended results.

This should cover the case where a UPC implementation/configuration creates multiple threads within an OS process and each one calls main() in the user code (regardless of whether that is actually "main()" in the object code).

@mpiforumbot
Copy link
Collaborator Author

Originally by dougmill on 2012-02-09 09:16:57 -0600


With regard to the issue/example of UPC in it's "ultra threaded" mode, I see two "official" references to this on UPC web sites, both essentially say that the "-pthreads" option to upcc is not supported with UPC+MPI programs. This is good reading going forward to make sure we don't get de-railed with things like this.

Berkeley UPC with MPI

UPC Interoperability with MPI

@mpiforumbot
Copy link
Collaborator Author

Originally by snir on 2012-03-04 23:12:25 -0600


Attachment added: ticket 313.pdf (215.2 KiB)

@mpiforumbot
Copy link
Collaborator Author

Originally by snir on 2012-03-06 23:39:22 -0600


Attachment added: ticket 313 v2.pdf (252.3 KiB)

@mpiforumbot
Copy link
Collaborator Author

Originally by snir on 2012-05-01 21:06:36 -0500


Attachment added: 313.pdf (273.7 KiB)
voted text

@mpiforumbot
Copy link
Collaborator Author

Originally by snir on 2012-05-01 21:07:52 -0500


Text ready for vote

@mpiforumbot
Copy link
Collaborator Author

Originally by RolfRabenseifner on 2012-06-28 11:13:23 -0500


In the pdf, three times, the old name MPI_INFO_KEY is used instead of MPI_INFO_GET_ENV.

This ticket-0-change and a new pdf should be made before we do the 2nd vote.

@mpiforumbot
Copy link
Collaborator Author

Originally by RolfRabenseifner on 2012-07-17 17:37:45 -0500


The ticket was missing the MPI_INFO_GET_ENV as constant in the chap-appLang.

I added it in a new table named 'Environmental inquiry info keys'
above the existing table 'Environmental inquiry keys'.

Committed to approved/chap-appLang in r1370.

@mpiforumbot
Copy link
Collaborator Author

Originally by RolfRabenseifner on 2013-01-08 08:27:20 -0600


The ticket is not fully completed, or the forum rejected this change and it was not reported on this ticket.

This was also reported in
https://svn.mpi-forum.org/svn/mpi-forum-docs/trunk/meetings/2012-07-jul/mpi3-tickets.xlsx

The attachment:313.pdf contains the following change

  • MPI-3.0 p358:5-7 reads

    All MPI programs must contain exactly one call to an MPI initialization routine:
    MPI_INIT or MPI_INIT_THREAD.
    Subsequent calls to any initialization routines are erroneous.

    -and 313.pdf proposed that it should read*

    All MPI programs must contain exactly one call to an MPI
    initialization routine: MPI_INIT or MPI_INIT_THREAD.

    Each MPI process must call an MPI initialization routine,
    MPI_INIT or MPI_INIT_THREAD, exactly once.
    Subsequent calls by that process to
    any initialization routines are erroneous.

All other changes in 313.pdf were done correctly in MPI-3.0.

The ticket owner may decide how to proceed.

@mpiforumbot
Copy link
Collaborator Author

Originally by RolfRabenseifner on 2013-01-08 10:35:36 -0600


Marc Snir: pls close it. I shall not be able to continue pushing it, in any case.

It is already closed. Therefore nothing to do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant