Talk:Catherine Pitt

From CUC3
Jump to navigation Jump to search

pathscale -Ofast:

I had many problems getting pathscale to compile CPMD when using the -Ofast option (whereas it was easy if I used a lower level of optimisation) and so I had to give up. I wonder if this is why...--james 17:33, 20 March 2008 (GMT)

Do you find you get a load of library not found errors? If so then this is probably the reason. I can always try to add the appropriate pieces to make Pathscale behave in to the library modules. --Catherine 11:34, 25 March 2008 (GMT)

Yup, this does seem to make a big difference! I don't think there are any modules on the workstations that require this fix. The ACML on tardis was already fixed (this is where I found the note) and I've done the new FFTW module on tardis (won't go live until I unleash a whole set of changes to make tardis's modules more logical) --Catherine 11:57, 25 March 2008 (GMT)

I think it was library not found/linking errors. I'll have to check. I'm fairly certain it was on my workstation though. I'll take a look again. --james 12:20, 25 March 2008 (GMT)

Indeed it is. On keiko:

$ make
....
/shared/shared/pathscale/pathscale-compilers-suse9.0-3.0-103.13929_suse9.0_psc/lib/3.0/ipa_link: cannot find -lacml
pathf90 INTERNAL ERROR: /shared/shared/pathscale/pathscale-compilers-suse9.0-3.0-103.13929_suse9.0_psc/lib/3.0/ipa_link returned non-zero status 1

If I replace the Ofast with O3, then it works fine. --james 13:44, 25 March 2008 (GMT)

Thanks! I need to go and mangle the ACML modules I guess (you're using one of my modules, right?) I missed them this morning because I don't have a 64-bit workstation handy for testing. --Catherine 15:14, 25 March 2008 (GMT)

I'm using the amcl/64/pathscale module. We all know whose fault the lack of a 64-bit test machine is... ;-) --james 15:49, 25 March 2008 (GMT)

OK, I've edited the ACML modules to set PSC_GENFLAGS, which is honoured by the Pathscale linker, so give it another go some time. --Catherine 09:20, 26 March 2008 (GMT)

Cool. That solved that error.

$ make
...
/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../lib64//libm.so: file not recognized: File format not recognized
pathf90 INTERNAL ERROR: /shared/shared/pathscale/pathscale-compilers-suse9.0-3.0-103.13929_suse9.0_psc/lib/3.0/ipa_link returned non-zero status 1

So, my understanding is that pathscale uses a different file format when -Ofast is used (due to "inter-procedural analysis"?), and it can't find an appropriately compiled libm. I'd've thought pathscale would ship with the appropriate libraries for this, but there's nothing obvious in the pathscale directory. I suspect that this is not the last such error though...(and I'm really not that fussed by it). --james 10:00, 26 March 2008 (GMT)

Yes, but there is then supposed to be a second pass after the IPA linker's had a go where the program gets recompiled with the optimizations the IPA linker has found and linked again, for real. There's very little helpful stuff on this in the user guide though. --Catherine 14:05, 26 March 2008 (GMT)

Ok, after a little more digging the answer is it just doesn't work, and probably will never work with this or indeed the next release.

  • it's fine with -Ofast on 32-bit 10.2 workstations
  • it's fine with -Ofast on tardis in 64-bit mode (tardis has an older SuSE release)
  • removing the local wrapper scripts and compiling the way Pathscale intended does not make the slightest difference on the 64-bit workstations
  • use of the -show option does not reveal tardis doing anything seriously different to what a -Ofast compilation on ajax (64-bit 10.2) does
  • Pathscale 3.0 does not support SuSE 10.2 anyway
  • Neither does Pathscale 3.1 which I haven't even installed yet!

So I think we're stuck until the Pathscale people sort this. If you're fussed I can mail them about it, but we ought to install 3.1 first to see if that's broken with 10.2 and we have three other major compiler updates in the queue to install before that. So if you're bothered shout, else I shall leave it alone. --Catherine 14:54, 26 March 2008 (GMT)