taucmdr icon indicating copy to clipboard operation
taucmdr copied to clipboard

(10.) Support sampling on apple

Open jlinford opened this issue 8 years ago • 8 comments

Sameer reports that tau_exec -ebs works on macOS. AFAIK it's only been tested on beta.nic.uoregon.edu and Sameer's personal machine, but we can start working towards supporting sampling on macOS.

jlinford avatar Nov 06 '17 20:11 jlinford

Tested with gcc-4.9 from MacPorts and Clang 8 on macOS Sierra, both working!

jlinford avatar Nov 08 '17 22:11 jlinford

Once taucmdr has support I can try running through the paces with GCC 7.2 from Homebrew (and MPICH 3.2 or OpenMPI 3.0.0)

zbeekman avatar Nov 08 '17 22:11 zbeekman

tau 2.27 only kinda supports macOS. Sampling works OK, but PDT is failing to compile on most of the machines I've tried, OTF2 won't link, and DYLD_LIBRARY_PATH needs tweaking to get comp-inst working. No way it'll be stable and well tested by SC'17 so I'm removing the milestone. We'll add this when UO sorts out its bugs.

jlinford avatar Nov 10 '17 14:11 jlinford

Some notes:

  • It looks like both trace2profile and tau_trace2json fail due to missing libTAU_traceinput-da6d9824 with a minimal TAU on macOS. min-install-debug_log.txt
  • A full install, seems to indicate PDT compiles and installs. But then compilation of TAU itself fails catastrophically with symbol not found linker errors. full-install-debug_log.txt

zbeekman avatar Oct 24 '18 21:10 zbeekman

The error for the full install is caused by PDT being compiled with a different compiler family than TAU is being compiled with. Since PDT doesn't support Clang, it will use a GCC version if it can find one. It chose the compiler named g++-8. But TAU is being built with "c++" which is presumably Apple's Clang-pretending-to-be-gcc compiler. TAU Commander will need to ensure that they are compiled with the same compiler (and that the compiler is not Clang, since PDT won't work with it)

nchaimov avatar Oct 24 '18 21:10 nchaimov

Is PDT supposed to be supported on macOS? AFAIK, even apple's "gcc" is actually clang. GCC 8.2 is installed via homebrew on my system, and that's what PDT is picking up.

zbeekman avatar Oct 24 '18 21:10 zbeekman

It is supported so long as you have a real GCC installed. The important part is the standard library headers -- PDT can't parse Clang's headers because it doesn't know about Clang compiler intrinsics.

nchaimov avatar Oct 24 '18 21:10 nchaimov

Should we do some introspection and attempt to set the HOST compilers to GNU if they're found? The tricky thing is that they're probably installed with suffixes as the major version, e.g., gcc-8. Then if GNU compilers are not present we can disable building out measurements that require PDT?

zbeekman avatar Oct 24 '18 22:10 zbeekman