Question

I have a source code of an application written in 2005 in C++ for a 32-bit architecture and used MPICH-1 library. I know the logic and I want to upgrade the source code for 64-bit machines and with MPICH-2.

How different the syntax/semantics of MPICH-1 is from MPICH-2? Should I consider re-designing the software or changing the MPI functions to newer version is enough?

Was it helpful?

Solution

TL;DR - Just update your MPICH library to the newest version and you're all set

First, MPICH has actually progressed beyond MPICH-2 now. The latest version (3.1) was just released recently. Also, the project is no longer renaming itself with every major release. It's just MPICH now.

Semantics aside, the API that MPICH exposes isn't determined by the MPICH developers, but by the MPI Standard. Since MPICH-1, the standard has gone through two major versions and is now on version 3.0. There were some major changes between the 1.x series and the 3.x series, however everything is backwards compatible so you should be able to just recompile with the most recent version and you're all set.

However, if you want to take a look at the latest and greatest, there were new additions in both MPI 2.x and MPI 3.0 related to one-sided communication that you might take a look at. There are also new collective operations, topologies, dynamic processes, I/O, non-blocking operations, etc. In the past 9 years, there's been a lot of progress (certainly lots more than can be posted in this answer).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top