Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] MPI_Cart_coords_f segv with Intel compiler
From: TERRY DONTJE (terry.dontje_at_[hidden])
Date: 2012-05-24 14:17:38


Actually, I don't think the below is the issue. I think the
OMPI_ARRAY_INT_2_LOGICAL macro is doing a free on line 193 when it
shouldn't because the OMPI_ARRAY_LOGICAL_2_INT macro calling an empty
OMPI_ARRAY_LOGICAL__2_INT_ALLOC macro which in the other case that macro
actually does a malloc.

It was interesting looking at the diff between 26283 and the prior
version for fint_2_int.h and seeing commented out "frees" being
uncommented. I suspect only one of the frees should have been commented
out.

--td

On 5/24/2012 2:06 PM, Larry Baker wrote:
> 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
> baker_at_[hidden] <mailto:baker_at_[hidden]>
>
> ---------- Start of Patch ----------
> --- opal/mca/memory/ptmalloc2/malloc.c.original2010-04-13
> 10:30:26.000000000 -0700
> +++ opal/mca/memory/ptmalloc2/malloc.c2011-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.dontje_at_[hidden] <mailto:terry.dontje_at_[hidden]>
>>
>>
>>
>> _______________________________________________
>> devel mailing list
>> devel_at_[hidden] <mailto:devel_at_[hidden]>
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>

-- 
Terry D. Dontje | Principal Software Engineer
Developer Tools Engineering | +1.781.442.2631
Oracle *- Performance Technologies*
95 Network Drive, Burlington, MA 01803
Email terry.dontje_at_[hidden] <mailto:terry.dontje_at_[hidden]>