I read the small section about it in the wiki and have seen your
outcome. Having experience with not only OpenMP but
threading/multiprocessing in general (OpenCL, OpenMPI and GoRoutines), I
will give the code a look. I'll then let you know if I give it a go.
Regards,
Carl
On Mon, Jan 13, 2014 at 3:04 AM, Maciej Sumiński
<maciej.suminski@xxxxxxx <mailto:maciej.suminski@xxxxxxx>> wrote:
On 01/10/2014 08:45 PM, Vesa Solonen wrote:
10/01/14 19:35, Maciej Sumiński kirjoitti:
the board that I recommended for testing the GAL
(http://www.ohwr.org/__attachments/download/2187/wrs.__kicad_pcb
<http://www.ohwr.org/attachments/download/2187/wrs.kicad_pcb>),
when you
drag the biggest IC in the middle, as it contains the
greatest number of
nets connected. After being dropped you may observe a freeze
for a short
time, it is the ratsnest algorithm going - we have to decide
if it is
acceptable.
While the big redesign/rewrite of Kicad core is going on, it
might be a
good moment to think some radical moves. Designing all
computationally
intensive parts with multi core processors, de facto available
SIMD/Vector instructions and OpenCL in mind.
As an example instruct the compiler to autovectorize just that
ratsnest
calculation. Or the previous plus function written to support
multiple
threads. Running the UI thread and processing threads separate,
say the
ratsnest being constantly iterated in the background when it
changes.
Just by GCC autovectorization its easy to get ten times more
comparing
or multiplying performane.
-Vesa
I fully support the idea, in fact I have dreamed about this too
(http://www.ohwr.org/projects/__cern-kicad/wiki/ratsnest-gal#__Possible-upgrades
<http://www.ohwr.org/projects/cern-kicad/wiki/ratsnest-gal#Possible-upgrades>).
I had a short try with OpenMP, but I did not get any better results,
so it seems that I could have done it wrong.
If there are volunteers who have some experience with
parallelization I am very eager to cooperate to speed up some of
computations. The ratsnest algorithm is a perfect place to start
with. It is performed on per net basis, so they are all independent
to each other.
Regards,
Orson
_________________________________________________
Mailing list: https://launchpad.net/~kicad-__developers
<https://launchpad.net/~kicad-developers>
Post to : kicad-developers@lists.__launchpad.net
<mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~kicad-__developers
<https://launchpad.net/~kicad-developers>
More help : https://help.launchpad.net/__ListHelp
<https://help.launchpad.net/ListHelp>