tags:

views:

903

answers:

3

Can I use the Boost MPI to send files to other computers? My worry is that it is optimized for very small messages and not larger (I need to send 700 MB or more in one go). The reason is that I will probably use mpi for other parts of the program anyway so I thought it would be a pretty clean solution to not mix and match.

Has it been done? Would you recommend it?

+2  A: 

MPI was designed for high-performance parallel applications, so I would absolutely recommend it. (Keep in mind that all Boost libraries that have been accepted are thoroughly vaildated and tested

The 700mb files should not be any problem according to the reference documentation

Another (hopefully interesting) feature: "Boost.MPI processes can be spread across many different machines, possibly with different operating systems and underlying architectures."

Schildmeijer
I find it interesting that you can recommend MPI even though you have no idea what kind of application DanielSwe is building. It could be that a distributed system middleware is more appropriate... we just don't know.
ceretullis
+3  A: 

Keep in mind that Boost MPI requires that you already have an MPI implementation on the systems you want to send files with (OpenMPI, MPICH2, MVAPICH2, etc). You'll need to get one of these to go along with Boost MPI.

Also keep in mind that MPI is designed for high performance clusters, and most MPI implementations assume that you have reliable hardware. That is, if you've written an application in MPI and one of your processes goes down, more than likely they're all going to die.

If you're planning to use this in a local environment on your own network, and you intend to run mostly batch jobs and not persistent services, then MPI might be a good choice. If not, then look into some other messaging solution designed for a more distributed, less reliable environment.

tgamblin
Boost.MPI is just a wrapper around THE Message Passing Interface, which has nothing much to do with C++. See: http://www.mcs.anl.gov/research/projects/mpi/ There have been numerous attempts to make MPI more fault-tolerant (see http://www.open-mpi.org/faq/?category=ft)
tgamblin
But not many of these have caught on or made it into a major implementation, mainly because fault tolerance isn't well spec'd out in the standard. It's only now becoming truly necessary as big clusters grow larger than 100k cores... in the past MPI has been fine for high performance machines.
tgamblin
A: 

So is there any resolution to this question? I've looked through the Boost reference posted but don't see anything about sending files.

mgcleveland