Larry Baker
US Geological Survey
650-329-5608
baker@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 ----------