Terry,

What you are seeing is a bug in the vectorizer in the Intel 2011.6.233 release. 
 We've talked about this before.  You should probably remove that compiler from 
your system(s).  I think the new release of OpenMPI describes this problem, but 
does not stop if from occurring.  I write a patch for ptmalloc2/malloc.c for 
OpenMPI 1.4.3 which automatically adjusts the optimization level for 
_int_malloc(), which is where the bug occurs.

Larry Baker
US Geological Survey
650-329-5608
ba...@usgs.gov

---------- Start of Patch ----------
--- opal/mca/memory/ptmalloc2/malloc.c.original 2010-04-13 10:30:26.000000000 
-0700
+++ opal/mca/memory/ptmalloc2/malloc.c  2011-11-04 15:01:37.000000000 -0700
@@ -2,6 +2,17 @@
 /* Copyright (c) 2010      Cisco Systems, Inc.  All rights reserved.
  */
 
+/* With Intel Composer XE V12.1.0, release 2011.6.233, any launch   */
+/* fails, even before main(), due to a bug in the vectorizer (see   */
+/* https://svn.open-mpi.org/trac/ompi/changeset/25290).  The fix is */
+/* to disable vectorization by reducing the optimization level to   */
+/* -O1 for _int_malloc().  The only reliable method to identify     */
+/* release 2011.6.233 is the predefined __INTEL_COMPILER_BUILD_DATE */
+/* macro, which will have the value 20110811 (Linux, Windows, and   */
+/* Mac OS X).  (The predefined __INTEL_COMPILER macro is nonsense,  */
+/* 9999, and both the 2011.6.233 and 2011.7.256 releases identify   */
+/* themselves as V12.1.0 from the -v command line option.)          */
+
 #define OPAL_DISABLE_ENABLE_MEM_DEBUG 1
 #include "opal_config.h"
 
@@ -3945,6 +3956,12 @@
   ------------------------------ malloc ------------------------------
 */
 
+#ifdef __INTEL_COMPILER_BUILD_DATE
+#if __INTEL_COMPILER_BUILD_DATE == 20110811
+#pragma GCC optimization_level 1
+#endif
+#endif
+
 Void_t*
 _int_malloc(mstate av, size_t bytes)
 {
---------- End of Patch ----------

On 24 May 2012, at 6:54 AM, TERRY DONTJE wrote:

> I am seeing several Cart Fortran tests (like MPI_Cart_coords_f) segv in 
> opal_memory_ptmalloc2_int_free when OMPI trunk is compiled with icc 12.1.0 
> for 64 bit on linux.   Just wondering if anyone has seen anything similar to 
> this with a different version of icc.  Other non-Intel compilers seem to not 
> exhibit this issue.
> 
> -- 
> Terry D. Dontje | Principal Software Engineer
> Developer Tools Engineering | +1.781.442.2631
> Oracle - Performance Technologies
> 95 Network Drive, Burlington, MA 01803
> Email terry.don...@oracle.com
> 
> 
> 
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel

Reply via email to