discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

memory use, 32 bit Linux system, version 2014.10.02

W
wmartin
Fri, Dec 5, 2014 4:52 PM

Hello,

Watching memory usage with Xfce task manager, I first notice that only one
cpu core is in use, and it is saturated. Can multiple cores be used? Second,
my simple little model, a perforated tube geometry, is dying before
rendering is finished, unless I reduce the tube length to about half of what
I need to generate. Memory used does not appear to reach 100% of 4GB, so I'm
guessing this has more to do with fragmentation than real consumption. I
last saw it using about 75%, went away for 10 minutes, and it was crashed
when I returned to check on it. So I'm not "certain" about this, just my
best guess...
Anyone care to comment or have you seen this happening on 64 bit systems?
Thanks,
Bill

--
View this message in context: http://forum.openscad.org/memory-use-32-bit-Linux-system-version-2014-10-02-tp10374.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Hello, Watching memory usage with Xfce task manager, I first notice that only one cpu core is in use, and it is saturated. Can multiple cores be used? Second, my simple little model, a perforated tube geometry, is dying before rendering is finished, unless I reduce the tube length to about half of what I need to generate. Memory used does not appear to reach 100% of 4GB, so I'm guessing this has more to do with fragmentation than real consumption. I last saw it using about 75%, went away for 10 minutes, and it was crashed when I returned to check on it. So I'm not "certain" about this, just my best guess... Anyone care to comment or have you seen this happening on 64 bit systems? Thanks, Bill -- View this message in context: http://forum.openscad.org/memory-use-32-bit-Linux-system-version-2014-10-02-tp10374.html Sent from the OpenSCAD mailing list archive at Nabble.com.
TP
Torsten Paul
Fri, Dec 5, 2014 5:31 PM

On 12/05/2014 05:52 PM, wmartin wrote:

Watching memory usage with Xfce task manager, I first notice that only one
cpu core is in use, and it is saturated. Can multiple cores be used?

Currently that's not possible.

https://github.com/openscad/openscad/issues/391 is did not succeed in
attracting developers yet ;-).

Second, my simple little model, a perforated tube geometry, is dying before
rendering is finished, unless I reduce the tube length to about half of what
I need to generate.

Without looking at the model, it's hard to guess what the cause could
be. Crashes could be caused by recursion using up the stack (fix for that
is on the way) or it could be due to bad geometry generated, e.g. due
to rounding issues...

ciao,
Torsten.

On 12/05/2014 05:52 PM, wmartin wrote: > Watching memory usage with Xfce task manager, I first notice that only one > cpu core is in use, and it is saturated. Can multiple cores be used? > Currently that's not possible. https://github.com/openscad/openscad/issues/391 is did not succeed in attracting developers yet ;-). > Second, my simple little model, a perforated tube geometry, is dying before > rendering is finished, unless I reduce the tube length to about half of what > I need to generate. > Without looking at the model, it's hard to guess what the cause could be. Crashes could be caused by recursion using up the stack (fix for that is on the way) or it could be due to bad geometry generated, e.g. due to rounding issues... ciao, Torsten.
WW
William W Martin
Fri, Dec 5, 2014 7:55 PM

I would be happy to post the model file, if that is ok for this list. It
is very small. It is
also my very first model generation attempt! Liking this SCAD program.
-bill

On 12/05/2014 09:31 AM, Torsten Paul wrote:

On 12/05/2014 05:52 PM, wmartin wrote:

Watching memory usage with Xfce task manager, I first notice that
only one
cpu core is in use, and it is saturated. Can multiple cores be used?

Currently that's not possible.

https://github.com/openscad/openscad/issues/391 is did not succeed in
attracting developers yet ;-).

Second, my simple little model, a perforated tube geometry, is dying
before
rendering is finished, unless I reduce the tube length to about half
of what
I need to generate.

Without looking at the model, it's hard to guess what the cause could
be. Crashes could be caused by recursion using up the stack (fix for that
is on the way) or it could be due to bad geometry generated, e.g. due
to rounding issues...

ciao,
Torsten.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

I would be happy to post the model file, if that is ok for this list. It is very small. It is also my very first model generation attempt! Liking this SCAD program. -bill On 12/05/2014 09:31 AM, Torsten Paul wrote: > On 12/05/2014 05:52 PM, wmartin wrote: >> Watching memory usage with Xfce task manager, I first notice that >> only one >> cpu core is in use, and it is saturated. Can multiple cores be used? > > > Currently that's not possible. > > https://github.com/openscad/openscad/issues/391 is did not succeed in > attracting developers yet ;-). > > >> Second, my simple little model, a perforated tube geometry, is dying >> before >> rendering is finished, unless I reduce the tube length to about half >> of what >> I need to generate. > > > Without looking at the model, it's hard to guess what the cause could > be. Crashes could be caused by recursion using up the stack (fix for that > is on the way) or it could be due to bad geometry generated, e.g. due > to rounding issues... > > ciao, > Torsten. > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > >
M
MichaelAtOz
Fri, Dec 5, 2014 10:51 PM

wmartin wrote

I would be happy to post the model file, if that is ok for this list.

Feel free to share it.


Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above.

The TPP is no simple “trade agreement.”  Fight it! http://www.ourfairdeal.org/

View this message in context: http://forum.openscad.org/memory-use-32-bit-Linux-system-version-2014-10-02-tp10374p10384.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

wmartin wrote > I would be happy to post the model file, if that is ok for this list. Feel free to share it. ----- Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above. The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ -- View this message in context: http://forum.openscad.org/memory-use-32-bit-Linux-system-version-2014-10-02-tp10374p10384.html Sent from the OpenSCAD mailing list archive at Nabble.com.
WW
William W Martin
Fri, Dec 5, 2014 10:59 PM

wmartin wrote

I would be happy to post the model file, if that is ok for this list.

Feel free to share it.
oz.at.michael@gmail.com

Ok, since it is so tiny I'll just paste it inline.
BTW: the t_len variable is desired to be 420mm.

-bill

echo(version=version());

t_len = 105;
seg_h = 6;              //6mm tall ring segment
base = seg_h/2;        //get back to zero on Z axis
ID = 48;                //main tube ID
OD = 50;              //main tube OD
h_cc = 6;              //center-to-center perforation spacing
h_dia = 3;              //perforation hole diameter
p_deg = 360/(PIOD/h_cc);    //degrees between perf holes
n_rot = floor(PI
OD/h_cc) -1;      //inner loop count

//weird, but it does the job!
function O(cnt) = cnt*p_deg/2 ; //rotate around the tube this much
"extra" each ring segment along length

module perf_tube()
{
difference() {
translate( [0, 0, t_len/2] )
union() {
difference() {
cylinder(h = t_len, d=OD, $fn=100, center = true);
cylinder(h = t_len, d=ID, $fn=100, center = true);
}
}

     for ( j = [0 : t_len/seg_h] ) {
         translate( [0, 0, (j*seg_h) + base] )
         for ( i = [ 0 : n_rot ] ) {
             rotate( [90, 0, i*p_deg + O(j)] )
             translate( [0, 0, (ID+OD)/4] )
             cylinder(h = OD-ID+1, d = h_dia, $fn=100, center = true);
         }
      }
  }

}

perf_tube();

wmartin wrote > I would be happy to post the model file, if that is ok for this list. Feel free to share it. oz.at.michael@gmail.com Ok, since it is so tiny I'll just paste it inline. BTW: the t_len variable is desired to be 420mm. -bill echo(version=version()); t_len = 105; seg_h = 6; //6mm tall ring segment base = seg_h/2; //get back to zero on Z axis ID = 48; //main tube ID OD = 50; //main tube OD h_cc = 6; //center-to-center perforation spacing h_dia = 3; //perforation hole diameter p_deg = 360/(PI*OD/h_cc); //degrees between perf holes n_rot = floor(PI*OD/h_cc) -1; //inner loop count //weird, but it does the job! function O(cnt) = cnt*p_deg/2 ; //rotate around the tube this much "extra" each ring segment along length module perf_tube() { difference() { translate( [0, 0, t_len/2] ) union() { difference() { cylinder(h = t_len, d=OD, $fn=100, center = true); cylinder(h = t_len, d=ID, $fn=100, center = true); } } for ( j = [0 : t_len/seg_h] ) { translate( [0, 0, (j*seg_h) + base] ) for ( i = [ 0 : n_rot ] ) { rotate( [90, 0, i*p_deg + O(j)] ) translate( [0, 0, (ID+OD)/4] ) cylinder(h = OD-ID+1, d = h_dia, $fn=100, center = true); } } } } perf_tube();
M
MichaelAtOz
Fri, Dec 5, 2014 11:10 PM

Well, that is doing something strange, I'll have to look deeper.
It managed to get OpenSCAD to use 95% of my dual core CPU (and almost hang
the app), which is strange for a non-multi threaded app...


Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above.

The TPP is no simple “trade agreement.”  Fight it! http://www.ourfairdeal.org/

View this message in context: http://forum.openscad.org/memory-use-32-bit-Linux-system-version-2014-10-02-tp10374p10388.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Well, that is doing something strange, I'll have to look deeper. It managed to get OpenSCAD to use 95% of my dual core CPU (and almost hang the app), which is strange for a non-multi threaded app... ----- Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above. The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ -- View this message in context: http://forum.openscad.org/memory-use-32-bit-Linux-system-version-2014-10-02-tp10374p10388.html Sent from the OpenSCAD mailing list archive at Nabble.com.
M
MichaelAtOz
Fri, Dec 5, 2014 11:11 PM

BTW, I'd suggest getting something later than 2014.10.02, it had issues.


Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above.

The TPP is no simple “trade agreement.”  Fight it! http://www.ourfairdeal.org/

View this message in context: http://forum.openscad.org/memory-use-32-bit-Linux-system-version-2014-10-02-tp10374p10389.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

BTW, I'd suggest getting something later than 2014.10.02, it had issues. ----- Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above. The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ -- View this message in context: http://forum.openscad.org/memory-use-32-bit-Linux-system-version-2014-10-02-tp10374p10389.html Sent from the OpenSCAD mailing list archive at Nabble.com.
M
MichaelAtOz
Fri, Dec 5, 2014 11:26 PM

That's strange, I got noheads email (below), but it is not posted here???

I think $fn = 100 for a 3mm hole is excessive. It will take a very long
time and produce more precision than is needed for most manufacturing
techniques.

I agree, but with $fn=10 everywhere it is still behaving badly.


Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above.

The TPP is no simple “trade agreement.”  Fight it! http://www.ourfairdeal.org/

View this message in context: http://forum.openscad.org/memory-use-32-bit-Linux-system-version-2014-10-02-tp10374p10390.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

That's strange, I got noheads email (below), but it is not posted here??? > I think $fn = 100 for a 3mm hole is excessive. It will take a very long > time and produce more precision than is needed for most manufacturing > techniques. I agree, but with $fn=10 everywhere it is still behaving badly. ----- Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above. The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ -- View this message in context: http://forum.openscad.org/memory-use-32-bit-Linux-system-version-2014-10-02-tp10374p10390.html Sent from the OpenSCAD mailing list archive at Nabble.com.
WW
William W Martin
Sat, Dec 6, 2014 12:04 AM

Ok, thanks for taking a look. I'm not intending to
"manufacture" as in 3-d printing, just create a good mesh file
to input to the SU2 code from Stanford. Once I get the file format
into something SU2 likes...
-bill
ps: recommended version of openSCAD?

On 12/05/2014 03:26 PM, MichaelAtOz wrote:

That's strange, I got noheads email (below), but it is not posted here???

I think $fn = 100 for a 3mm hole is excessive. It will take a very long
time and produce more precision than is needed for most manufacturing
techniques.

I agree, but with $fn=10 everywhere it is still behaving badly.


Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above.

The TPP is no simple “trade agreement.”  Fight it! http://www.ourfairdeal.org/

View this message in context: http://forum.openscad.org/memory-use-32-bit-Linux-system-version-2014-10-02-tp10374p10390.html
Sent from the OpenSCAD mailing list archive at Nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

Ok, thanks for taking a look. I'm not intending to "manufacture" as in 3-d printing, just create a good mesh file to input to the SU2 code from Stanford. Once I get the file format into something SU2 likes... -bill ps: recommended version of openSCAD? On 12/05/2014 03:26 PM, MichaelAtOz wrote: > That's strange, I got noheads email (below), but it is not posted here??? > > >> I think $fn = 100 for a 3mm hole is excessive. It will take a very long >> time and produce more precision than is needed for most manufacturing >> techniques. > I agree, but with $fn=10 everywhere it is still behaving badly. > > > > ----- > Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above. > > The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ > -- > View this message in context: http://forum.openscad.org/memory-use-32-bit-Linux-system-version-2014-10-02-tp10374p10390.html > Sent from the OpenSCAD mailing list archive at Nabble.com. > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
M
MichaelAtOz
Sat, Dec 6, 2014 4:20 AM

wmartin wrote

ps: recommended version of openSCAD?

Current snapshot 2014.12.04  here http://www.openscad.org/downloads.html
, may have some features to handle memory better and performance is better
too.

I'm running Win 7/64 OpenSCAD 64bit, I used the 2014.03 Production Release.

With slightly modified code (incl somewhat lower $fn values), I just did a
t_len = 420, F6 (no F5) it took 2h 14m 38s, and used 1.55GB of memory. That
has 1750 holes and taxes OpenSCAD, F5 is useless and F6 takes a long time.

The export to STL took a few minutes and not much more memory.

Do you want this STL (ie a bit chunkier than yours but looks OK to me)?

I'm going to try refactoring to see if there is a better way.


Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above.

The TPP is no simple “trade agreement.”  Fight it! http://www.ourfairdeal.org/

View this message in context: http://forum.openscad.org/memory-use-32-bit-Linux-system-version-2014-10-02-tp10374p10392.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

wmartin wrote > ps: recommended version of openSCAD? Current snapshot 2014.12.04 here <http://www.openscad.org/downloads.html> , may have some features to handle memory better and performance is better too. I'm running Win 7/64 OpenSCAD 64bit, I used the 2014.03 Production Release. With slightly modified code (incl somewhat lower $fn values), I just did a t_len = 420, F6 (no F5) it took 2h 14m 38s, and used 1.55GB of memory. That has 1750 holes and taxes OpenSCAD, F5 is useless and F6 takes a long time. The export to STL took a few minutes and not much more memory. Do you want this STL (ie a bit chunkier than yours but looks OK to me)? I'm going to try refactoring to see if there is a better way. ----- Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above. The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ -- View this message in context: http://forum.openscad.org/memory-use-32-bit-Linux-system-version-2014-10-02-tp10374p10392.html Sent from the OpenSCAD mailing list archive at Nabble.com.