Did this get reported to the Intel compiler support people?
On Oct 19, 2011, at 8:24 AM, George Bosilca wrote: > Thanks Larry, > > Will forward this info upstream. > > george. > > On Oct 18, 2011, at 21:56 , Larry Baker wrote: > >> George, >> >> Thanks for the update. FYI, here's all the version numbers reported by the >> compiler releases I have installed: >> >>> [baker@hydra ~]$ module load compilers/intel/11.1.080 >>> [baker@hydra ~]$ icc -v >>> Version 11.1 >>> [baker@hydra ~]$ module unload compilers/intel/11.1.080 >> >>> [baker@hydra ~]$ module load compilers/intel/2011.3.174 >>> [baker@hydra ~]$ icc -v >>> Version 12.0.3 >>> [baker@hydra ~]$ module unload compilers/intel/2011.3.174 >> >>> [baker@hydra ~]$ module load compilers/intel/2011.4.191 >>> [baker@hydra ~]$ icc -v >>> Version 12.0.4 >>> [baker@hydra ~]$ module unload compilers/intel/2011.4.191 >> >>> [baker@hydra ~]$ module load compilers/intel/2011.5.220 >>> [baker@hydra ~]$ icc -v >>> Version 12.0.5 >>> [baker@hydra ~]$ module unload compilers/intel/2011.5.220 >> >>> [baker@hydra ~]$ module load compilers/intel/2011.6.233 >>> [baker@hydra ~]$ icc -v >>> icc version 12.1.0 (gcc version 4.1.2 compatibility) >>> [baker@hydra ~]$ module unload compilers/intel/2011.6.233 >> >> Another problem I found with the Intel 12.1.0 compiler: I started to look at >> adding a test for the Intel compiler version around the #pragma that >> disables optimization for OpenMPI and I found the __ICC and __INTEL_COMPILER >> predefined macros (compiler version no.) are not properly defined: >> >> $ icc -E -dD hello.c | grep __INTEL_COMPILER >> #define __INTEL_COMPILER 9999 >> #define __INTEL_COMPILER_BUILD_DATE 20110811 >> >> $ icc -E -dD hello.c | grep __ICC >> #define __ICC 9999 >> >> $ icc -v >> icc version 12.1.0 (gcc version 4.1.2 compatibility) >> >> I do not know if there is code in OpenMPI that looks at __ICC and >> __INTEL_COMPILER, but that could cause problems. (Pass this on upstream to >> the libtool people?) >> >> Larry Baker >> US Geological Survey >> 650-329-5608 >> ba...@usgs.gov >> >> On 17 Oct 2011, at 8:18 PM, George Bosilca wrote: >> >>> Larry, >>> >>> Sorry for not updating this thread. The issue was identified and fixed by >>> Rainer in r25290 (https://svn.open-mpi.org/trac/ompi/changeset/25290). >>> Please read the comments and the linked thread on the Intel forum for more >>> info about. >>> >>> I couldn't find a trace of this being fixed in the 1.4 series, so I would >>> wait upgrading until this issue gets resolved. >>> >>> Thanks, >>> george. >>> >>> On Oct 17, 2011, at 23:00 , Larry Baker wrote: >>> >>>> George, >>>> >>>> I have not had time to look over the 1.4.3 make check failure for Intel >>>> 2011.6.233 compilers. Have you? >>>> >>>> I had planned to get 1.4.3 compiled on all six of our compilers using the >>>> latest compiler releases. I was putting off upgrading to 1.4.4 or 1.5.x >>>> until after that to minimize the number of things that could go wrong. Do >>>> you recommend otherwise? >>>> >>>> Larry Baker >>>> US Geological Survey >>>> 650-329-5608 >>>> ba...@usgs.gov >>>> >>>> On 7 Oct 2011, at 6:46 PM, George Bosilca wrote: >>>> >>>>> The may_alias attribute was part of a forward-looking attribute checking, >>>>> at a time where few compiler supported them. This explains why they are >>>>> not widely used in the library itself. Moreover, as they do not affect >>>>> the compilation itself (as your test highlights this is not the issue >>>>> with the icc 2011.6.233 compiler), there is no urge to remove the >>>>> may_alias support. >>>>> >>>>> I just got that particular version of the compiler installed on one of >>>>> our machines. I'll give it a try over the weekend. >>>>> >>>>> george. >>>>> >>>>> On Oct 7, 2011, at 20:21 , Larry Baker wrote: >>>>> >>>>>> The test for the __may_alias_ attribute uses the following short code >>>>>> snippet: >>>>>> >>>>>>> int * p_value __attribute__ ((__may_alias__)); >>>>>>> int >>>>>>> main () >>>>>>> { >>>>>>> >>>>>>> ; >>>>>>> return 0; >>>>>>> } >>>>>> >>>>>> Indeed, for Intel 2011 compilers prior to 2011.6.233, this results in a >>>>>> warning: >>>>>> >>>>>>> root@hydra openmpi-1.4.3]# module load compilers/intel/2011.5.220 >>>>>>> [root@hydra openmpi-1.4.3]# icc -c may_alias_test.c >>>>>>> may_alias_test.c(123): warning #1292: attribute "__may_alias__" ignored >>>>>>> int * p_value __attribute__ ((__may_alias__)); >>>>>>> ^ >>>>>>> >>>>>>> [root@hydra openmpi-1.4.3]# module unload compilers/intel/2011.5.220 >>>>>> >>>>>>> [root@hydra openmpi-1.4.3]# module load compilers/intel/2011.6.233 >>>>>>> [root@hydra openmpi-1.4.3]# icc -c may_alias_test.c >>>>>> >>>>>> I modified ./configure to force >>>>>> >>>>>>> ompi_cv___attribute__may_alias=0 >>>>>> >>>>>> Then I compiled and tested the library. Unfortunately, the results were >>>>>> exactly the same: >>>>>> >>>>>>> make check-TESTS >>>>>>> make[3]: Entering directory >>>>>>> `/state/partition1/root/src/openmpi-1.4.3/test/datatype' >>>>>>> /bin/sh: line 4: 26326 Segmentation fault ${dir}$tst >>>>>>> FAIL: checksum >>>>>>> /bin/sh: line 4: 26359 Segmentation fault ${dir}$tst >>>>>>> FAIL: position >>>>>>> ======================================================== >>>>>>> 2 of 2 tests failed >>>>>>> Please report to http://www.open-mpi.org/community/help/ >>>>>>> ======================================================== >>>>>> >>>>>> I could not find any use of the may_alias attribute, other than in a >>>>>> #define in opal/include/opal_config_bottom.h. Is >>>>>> OMPI_HAVE_ATTRIBUTE_MAY_ALIAS just cruft that can be removed? >>>>>> >>>>>> Larry Baker >>>>>> US Geological Survey >>>>>> 650-329-5608 >>>>>> ba...@usgs.gov >>>>>> >>>>>> On 7 Oct 2011, at 11:08 AM, Larry Baker wrote: >>>>>> >>>>>>> I ran into a problem this past week trying to upgrade our OpenMPI 1.4.3 >>>>>>> for the latest Intel 2011 compiler, 2011.6.233. >>>>>>> >>>>>>> make check fails with Segmentation Fault errors: >>>>>>> >>>>>>>> [root@hydra openmpi-1.4.3]# tail -20 >>>>>>>> ../openmpi-1.4.3-check-intel.6.233.log >>>>>>>> /bin/sh ../../libtool --tag=CC --mode=link icc -DNDEBUG -g -O3 >>>>>>>> -finline-functions -fno-strict-aliasing -restrict -pthread >>>>>>>> -fvisibility=hidden -shared-intel -export-dynamic -shared-intel -o >>>>>>>> ddt_pack ddt_pack.o ../../ompi/libmpi.la -lnsl -lutil >>>>>>>> libtool: link: icc -DNDEBUG -g -O3 -finline-functions >>>>>>>> -fno-strict-aliasing -restrict -pthread -fvisibility=hidden >>>>>>>> -shared-intel -shared-intel -o .libs/ddt_pack ddt_pack.o >>>>>>>> -Wl,--export-dynamic ../../ompi/.libs/libmpi.so >>>>>>>> /usr/local/src/openmpi-1.4.3/orte/.libs/libopen-rte.so >>>>>>>> /usr/local/src/openmpi-1.4.3/opal/.libs/libopen-pal.so -ldl -lnsl >>>>>>>> -lutil -pthread -Wl,-rpath -Wl,/usr/local/lib >>>>>>>> make[3]: Leaving directory >>>>>>>> `/state/partition1/root/src/openmpi-1.4.3/test/datatype' >>>>>>>> make check-TESTS >>>>>>>> make[3]: Entering directory >>>>>>>> `/state/partition1/root/src/openmpi-1.4.3/test/datatype' >>>>>>>> /bin/sh: line 4: 6322 Segmentation fault ${dir}$tst >>>>>>>> FAIL: checksum >>>>>>>> /bin/sh: line 4: 6355 Segmentation fault ${dir}$tst >>>>>>>> FAIL: position >>>>>>>> ======================================================== >>>>>>>> 2 of 2 tests failed >>>>>>>> Please report to http://www.open-mpi.org/community/help/ >>>>>>>> ======================================================== >>>>>>>> make[3]: *** [check-TESTS] Error 1 >>>>>>>> make[3]: Leaving directory >>>>>>>> `/state/partition1/root/src/openmpi-1.4.3/test/datatype' >>>>>>>> make[2]: *** [check-am] Error 2 >>>>>>>> make[2]: Leaving directory >>>>>>>> `/state/partition1/root/src/openmpi-1.4.3/test/datatype' >>>>>>>> make[1]: *** [check-recursive] Error 1 >>>>>>>> make[1]: Leaving directory >>>>>>>> `/state/partition1/root/src/openmpi-1.4.3/test' >>>>>>>> make: *** [check-recursive] Error 1 >>>>>>> >>>>>>> Before trying to track down the problem, I thought I'd describe what I >>>>>>> see here in case someone recognizes what might be happening. >>>>>>> >>>>>>> We have been using OpenMPI 1.4.3 compiled with the Intel 2011.3.174 >>>>>>> compiler. I've updated the Intel 2011 compilers as they have come out >>>>>>> with new versions: 2011.4.191, 2011.5.220, and now 2011.6.233. >>>>>>> However, I've not recompiled OpenMPI 1.4.3 until now. >>>>>>> >>>>>>> Since the original compilation of OpenMPI 1.4.3 with the Intel >>>>>>> 2011.3.174 compilers, I have installed libnuma and libnuma-devel RPMs >>>>>>> on our cluster front end. I noticed that changed the OpenMPI 1.4.3 >>>>>>> ./configure output. To test that this was not the cause of the >>>>>>> problem, I recompiled OpenMPI 1.4.3 using both the CentOS/Rocks GNU >>>>>>> compilers and the Intel 2011.3.174 compilers. They both passed all the >>>>>>> make check tests. >>>>>>> >>>>>>> To find out when this problem first occurs, I systematically >>>>>>> configured, compiled, and checked OpenMPI 1.4.3 with all four versions >>>>>>> of the Intel 2011 compilers we have. We use the modules package to >>>>>>> load the compiler environment: >>>>>>> >>>>>>>> [root@hydra openmpi-1.4.3]# env | grep /opt/intel >>>>>>>> LD_LIBRARY_PATH=/opt/intel/composer_xe_2011_sp1.6.233/compiler/lib/intel64:/opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64 >>>>>>>> PATH=/opt/intel/composer_xe_2011_sp1.6.233/bin/intel64:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/java/latest/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/eclipse:/opt/ganglia/bin:/opt/ganglia/sbin:/opt/maui/bin:/opt/torque/bin:/opt/torque/sbin:/opt/rocks/bin:/opt/rocks/sbin:/root/bin >>>>>>> >>>>>>> Here's the steps I use to make and test OpenMPI 1.4.3 (I use a patched >>>>>>> version to accommodate the six compilers we have; I've submitted those >>>>>>> patches here in the past): >>>>>>> >>>>>>>> # cd /usr/local/src >>>>>>>> # tar -xjf openmpi-1.4.3-patched.tar.bz2 >>>>>>>> # cd openmpi-1.4.3 >>>>>>>> # module load compilers/intel/2011.6.233 >>>>>>>> # ./configure >../openmpi-1.4.3-configure-intel.6.233.log 2>&1 >>>>>>>> --with-tm --with-openib --without-valgrind --without-udapl >>>>>>>> --enable-contrib-no-build=vt --with-wrapper-ldflags="-shared-intel" >>>>>>>> CC="icc" CFLAGS="-g -O3" CXX="icpc" CXXFLAGS="-g -O3" FC="ifort" >>>>>>>> FCFLAGS="-g -O3" F77="ifort" FFLAGS="-g -O3" LDFLAGS="-shared-intel" >>>>>>>> # make >../openmpi-1.4.3-make-intel.6.233.log 2>&1 >>>>>>>> # make check >../openmpi-1.4.3-check-intel.6.233.log 2>&1 >>>>>>> >>>>>>> (When I generate the OpenMPI 1.4.3 library we actually use, I also add >>>>>>> a --prefix. But, that complicates diff's of the stdout files for these >>>>>>> steps, so it is not used here. Thus, I do NOT proceed to make install >>>>>>> any of these libraries.) >>>>>>> >>>>>>> The three earlier versions of the Intel 2011 compilers all pass the >>>>>>> make check tests. When I compare the ./configure stdout files, they >>>>>>> are all identical. However, the ./configure stdout file for the Intel >>>>>>> 2011.6.233 compilers has one difference: >>>>>>> >>>>>>>> [root@hydra openmpi-1.4.3]# diff >>>>>>>> ../openmpi-1.4.3-configure-intel.{5.220,6.233}.log >>>>>>>> 178c178 >>>>>>>> < checking for __attribute__(may_alias)... no >>>>>>>> --- >>>>>>>> > checking for __attribute__(may_alias)... yes >>>>>>> >>>>>>> That is obviously where I will start looking for the source of the >>>>>>> problem. >>>>>>> >>>>>>> Maybe someone reading this list knows what the purpose of that test is, >>>>>>> whether the Intel 2011 compilers are expected to have this feature >>>>>>> enabled, and whether the code this enables can cause this problem if >>>>>>> the Intel 2011.6.233 compilers do not fully support whatever this test >>>>>>> is intended to discern. >>>>>>> >>>>>>> Larry Baker >>>>>>> US Geological Survey >>>>>>> 650-329-5608 >>>>>>> ba...@usgs.gov >>>>>>> >>>>>>> _______________________________________________ >>>>>>> devel mailing list >>>>>>> de...@open-mpi.org >>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>>>> >>>>>> _______________________________________________ >>>>>> devel mailing list >>>>>> de...@open-mpi.org >>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>>> >>>>> _______________________________________________ >>>>> devel mailing list >>>>> de...@open-mpi.org >>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>> >>>> _______________________________________________ >>>> devel mailing list >>>> de...@open-mpi.org >>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>> >>> _______________________________________________ >>> devel mailing list >>> de...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >> >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/devel > > _______________________________________________ > devel mailing list > de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/devel -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/