Subject: CGAL users discussion list
List archive
[cgal-discuss] Memory issue with openSUSE 11.3, exact kernel, adding points/vectors
Chronological Thread
- From: Graham Macpherson <>
- To:
- Subject: [cgal-discuss] Memory issue with openSUSE 11.3, exact kernel, adding points/vectors
- Date: Fri, 14 Jan 2011 13:21:47 +0000
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=to:subject:from:organization:date:mime-version:content-type :message-id; b=reCrln1y+SZbDKrnFPkEe1EqzuqlCsX3RnaNwTqQUhiq3dFtQDJe25lzv2CL+qtNn/ 4KctfVfC6iM4Od5qDAAq/Pl78G/cBk4kBnK1c3yle9unlEkmZWd2uup6joqto307yGdz CVPK5lux/BQHatjUN6SGwAzNTJ4QUC9ncRH+g=
- Organization: OpenCFD Ltd.
Hello all,
I've found a strange memory problem that I've reproduced in the attached code.
I'm taking the vertices of a Delaunay tessellation, calculating a displacement
for them, clearing the tessellation, then reinserting the displaced vertices.
When I run this, the memory use by the process increases linearly with each
iteration, which is wrong, it should be essentially constant, however:
+ The problem doesn't occur with option A in the attached, only with option
B,
i.e. when adding a Vector_3 to the point;
+ The problem doesn't occur using
Exact_predicates_inexact_constructions_kernel, only with
Exact_predicates_exact_constructions_kernel;
+ It doesn't appear on all operating systems - it appears on openSUSE 11.3,
but
not on Ubuntu 10.04.
Also attached are two log files showing the contrasting behaviour on the two
operating systems with the code the same.
I've tried on openSUSE 11.3 with gcc 4.5.0 (system compiler) and gcc 4.5.2,
boost versions 1.40.0, 1.42.0 (system) and 1.45.0, and with CGAL 3.5.1 and
CGAL
3.7, and they all essentially do the same thing.
On Ubuntu I'm using CGAL 3.7, gcc 4.4.3 (system compiler) and boost 1.40.0
(system).
Note, the memInfo class is one that's part of other libraries I'm using, so it
won't compile for you, it's only there to show how the output was generated.
Assuming that the addition operation in option B is legitimate, then this
looks
like a bug in a library. Any suggestions for how to get to the bottom of it?
Best regards,
Graham
--
Graham Macpherson
OpenCFD Ltd.
www.openfoam.com
+44 (0)118 9471030
9 Albert Road
Caversham
Reading RG4 7AN
#include "memInfo.H" #include <vector> #include <cassert> #include <CGAL/Random.h> #include <CGAL/Exact_predicates_exact_constructions_kernel.h> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h> #include <CGAL/Delaunay_triangulation_3.h> typedef CGAL::Exact_predicates_exact_constructions_kernel K; // typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Delaunay_triangulation_3<K> Delaunay; typedef Delaunay::Point Point; typedef K::Vector_3 Vector_3; int main(int argc, char *argv[]) { std::vector<Point> P; int tSize = 10000; int nMemLoops = 100; for (int i = 0; i < tSize; ++i) { P.push_back ( Point ( CGAL::default_random.get_double(0, 20), CGAL::default_random.get_double(0, 20), CGAL::default_random.get_double(0, 20) ) ); } Delaunay T(P.begin(), P.end()); Vector_3 v(0.1, 0.1, 0.1); for (int i = 0; i < nMemLoops; ++i) { std::vector<Point> pointsToInsert; for ( Delaunay::Finite_vertices_iterator vit = T.finite_vertices_begin(); vit != T.finite_vertices_end(); vit++ ) { // Option A // pointsToInsert.push_back(vit->point()); // Option B pointsToInsert.push_back(vit->point() + v); } T.clear(); T.insert(pointsToInsert.begin(), pointsToInsert.end()); Foam::memInfo m; std::cout << "iteration " << i << " T size " << T.number_of_vertices() << " mem size " << m.size() << " kB" << std::endl; } return 0; }iteration 0 T size 10000 mem size 57344 kB
iteration 1 T size 10000 mem size 59708 kB
iteration 2 T size 10000 mem size 60512 kB
iteration 3 T size 10000 mem size 60744 kB
iteration 4 T size 10000 mem size 60944 kB
iteration 5 T size 10000 mem size 60944 kB
iteration 6 T size 10000 mem size 60944 kB
iteration 7 T size 10000 mem size 60944 kB
iteration 8 T size 10000 mem size 60944 kB
iteration 9 T size 10000 mem size 60944 kB
iteration 10 T size 10000 mem size 60944 kB
iteration 11 T size 10000 mem size 60944 kB
iteration 12 T size 10000 mem size 61120 kB
iteration 13 T size 10000 mem size 61120 kB
iteration 14 T size 10000 mem size 61120 kB
iteration 15 T size 10000 mem size 61120 kB
iteration 16 T size 10000 mem size 61120 kB
iteration 17 T size 10000 mem size 61120 kB
iteration 18 T size 10000 mem size 60984 kB
iteration 19 T size 10000 mem size 60984 kB
iteration 20 T size 10000 mem size 60984 kB
iteration 21 T size 10000 mem size 60984 kB
iteration 22 T size 10000 mem size 60984 kB
iteration 23 T size 10000 mem size 60984 kB
iteration 24 T size 10000 mem size 60984 kB
iteration 25 T size 10000 mem size 60984 kB
iteration 26 T size 10000 mem size 60984 kB
iteration 27 T size 10000 mem size 60984 kB
iteration 28 T size 10000 mem size 60984 kB
iteration 29 T size 10000 mem size 60984 kB
iteration 30 T size 10000 mem size 60984 kB
iteration 31 T size 10000 mem size 60984 kB
iteration 32 T size 10000 mem size 60984 kB
iteration 33 T size 10000 mem size 60984 kB
iteration 34 T size 10000 mem size 60984 kB
iteration 35 T size 10000 mem size 60984 kB
iteration 36 T size 10000 mem size 60984 kB
iteration 37 T size 10000 mem size 60984 kB
iteration 38 T size 10000 mem size 60984 kB
iteration 39 T size 10000 mem size 60984 kB
iteration 40 T size 10000 mem size 60984 kB
iteration 41 T size 10000 mem size 60984 kB
iteration 42 T size 10000 mem size 60984 kB
iteration 43 T size 10000 mem size 60984 kB
iteration 44 T size 10000 mem size 60984 kB
iteration 45 T size 10000 mem size 60984 kB
iteration 46 T size 10000 mem size 60984 kB
iteration 47 T size 10000 mem size 60984 kB
iteration 48 T size 10000 mem size 60984 kB
iteration 49 T size 10000 mem size 60984 kB
iteration 50 T size 10000 mem size 60984 kB
iteration 51 T size 10000 mem size 60984 kB
iteration 52 T size 10000 mem size 60984 kB
iteration 53 T size 10000 mem size 60984 kB
iteration 54 T size 10000 mem size 60984 kB
iteration 55 T size 10000 mem size 60984 kB
iteration 56 T size 10000 mem size 60984 kB
iteration 57 T size 10000 mem size 60984 kB
iteration 58 T size 10000 mem size 60984 kB
iteration 59 T size 10000 mem size 60984 kB
iteration 60 T size 10000 mem size 60984 kB
iteration 61 T size 10000 mem size 60984 kB
iteration 62 T size 10000 mem size 60984 kB
iteration 63 T size 10000 mem size 60984 kB
iteration 64 T size 10000 mem size 60984 kB
iteration 65 T size 10000 mem size 60984 kB
iteration 66 T size 10000 mem size 60984 kB
iteration 67 T size 10000 mem size 60984 kB
iteration 68 T size 10000 mem size 60984 kB
iteration 69 T size 10000 mem size 60984 kB
iteration 70 T size 10000 mem size 60984 kB
iteration 71 T size 10000 mem size 60984 kB
iteration 72 T size 10000 mem size 60984 kB
iteration 73 T size 10000 mem size 60984 kB
iteration 74 T size 10000 mem size 60984 kB
iteration 75 T size 10000 mem size 60984 kB
iteration 76 T size 10000 mem size 60984 kB
iteration 77 T size 10000 mem size 60984 kB
iteration 78 T size 10000 mem size 60984 kB
iteration 79 T size 10000 mem size 60984 kB
iteration 80 T size 10000 mem size 60984 kB
iteration 81 T size 10000 mem size 60984 kB
iteration 82 T size 10000 mem size 60984 kB
iteration 83 T size 10000 mem size 60984 kB
iteration 84 T size 10000 mem size 60984 kB
iteration 85 T size 10000 mem size 60984 kB
iteration 86 T size 10000 mem size 60984 kB
iteration 87 T size 10000 mem size 60984 kB
iteration 88 T size 10000 mem size 60984 kB
iteration 89 T size 10000 mem size 60984 kB
iteration 90 T size 10000 mem size 60984 kB
iteration 91 T size 10000 mem size 60984 kB
iteration 92 T size 10000 mem size 60984 kB
iteration 93 T size 10000 mem size 60984 kB
iteration 94 T size 10000 mem size 61160 kB
iteration 95 T size 10000 mem size 61160 kB
iteration 96 T size 10000 mem size 61160 kB
iteration 97 T size 10000 mem size 61160 kB
iteration 98 T size 10000 mem size 61160 kB
iteration 99 T size 10000 mem size 61160 kB
iteration 0 T size 10000 mem size 52136 kB
iteration 1 T size 10000 mem size 53076 kB
iteration 2 T size 10000 mem size 54012 kB
iteration 3 T size 10000 mem size 54952 kB
iteration 4 T size 10000 mem size 55892 kB
iteration 5 T size 10000 mem size 56828 kB
iteration 6 T size 10000 mem size 57768 kB
iteration 7 T size 10000 mem size 58708 kB
iteration 8 T size 10000 mem size 59644 kB
iteration 9 T size 10000 mem size 60584 kB
iteration 10 T size 10000 mem size 61524 kB
iteration 11 T size 10000 mem size 62460 kB
iteration 12 T size 10000 mem size 63400 kB
iteration 13 T size 10000 mem size 64340 kB
iteration 14 T size 10000 mem size 65276 kB
iteration 15 T size 10000 mem size 66216 kB
iteration 16 T size 10000 mem size 67156 kB
iteration 17 T size 10000 mem size 68096 kB
iteration 18 T size 10000 mem size 69036 kB
iteration 19 T size 10000 mem size 69972 kB
iteration 20 T size 10000 mem size 70912 kB
iteration 21 T size 10000 mem size 71852 kB
iteration 22 T size 10000 mem size 72792 kB
iteration 23 T size 10000 mem size 73728 kB
iteration 24 T size 10000 mem size 74668 kB
iteration 25 T size 10000 mem size 75608 kB
iteration 26 T size 10000 mem size 76544 kB
iteration 27 T size 10000 mem size 77484 kB
iteration 28 T size 10000 mem size 78420 kB
iteration 29 T size 10000 mem size 79360 kB
iteration 30 T size 10000 mem size 80300 kB
iteration 31 T size 10000 mem size 81236 kB
iteration 32 T size 10000 mem size 82176 kB
iteration 33 T size 10000 mem size 83116 kB
iteration 34 T size 10000 mem size 84052 kB
iteration 35 T size 10000 mem size 84992 kB
iteration 36 T size 10000 mem size 85932 kB
iteration 37 T size 10000 mem size 86868 kB
iteration 38 T size 10000 mem size 87808 kB
iteration 39 T size 10000 mem size 88748 kB
iteration 40 T size 10000 mem size 89688 kB
iteration 41 T size 10000 mem size 90624 kB
iteration 42 T size 10000 mem size 91564 kB
iteration 43 T size 10000 mem size 92500 kB
iteration 44 T size 10000 mem size 93440 kB
iteration 45 T size 10000 mem size 94380 kB
iteration 46 T size 10000 mem size 95316 kB
iteration 47 T size 10000 mem size 96256 kB
iteration 48 T size 10000 mem size 97196 kB
iteration 49 T size 10000 mem size 98132 kB
iteration 50 T size 10000 mem size 99072 kB
iteration 51 T size 10000 mem size 100008 kB
iteration 52 T size 10000 mem size 100948 kB
iteration 53 T size 10000 mem size 101888 kB
iteration 54 T size 10000 mem size 102824 kB
iteration 55 T size 10000 mem size 103764 kB
iteration 56 T size 10000 mem size 104704 kB
iteration 57 T size 10000 mem size 105640 kB
iteration 58 T size 10000 mem size 106580 kB
iteration 59 T size 10000 mem size 107520 kB
iteration 60 T size 10000 mem size 108456 kB
iteration 61 T size 10000 mem size 109396 kB
iteration 62 T size 10000 mem size 110332 kB
iteration 63 T size 10000 mem size 111272 kB
iteration 64 T size 10000 mem size 112212 kB
iteration 65 T size 10000 mem size 113148 kB
iteration 66 T size 10000 mem size 114088 kB
iteration 67 T size 10000 mem size 115028 kB
iteration 68 T size 10000 mem size 115964 kB
iteration 69 T size 10000 mem size 116904 kB
iteration 70 T size 10000 mem size 117844 kB
iteration 71 T size 10000 mem size 118780 kB
iteration 72 T size 10000 mem size 119720 kB
iteration 73 T size 10000 mem size 120656 kB
iteration 74 T size 10000 mem size 121596 kB
iteration 75 T size 10000 mem size 122536 kB
iteration 76 T size 10000 mem size 123472 kB
iteration 77 T size 10000 mem size 124412 kB
iteration 78 T size 10000 mem size 125352 kB
iteration 79 T size 10000 mem size 126288 kB
iteration 80 T size 10000 mem size 127228 kB
iteration 81 T size 10000 mem size 128164 kB
iteration 82 T size 10000 mem size 129104 kB
iteration 83 T size 10000 mem size 130044 kB
iteration 84 T size 10000 mem size 130980 kB
iteration 85 T size 10000 mem size 131920 kB
iteration 86 T size 10000 mem size 132860 kB
iteration 87 T size 10000 mem size 133796 kB
iteration 88 T size 10000 mem size 134736 kB
iteration 89 T size 10000 mem size 135676 kB
iteration 90 T size 10000 mem size 136612 kB
iteration 91 T size 10000 mem size 137552 kB
iteration 92 T size 10000 mem size 138488 kB
iteration 93 T size 10000 mem size 139428 kB
iteration 94 T size 10000 mem size 140368 kB
iteration 95 T size 10000 mem size 141304 kB
iteration 96 T size 10000 mem size 142244 kB
iteration 97 T size 10000 mem size 143184 kB
iteration 98 T size 10000 mem size 144120 kB
iteration 99 T size 10000 mem size 145060 kB
- [cgal-discuss] Memory issue with openSUSE 11.3, exact kernel, adding points/vectors, Graham Macpherson, 01/14/2011
- Re: [cgal-discuss] Memory issue with openSUSE 11.3, exact kernel, adding points/vectors, Sebastien Loriot (GeometryFactory), 01/17/2011
- Re: [cgal-discuss] Memory issue with openSUSE 11.3, exact kernel, adding points/vectors, Graham Macpherson, 01/17/2011
- Re: [cgal-discuss] Memory issue with openSUSE 11.3, exact kernel, adding points/vectors, Sebastien Loriot (GeometryFactory), 01/17/2011
- Re: [cgal-discuss] Memory issue with openSUSE 11.3, exact kernel, adding points/vectors, Graham Macpherson, 01/28/2011
- Re: [cgal-discuss] Memory issue with openSUSE 11.3, exact kernel, adding points/vectors, Francois Berenger, 01/18/2011
- Re: [cgal-discuss] Memory issue with openSUSE 11.3, exact kernel, adding points/vectors, Sebastien Loriot (GeometryFactory), 01/18/2011
- Re: [cgal-discuss] Memory issue with openSUSE 11.3, exact kernel, adding points/vectors, Sebastien Loriot (GeometryFactory), 01/17/2011
- Re: [cgal-discuss] Memory issue with openSUSE 11.3, exact kernel, adding points/vectors, Graham Macpherson, 01/17/2011
- Re: [cgal-discuss] Memory issue with openSUSE 11.3, exact kernel, adding points/vectors, Sebastien Loriot (GeometryFactory), 01/17/2011
Archive powered by MHonArc 2.6.16.