discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Multi-core

RB
Robert Bielik
Thu, Jul 30, 2015 8:08 AM

Hi all,

First of all, I'm thrilled with OpenSCAD as I'm a programmer, and this
fits nicely in with my programming skills mapped to 3D design :)

Though I note that OpenSCAD uses only one core. Are there plans on
making OpenSCAD multi-core aware ?

Best regards,
/Robert

Hi all, First of all, I'm thrilled with OpenSCAD as I'm a programmer, and this fits nicely in with my programming skills mapped to 3D design :) Though I note that OpenSCAD uses only one core. Are there plans on making OpenSCAD multi-core aware ? Best regards, /Robert
TP
Torsten Paul
Thu, Jul 30, 2015 8:53 AM

Von: "Robert Bielik" robert.bielik@dirac.se

Though I note that OpenSCAD uses only one core. Are there plans on
making OpenSCAD multi-core aware ?

It's on the wishlist for quite some time now:
https://github.com/openscad/openscad/issues/391

While this would be nice to have, I think the work Bob is doing to
support a different CSG engine is promising even more benefit in
the nearer future:
https://github.com/openscad/openscad/issues/1304#issuecomment-126107128

Of cause both together would be awesome with CPUs likely continuing
to go into the direction of more cores instead of higher single thread
performance.

ciao,
Torsten.

Von: "Robert Bielik" <robert.bielik@dirac.se> > Though I note that OpenSCAD uses only one core. Are there plans on > making OpenSCAD multi-core aware ? > It's on the wishlist for quite some time now: https://github.com/openscad/openscad/issues/391 While this would be nice to have, I think the work Bob is doing to support a different CSG engine is promising even more benefit in the nearer future: https://github.com/openscad/openscad/issues/1304#issuecomment-126107128 Of cause both together would be awesome with CPUs likely continuing to go into the direction of more cores instead of higher single thread performance. ciao, Torsten.
RB
Robert Bielik
Thu, Jul 30, 2015 9:26 AM

Hi Torsten,

Torsten Paul skrev den 2015-07-30 10:53:

Von: "Robert Bielik" robert.bielik@dirac.se

Though I note that OpenSCAD uses only one core. Are there plans on
making OpenSCAD multi-core aware ?

It's on the wishlist for quite some time now:
https://github.com/openscad/openscad/issues/391

While this would be nice to have, I think the work Bob is doing to
support a different CSG engine is promising even more benefit in
the nearer future:
https://github.com/openscad/openscad/issues/1304#issuecomment-126107128

Of cause both together would be awesome with CPUs likely continuing
to go into the direction of more cores instead of higher single thread
performance.

Great to hear! As a tip, maybe FastFlow
(http://calvados.di.unipi.it/fastflow) could aid for the multi-core
stuff ? I might be able to assist with this, as long as I know which
parts are possible to parallelize.

Regards
/Robert

Hi Torsten, Torsten Paul skrev den 2015-07-30 10:53: > Von: "Robert Bielik" <robert.bielik@dirac.se> >> Though I note that OpenSCAD uses only one core. Are there plans on >> making OpenSCAD multi-core aware ? >> > It's on the wishlist for quite some time now: > https://github.com/openscad/openscad/issues/391 > > While this would be nice to have, I think the work Bob is doing to > support a different CSG engine is promising even more benefit in > the nearer future: > https://github.com/openscad/openscad/issues/1304#issuecomment-126107128 > > Of cause both together would be awesome with CPUs likely continuing > to go into the direction of more cores instead of higher single thread > performance. Great to hear! As a tip, maybe FastFlow (http://calvados.di.unipi.it/fastflow) could aid for the multi-core stuff ? I might be able to assist with this, as long as I know which parts are possible to parallelize. Regards /Robert > > ciao, > Torsten. > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
DM
doug moen
Thu, Jul 30, 2015 2:31 PM

FastFlow sounds pretty cool. Thanks for the link.

The previous multi core thread has lots of details about what needs to be
done to speed up OpenSCAD. I am away from laptop or I'd post a link.

On Thursday, 30 July 2015, Robert Bielik robert.bielik@dirac.se wrote:o

Hi Torsten,

Torsten Paul skrev den 2015-07-30 10:53:

Von: "Robert Bielik" robert.bielik@dirac.se

Though I note that OpenSCAD uses only one core. Are there plans on
making OpenSCAD multi-core aware ?

It's on the wishlist for quite some time now:

https://github.com/openscad/openscad/issues/391

While this would be nice to have, I think the work Bob is doing to
support a different CSG engine is promising even more benefit in
the nearer future:
https://github.com/openscad/openscad/issues/1304#issuecomment-126107128

Of cause both together would be awesome with CPUs likely continuing
to go into the direction of more cores instead of higher single thread
performance.

Great to hear! As a tip, maybe FastFlow (
http://calvados.di.unipi.it/fastflow) could aid for the multi-core stuff
? I might be able to assist with this, as long as I know which
parts are possible to parallelize.

Regards
/Robert

FastFlow sounds pretty cool. Thanks for the link. The previous multi core thread has lots of details about what needs to be done to speed up OpenSCAD. I am away from laptop or I'd post a link. On Thursday, 30 July 2015, Robert Bielik <robert.bielik@dirac.se> wrote:o > Hi Torsten, > > Torsten Paul skrev den 2015-07-30 10:53: > >> Von: "Robert Bielik" <robert.bielik@dirac.se> >> >>> Though I note that OpenSCAD uses only one core. Are there plans on >>> making OpenSCAD multi-core aware ? >>> >>> It's on the wishlist for quite some time now: >> https://github.com/openscad/openscad/issues/391 >> >> While this would be nice to have, I think the work Bob is doing to >> support a different CSG engine is promising even more benefit in >> the nearer future: >> https://github.com/openscad/openscad/issues/1304#issuecomment-126107128 >> >> Of cause both together would be awesome with CPUs likely continuing >> to go into the direction of more cores instead of higher single thread >> performance. >> > Great to hear! As a tip, maybe FastFlow ( > http://calvados.di.unipi.it/fastflow) could aid for the multi-core stuff > ? I might be able to assist with this, as long as I know which > parts are possible to parallelize. > > Regards > /Robert > > >> ciao, >> Torsten. >> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >> > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > >
TP
Torsten Paul
Thu, Jul 30, 2015 6:22 PM

On 07/30/2015 11:26 AM, Robert Bielik wrote:

Great to hear! As a tip, maybe FastFlow (http://calvados.di.unipi.it/fastflow)
could aid for the multi-core stuff ? I might be able to assist with
this, as long as I know which parts are possible to parallelize.

This looks quite interesting, I'll have to do some reading once I
find some more free time.
As first step, it might be not needed to push the parallelizing
very deep into the algorithms (which would currently mean to look
at libCGAL as that's where the CSG calculations happen).
The model description OpenSCAD generates would give some quite
high level opportunities to calculate things in parallel. In
general the tree structure presents a natural way to process
child nodes in parallel.
I guess the challenges are more things like making the cache
thread safe and ensure the libraries work properly. The github
ticket mentions some details about CGAL regarding this.

ciao,
Torsten.

On 07/30/2015 11:26 AM, Robert Bielik wrote: > Great to hear! As a tip, maybe FastFlow (http://calvados.di.unipi.it/fastflow) > could aid for the multi-core stuff ? I might be able to assist with > this, as long as I know which parts are possible to parallelize. > This looks quite interesting, I'll have to do some reading once I find some more free time. As first step, it might be not needed to push the parallelizing very deep into the algorithms (which would currently mean to look at libCGAL as that's where the CSG calculations happen). The model description OpenSCAD generates would give some quite high level opportunities to calculate things in parallel. In general the tree structure presents a natural way to process child nodes in parallel. I guess the challenges are more things like making the cache thread safe and ensure the libraries work properly. The github ticket mentions some details about CGAL regarding this. ciao, Torsten.
B
bobc
Thu, Jul 30, 2015 7:15 PM

The issue covering this is https://github.com/openscad/openscad/issues/391

I had a look at the work by bgarami at
https://github.com/bgamari/openscad/tree/parallel and it looked feasible,
but he also notes that CGAL is not thread-safe (I haven't checked since he
wrote that) which stalled further progress.

I think his approach would also work for a different back-end like Carve, I
was going to have a look at implementing it sometime later. According to the
author, Carve is "probably" thread-safe :)

Another enhancement might be to parallelize CSG ops where there are several
children, currently this is done sequentially.

--
View this message in context: http://forum.openscad.org/Multi-core-tp13370p13375.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

The issue covering this is https://github.com/openscad/openscad/issues/391 I had a look at the work by bgarami at https://github.com/bgamari/openscad/tree/parallel and it looked feasible, but he also notes that CGAL is not thread-safe (I haven't checked since he wrote that) which stalled further progress. I think his approach would also work for a different back-end like Carve, I was going to have a look at implementing it sometime later. According to the author, Carve is "probably" thread-safe :) Another enhancement might be to parallelize CSG ops where there are several children, currently this is done sequentially. -- View this message in context: http://forum.openscad.org/Multi-core-tp13370p13375.html Sent from the OpenSCAD mailing list archive at Nabble.com.