MachineBench Time
Dual 2.7Ghz G5, 2GB31 sec (ppc bins)
17" Intel/iMac, 1GB52 sec (ppc bins)
21 sec (intel bins)

I got my hands on an Intel iMac recently and did some quick looking around and testing. The surprising news is that for the most part the existing PPC macosx binaries will run without change using the emulator! A statically linked DS9 also works, as do the X11IRAF tasks.

Update: (2/7/06) Initial port work is complete and native binaries are working. As a benchmark comparison using a script that does some real-world reductions consider the table here (YMMV): See below for other notes and updates as we get a chance to do more on this (borrowed) machine.....

Signal handling in the CL and error handling from tasks likewise works (or not) as under the PPC OSX. FPE handling has been broken for a while and similarly fails under the emulator, however memory violations are properly trapped and most tasks seems to work.

Image display (using DS9 for now), imd overlays and graphics all work. Quick tests of both .imh and FITS images show that the byte-swap issue isn't a problem.

As expected however, compilation is broken using the stock system. This is easily fixed however by defining the following environment variables in your .cshrc file to allow cross-compilation of ppc binaries:


    setenv XC_CFLAGS="-arch ppc"
    setenv XC_LFLAGS="-arch ppc"
    setenv XC_ FFLAGS="-ppc"

The $hlib/f77.sh must also be trivially patched to accept the "-ppc" flag as follows:

141a142,145
>       -ppc)   CFLAGS="$CFLAGS -arch ppc"
>               shift
>               ;;
> 

The "-arch ppc" flag is specific to Apple and this permits the locally compiled SPP programs to be compiled as ppc binaries, the other flags allow linking to the ppc iraf binaries.

See the table above for some rough benchmarks. I'm very impressed with the fact that the ppc binaries work at all. (Update: Memory usage for each iraf process using the ppc binaries appears to be 4-5 times more than on a G4, e.g. ~120Mb is used for each of the cl.e, x_system.e, etc. ). Using native i386 binaries (yes, that's the architecture reported) returns to the normal memory usage, about 1/4th of the emulator needs.

Comments (8)