OpenMP and Open CASCADE

Hi everybody,

has anyone tried compiling OC using OpenMP? This approach could signifficantly increase the speed of some operations (e.g. boolean operations).

What are the most suitable places (loops etc.) to use OpenMP in OC? Can anyone share his/her experiences?

Thanks
Pawel

Hugues Delorme's picture

Hello Pawel,

I'm very interested in this discussion. I would prefer to write concurrent OpenCascade source code with the help of a dedicated threading library like Intel's TBB or Qt's Concurrent module (available since Qt 4.4).

I've already tried to use OpenCascade 6.2.0 with QtConcurrent but I've met crash problems because Handle_* classes are not thread-safe. OpenCascade 6.3.0 brings good news for thread-safety and Handle_* problems should go away.
I have not yet tested concurrency and OpenCascade 6.3.0, I hope I can soon ...

Pawel's picture

Hi Hugues,

I tried OpenMP with OC6.2. Those were just a couple attempts to use OpenMP pragmas to parallelize loops performing operations on OC objects. Those attempts were not really successful... Well, I'm not an parallel programming expert, and so the samples I made were quite simple. But they actually always ended up with an application crash. So far I haven't tested OC 6.3 neither.

Intel offers an open source version of TBB. I haven't worked with that so far but it sounds interesting. Have you tried parallelizing OC with TBB?

Regards
Pawel

Pawel Dobrowolski's picture

Pawel,

I have few questions to you, which I would like to ask you by mail.
Good you give me your e-mail or send me e-mail on address:
synk at poczta dot onet dot pl ?

Thank you in advance.

Pawel D.