[Darshan-users] how many compilers and MPI libraries can a single build of Darshan support?
Phil Carns
carns at mcs.anl.gov
Thu Mar 7 14:06:43 CST 2013
On 03/07/2013 02:38 PM, David Shrader wrote:
> Hello All,
>
> I've been playing around a lot with Darshan the last couple of days
> and I am currently trying to find out how much a single build of
> Darshan can support in terms of other compilers and MPI libraries. The
> documentation has this statement if Darshan's CC is based on a GNU
> compiler, " Once Darshan has been installed, it should be capable of
> instrumenting executables built with GNU, Intel, and PGI compilers." I
> have found that not only will Darshan work with GNU, Intel, and PGI
> compilers, it seems to work with any version of these compilers (well,
> any versions that I have in production right now) as well as Pathscale
> compilers. Is this to be expected?
>
> For example, I have built Darshan with Open MPI 1.6.4 that was built
> using the GNU system compilers (v4.4.6). This single build of Darshan
> is able to operate on a binary that was built with Open MPI 1.6.4
> based on the following compilers: gcc 4.6.1, gcc 4.7.0, gcc 4.7.2,
> intel 11.1.072, intel 12.1.2, intel 12.1.5, pgi 9.0-3, pgi 10.9, pgi
> 12.6, pgi 12.10 and pathscale 4.0. Meaning, I have builds of Open MPI
> 1.6.4 compatible with each of these compilers and I use them to build
> my application. No matter what version of Open MPI 1.6.4 I use to
> compile my application, I can get Darshan output from running it
> through libdarshan.so (that was built using Open MPI 1.6.4 based on
> the system GNU compilers). I have done a similar test with mvapich2
> 1.8. This is absolutely amazing to me and I would like to know if it
> is expected.
>
Hi David,
This much is indeed expected, though it is always great to hear some
confirmation! If Darshan itself is built with a GNU compiler, then the
resulting library will work with executables built with all of the
compilers you listed above (GNU, Intel, PGI, Pathscale) as well as Cray
and IBM compilers. I've never tested it with LLVM, but in theory it
should work fine with that one too. We are fortunate that the linking
is compatible across all of these compilers :-)
> A related question to that is what can a single Darshan build support
> in terms of MPI libraries? I have found that my Open MPI 1.6.4 build
> will not support mvapich2 compiled binaries and vice versa. But, I
> have found that my mvapich2 1.8 build supports mvapich2 1.7, 1.8 and
> 1.9a2 compiled binaries. Is this expected as well? Since only Open MPI
> 1.6.4 runs well with Darshan out of the box, I don't have a similar
> test there.
This part is harder to answer. The problem is that various MPI
implementations will not necessarily use the same underlying types or
predefined values for all of the MPI data structures. They aren't
required to be binary compatible.
I'm not an expert on this and I can't guarantee anything, but I would
guess that the major MPI implementations probably have pretty stable
ABIs across point releases. All bets are off across implementations,
though.
From a packaging/deployment point of view, what this means is that you
don't have to switch Darshan builds when users select different
underlying compilers, but you probably do need to switch
when they select different MPI implementations.
thanks,
-Phil
> In short, I am amazed at the field that a single build of Darshan
> seems to be able to support. I'm curious to know if there is any
> guidance on what the expected edges of that field are.
>
> Again, thank you for all of the help!
> David
>
More information about the Darshan-users
mailing list