[ET Trac] [Einstein Toolkit] #1429: Assertion error when using "eval" & new UIUC speedup in TwoPunctures

Einstein Toolkit trac-noreply at einsteintoolkit.org
Tue Aug 27 15:42:32 CDT 2013


#1429: Assertion error when using "eval" & new UIUC speedup in TwoPunctures
--------------------------------------+-------------------------------------
 Reporter:  bernard.j.kelly@…         |       Owner:                     
     Type:  defect                    |      Status:  new                
 Priority:  major                     |   Milestone:  ET_2013_11         
Component:  EinsteinToolkit thorn     |     Version:  development version
 Keywords:  TwoPunctures, malloc      |  
--------------------------------------+-------------------------------------
 Hi. The new, more efficient, "eval" branch of TwoPunctures is generating a
 problem in certain cases. I had a job using this code (brought over from
 the trunk to my ET_2013_05 release), and it failed with an assertion error
 in TP_utilities.c, within the "d3tensor" allocation routine. I'm attaching
 a sample parameter file and the associated SCROUT + SCRERR for a small
 version of this case. It was run on 2 Nehalem nodes (8 cores each; no
 OpenMP), using an executable compiled with -O3 level optimisation using
 Intel-2013 compilers and SGI's MPT implementation of MPI.

 Here's the actual error message in the SCROUT+ERR file:


 {{{
 TP_utilities.c:146: TP_d3tensor: Assertion `retval[i][nch]-retval[i][ncl]
 == (nch-ncl)*depth' failed.
 }}}


 I've looked at the d3tensor allocation routine in TP_utilities.c, and it
 seems to have several problems:

 * it has an actual bug in line 115:

 {{{
 retval[0][0] = malloc(sizeof(CCTK_REAL)*(nrh-nrl+1)*(nch-ncl+1)*(nrh-
 nrl+1));
 }}}

 --- the last factor should be (ndh-ndl+1), ''not'' (nrh-nrl+1)

 * even without that bug, the size allocated is too long by one in each
 dimension, when called by other TP routines, as, in fact, are *all* these
 TP_utilities routines.

 * the way in which memory is allocated seems to assume contiguous memory
 chunks (I suspect this is the real problem, given the error message).

 * all the routines in TP_utilities.c use "int" and "long" instead of
 "CCTK_INT"

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1429>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list