Well,

I spoke Gautam Chakrabarti at Pathscale. It seems the long and short of it is that using OpenMP with C++ with a GNU3.3 (RHEL4) frontend creates some limitations inside of pathCC. On a RHEL4 system, the compilier activates the proper frontend for GCC 3.3, this is what creates the crash. As suggested I forced the compilier to use the newer frontend with the -gnu4 option and the build completes without an issue. Sad though that they aren't trying to be backwards compatible, or even testing on RHEL4 systems. I imagine there is still large group of people using RHEL4.

Perhaps this is an OMPI FAQ entry?

The full response from Pathscale appears below:

---SNIP---
It appears you are using the compiler on a relatively old linux distribution which has a default GCC compiler based on version 3.3. Our compiler has a front-end that is activated on such systems, and a different newer improved front-end which is activated on the newer GCC4-based systems. Our compiler is tested on GCC-based systems with versions up to 4.2. I see that you are using OpenMP (using -mp). C++ OpenMP has limitations when being used with the GNU3.3 based front-end, and is only fully supported when on a GNU4 based system.

You can invoke the newer front-end by the option -gnu4 on a GNU3 based system. While compiling this particular file may work with -gnu4 on a GNU3 based system, it is generally not safe to use this option for C++ on a GNU3 based system due to incompatibility issues.

The ideal fix would be to try your compilation on a GNU4 based linux 
distribution.
---END SNIP---

-Joshua Bernstein
Software Engineer
Penguin Computing

Jeff Squyres wrote:
FWIW, I'm able to duplicate the error. Looks definitely like a[nother] pathscale bug to me.

Perhaps David's suggestions to disable some of the optimizations may help; otherwise, you can disable that entire chunk of code with the following:

   --enable-contrib-no-build=vt

(as Ralph mentioned, this VampirTrace code is an add-on to Open MPI; it's not part of core OMPI itself)


On May 15, 2009, at 9:17 AM, David O. Gunter wrote:

Pathscale supports -O3 (at least as of the 3.1 line).  Here are some
suggestions from the 3.2 Users Manual you may also want to try.

-david


If there are numerical problems with -O3 -OPT:Ofast, then try either of the
following:

  -O3 -OPT:Ofast:ro=1
  -O3 -OPT:Ofast:div_split=OFF

Note that ’ro’ is short for roundoff.

-Ofast is equivalent to -O3 -ipa -OPT:Ofast -fno-math-errno -ffast-math
so similar cautions apply to it as to -O3 -OPT:Ofast.

To use interprocedural analysis without the "Ofast-type" optimizations,
use either of the following:
  -O3 -ipa
  -O2 -ipa

Testing different optimizations can be automated by pathopt2. This program
compiles and runs your program with a variety of compiler options and
creates a sorted list of the execution times for each run.

--
David Gunter
Los Alamos National Laboratory

> Last I checked when we were building here, I'm not sure Pathscale
> supports -O3. IIRC, O2 is the max supported value, though it has been
> awhile since I played with it.
>
> Have you checked the man page for it?
>
> It could also be something in the VampirTrace code since that is where
> you are failing. That is a contributed code - not part of OMPI itself
> - so we would have to check with those developers.
>
>
> On May 14, 2009, at 2:49 PM, Åke Sandgren wrote:
>
>> On Thu, 2009-05-14 at 13:35 -0700, Joshua Bernstein wrote:
>>> Greetings All,
>>>
>>>     I'm trying to build OpenMPI 1.3.2 with the Pathscale compiler,
>>> version 3.2. A
>>> bit of the way through the build the compiler dies with what it
>>> things is a bad
>>> optimization. Has anybody else seen this, or know a work around for
>>> it? I'm
>>> going to take it up with Pathscale of course, but I thought I'd
>>> throw it out here:
>>>
>>> ---SNIP---
>>> /opt/pathscale/bin/pathCC -DHAVE_CONFIG_H -I. -I../.. -I../../
>>> extlib/otf/otflib
>>> -I../../extlib/otf/otflib -I../../vtlib/ -I../../vtlib  -
>>> D_GNU_SOURCE -mp
>>> -DVT_OMP -O3 -DNDEBUG -finline-functions -pthread -MT vtfilter-
>>> vt_tracefilter.o
>>> -MD -MP -MF .deps/vtfilter-vt_tracefilter.Tpo -c -o vtfilter-
>>> vt_tracefilter.o
>>> `test -f 'vt_tracefilter.cc' || echo './'`vt_tracefilter.cc
>>> Signal: Segmentation fault in Global Optimization -- Dead Store
>>> Elimination phase.
>>> Error: Signal Segmentation fault in phase Global Optimization --
>>> Dead Store
>>> Elimination -- processing aborted
>>> *** Internal stack backtrace:
>>> pathCC INTERNAL ERROR: /opt/pathscale/lib/3.2/be died due to signal 4
>>
>> Haven't seen it. But I'm only using -O2 when building openmpi.
>> Report it quickly, if we're lucky they might get a fix into the 3.3
>> release that is due out very soon. (I just got the beta yesterday)
>>
>> --
>> Ake Sandgren, HPC2N, Umea University, S-90187 Umea, Sweden
>> Internet: a...@hpc2n.umu.se   Phone: +46 90 7866134 Fax: +46 90 7866126
>> Mobile: +46 70 7716134 WWW: http://www.hpc2n.umu.se
>>
>> _______________________________________________
>> users mailing list
>> us...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>

_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users


Reply via email to