These are in reference to the draft at <URL:http://meetings.mpi-forum.org/mpi3.0_draft_2.pdf>. Thank you for considering them. Chapter 9: Page 367 line 21: There is an extra space before "value" that is not in other occurrences of that pair name. Page 367 line 29: Why is there a standard-defined upper limit on key length, rather than just saying it's up to implementations? Page 367 line 30: There is no lower bound given on MPI_MAX_INFO_VAL, allowing an implementation to have an absurdly low limit such as one character. Page 368 line 2: Are all strings consisting only of an (optional) sign and decimal digits considered to be decimal (and not octal if they begin with a leading zero)? This issue has come up in practice. Page 368 line 3: There is an extra space before "integer". Page 368 line 6: What is a "valid element"? Is that just a value of the correct type for that particular info key? Is it possible to have lists of lists? Is there a way to escape a comma in a list element? Page 369 line 16: What if the key is too long? Page 370 line 29: Why does this particular case of the key being too long not return a defined error class, while the other functions do? Chapter 10: The chapter uses "intercommunicator" as one word, which is inconsistent with the chapter on communicators. Page 373 line 19: "allow" should be "allows". Page 373 line 24: "later" should be "latter". Page 373 line 32: There is extra space before and after "MPI". Page 374 line 31: There is extra space before "group". Page 376 line 1: There is extra space after "MPI_UNIVERSE_SIZE". Page 376 lines 11-12: "(group,rank)" was written without spaces before this, but with spaces here. Page 376 line 21: "starting first" should be "first starting". Page 377 line 1 and page 382: Is there a reason that argv is not "const char* const argv[]" or similar? Compatibility? Page 378 lines 13-18: This is written very informally. Page 378 lines 22-23: Is there a way to pass an empty argument in Fortran without terminating the argument list? Page 379 line 36: "soft" should be in italics (the one on line 37 should not be). Page 380 line 3: The 9 here refers to a chapter, not a section. Page 380 line 16: Must the root argument be consistent across the entire communicator? Page 380 line 24: Must the same error code be used for all the failed processes? If not, the "error code" part needs to be plural. Page 380 lines 30-32: This refers to the C++ binding which have been removed. Page 381 lines 13-14: Is calling MPI_COMM_FREE on the parent intercommunicator an error? If not, why not? Page 382 lines 35-36: These argument declarations should be separate so the list of variables is not split onto two lines. Page 383 line 25: Why can't MPI_ARGV_NULL be used for individual commands? Page 384 lines 7-8: The command name and arguments should be in the code font. Page 384 line 17: This text is very informal. Page 384 lines 37-: Lines 2+ of each of these paragraphs does not line up with the text on the first line. Page 384 line 45: "path" should be in sans-serif. Page 385 line 15: Is c allowed to be zero? Is b allowed to be equal to a? Page 385 lines 20 and 23: Add "a" (on 20) and "an" (on 23) after "allows". Page 385 line 27: There is extra space before "Using". For spawned processes, what happens if one or more of the child processes calls MPI_Finalize? MPI_Abort? What about one or more of the parents? Which processes can continue in those cases, and what happens to the various communicators? Page 400 mentions it for connected processes, but are the rules for children different? Page 387 line 27: "client server" should be "client/server". Page 387 line 44: There should be a comma after "simple". Page 387 line 45 and page 389 lines 19 and 29: "internet" may or may not need to be capitalized depending on which meaning is intended. Page 387 line 47: The comma should be a semicolon. Page 389 line 19 and others: Some or all of "(host:port)" might need to be in sans-serif or code font. Page 390 line 33 and page 391 line 26: Must root be the same on all processes in the communicator? Page 391 line 37: "high quality" should be "high-quality". Page 391 line 40: There should be a comma after "MPI_COMM_ACCEPT". Page 392 line 2: Some parts of this line should be in sans-serif or code font. Page 392 line 42: Should the behavior be implementation-dependent (with a defined error class if the implementation chooses to return an error) rather than completely undefined? Page 394 line 33: IP does not have port numbers; they are added by higher-level protocols such as TCP and UDP. Page 395 line 9: "stdin" should be in the code font. Page 395 lines 22-34: Do some of these calls need to execute on only a single rank if the program is parallel? Page 396 line 17: Doesn't the client need to be disconnected explicitly in this case as well? Page 399 lines 35-36 seem to say that. Page 399 lines 11-12: Having only a single "appnum" info argument for MPI_COMM_SPAWN_MULTIPLE breaks the usual mechanism in which each command spawned gets a different MPI_APPNUM. Is there a way to specify a list of appnums instead of a single one for MPI_COMM_SPAWN_MULTIPLE? Page 399 line 46: There should be a comma before "may". Page 400: What does MPI_COMM_DISCONNECT do to/on spawned processes? Page 400 line 36: There should be a comma after "MPI_WIN_FREE". Page 400 line 38: "Notes" should be "Note". Page 402 line 12: Does "concurrently" mean "concurrently on the same socket"? -- Jeremiah Willcock