
On Sep 6, 2006, at 5:10 PM, Dean Michael Berris wrote:
- What is your evaluation of the implementation?
Given the very well-thought out and straightforward design, I have some reservations about the interface specifically with the Communicator class. Having been reading up on type-safe interfaces, the main issue I see is the relative ease in confusing the order of the fields/types in communicator::send/receive/isend/ireceive arguments:
template <typename T> void send(int, int, const T &) const ;
The above line doesn't say anything about what the first int is, and what the second int is -- and it's fairly easy to confuse which one is the rank and which one is the tag. A suggestion I would make is either to utilize Boost.Parameter to come up with something like:
mpi::communicator c; std::string str("Hello, World!"); c.send(tag=0, rank=1, value=str); c.send(rank=1, tag=0, value=str); c.send(value=str, rank=1, tag=0);
I like this a lot. I expect it will be very easy to do with with the Parameter library :)
- What is your evaluation of the documentation?
The web documentation contains certain characters marked and displayed as question marks not present in the PDF version. There are also a handful of typographical errors, though nothing a quick copy-editing would not be able to fix.
Ugh. I'll regenerate the documentation on a different machine to get rid of the question marks.
There is also a need to revise the introduction, and move the in-depth details in a separate section. The Introduction section already talks about a lot of the specifics, when a user reading the documentation would be more concerned really just about what Boost.MPI is rather than the details of how it implemented certain things.
You are right.
I can elaborate in a separate email, which I think I should probably do.
That would be greatly appreciated. Thanks for the review! Cheers, Doug