3.1.1. Open MPI v6.1.x series
This file contains all the NEWS updates for the Open MPI v6.1.x series, in reverse chronological order.
3.1.1.1. Open MPI version v6.1.0
- Date:
…fill me in…
Nonblocking file I/O no longer loses data when the operating system’s asynchronous I/O queue fills, which on macOS it readily does: the
posixfbtlcomponent sized its batch of concurrentaio_writecalls fromsysconf(_SC_AIO_MAX), which there reports the machine-widekern.aiomax(90 by default) rather than thekern.aioprocmaxa single process is held to (16). The component now bounds the batch by the per-process limit, defers requests the queue will not accept instead of discarding them, and reaps the operations it has posted before releasing their control blocks – an unreaped operation used to cost the process a queue slot permanently, so one refusal disabled nonblocking file I/O for the rest of its life. The newfbtl_posix_max_aio_reqsMCA parameter overrides the limit. A nonblocking operation thefbtlcannot post is now reported asMPI_ERR_IO; previouslyMPI_File_iwrite_allandMPI_Waitboth returnedMPI_SUCCESSfor a write that never reached the file.Reporting an error for a failed nonblocking file operation no longer crashes the process.
MPI_WaitandMPI_Testreach a file’s error handler through the request, and a nonblocking file request did not record which file it came from, so invoking the error handler dereferenced a null pointer.MPI_Info_setnow accepts a zero-length (empty) value string. It previously raisedMPI_ERR_INFO_VALUEfor an empty value, but MPI-5.0 chapter 10 only limits the maximum length of an info value, and gives the empty string a defined meaning for thempi_memory_alloc_kindsinfo key. Empty keys remain invalid.Partitioned communication fixes:
MPI_Parrivednow returnsflag = truefor a null request (MPI_REQUEST_NULL) and for an inactive request, as required by MPI-5.0 section 4.2.2. It previously raisedMPI_ERR_REQUESTfor a null request and returnedflag = falsefor a partitioned receive request that had never been started.MPI_Psend_initandMPI_Precv_initnow acceptMPI_PROC_NULLas the peer rank, per MPI-5.0 section 3.10. Such a request completes as soon as it is started,MPI_Preadyon it has no effect, andMPI_Parrivedreports every partition as arrived. Previously,MPI_PROC_NULLwas passed down as if it were a real peer rank, reading outside the communicator’s process array.Freeing a partitioned communication request that was never started no longer leaves its internal setup receive posted. Such a stale receive could consume the setup message of the next partitioned operation using the same communicator, peer, and tag, which then never completed.
Renamed the
--enable-weak-symbolsconfigure option to--enable-weak-aliases, which more accurately reflects the linker feature (weak symbol aliases) that Open MPI actually tests for and uses.--enable-weak-symbolsis retained as a deprecated synonym.The documentation now publishes machine-readable, LLM-friendly artifacts for the public MPI APIs alongside the human-facing HTML and man pages: a JSONL API catalog, aggregate and per-interface Markdown corpora, per-symbol Markdown pages, curated examples, an interface guide, an
ompi_inforuntime-introspection guide (how to query an installed Open MPI for its version, configuration, components, and run-time MCA parameters), and a manifest, all indexed fromllms.txt. See the “LLM-friendly documentation artifacts” page in the developer documentation.