On Sat, Feb 17, 2018 at 8:01 PM, Larry McVoy <lm@mcvoy.com> wrote:
I really don't see why. I can see why if they are using every library
known to man, but if you want portable you don't do that.
The ISV's customers are interesting in getting a specific job done - be it a simulation,
geo or therma prediction. Time to money is what matters to the end user - so they pick the 'best' product to do their job. Hence, e
xecution speed is typically the prime directive for an ISV like this and they are using Fortran for portability. Which is different from your design point I suspect. You need to be fast enough, but the choice of bitkeeper vs cvs vs ... is likely made with a different high order bit.
For the ISV, at a
minimum, it is a testing issue of the different perminations. They need to be fast, but their production code is deployed a top of 'a stack of turtles.' As I said RH Linux != SuSE != Ubuntu (they are similar but the kernels are not the same and the system DB's vary -- those tend to cause installation issues). GFortran != Intel ifort != PCG FTN != Cray FTN != IBM fortran. Much less GCC != Clang != Intel icc != IBM CC - cause interesting issues with dynamic loading. IBM MPI != HP MPI != OpenMPI != Intel MPI etc..tend to cause ISV code to step on each other.
Then you add Mellanox IB is not IBM is not Intel and ....
Mellanox Verbs is not Cisco Verbs is not PSM is not OFED
and locking and scaling starts to get strange
.
Each of these can be a 'little different' even though they all follow standards. It becomes a old Al Haig - style - "I'm in charge" problem. Moreover, I know of one large distro insists on only testing their IB stack point to point with two system, even when they have been offered a HW from a
vendor
that has 4 compute nodes plus a head node, just to chase and tease out the corner cases that drive the ISV mad.