Hi Alexandru, you can read all about Boost.MPI at:
http://www.boost.org/doc/libs/1_43_0/doc/html/mpi.html On Mon, Aug 9, 2010 at 10:27 PM, Alexandru Blidaru <alexs...@gmail.com> wrote: > I basically have to implement a 4D vector. An additional goal of my project > is to support char, int, float and double datatypes in the vector. If your "vector" is fixed-size (i.e., all vectors are comprised of 4 elements), then you can likely dispose of std::vector, use C-style arrays with templated send/receive calls (that would be just interfaces to MPI_Send/MPI_Recv) // BEWARE: untested code!!! template <typename T> int send(T* vector, int dest, int tag, MPI_Comm comm) { throw std::logic_error("called generic MyVector::send"); }; template <typename T> int recv(T* vector, int source, int tag, MPI_Comm comm) { throw std::logic_error("called generic MyVector::send"); }; and then you specialize the template for the types you actually use: template <> int send<double>(int* vector, int dest, int tag, MPI_Comm comm) { return MPI_Send(vector, 4, MPI_DOUBLE, dest, tag, comm); }; template <> int recv<double>(int* vector, int src, int tag, MPI_Comm comm) { return MPI_Recv(vector, 4, MPI_DOUBLE, dest, tag, comm); }; // etc. However, let me warn you that it would likely take more time and effort to write all the template specializations and get them working than just use Boost.MPI. Best regards, Riccardo