From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.99.149.14 with SMTP id p14mr908625pgd.93.1497294035615; Mon, 12 Jun 2017 12:00:35 -0700 (PDT) X-Received: by 10.157.46.184 with SMTP id w53mr44849ota.20.1497294035568; Mon, 12 Jun 2017 12:00:35 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!aioe.org!feeders.as203319.net!feeder03.as203319.net!feeder.usenetexpress.com!feeder1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!f20no349513itb.0!news-out.google.com!k7ni5988itk.0!nntp.google.com!f20no349509itb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Mon, 12 Jun 2017 12:00:35 -0700 (PDT) In-Reply-To: <84e92c0f-8877-496d-b295-cf590e047ed4@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=2003:e0:abd9:66fd:96de:80ff:fea6:6d64; posting-account=5zx--goAAAD06H29EnWQGKTO-gctuXHl NNTP-Posting-Host: 2003:e0:abd9:66fd:96de:80ff:fea6:6d64 References: <65c5271c-33a1-4f36-977e-372af449d9c1@googlegroups.com> <84e92c0f-8877-496d-b295-cf590e047ed4@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <65d29678-4614-4709-b405-fcb70dfcb2f3@googlegroups.com> Subject: Re: Poor performance with GNAT-GPL-2017 From: Charly Injection-Date: Mon, 12 Jun 2017 19:00:35 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Xref: news.eternal-september.org comp.lang.ada:46938 Date: 2017-06-12T12:00:35-07:00 List-Id: Am Sonntag, 11. Juni 2017 22:48:11 UTC+2 schrieb Robert Eachus: > On Saturday, June 10, 2017 at 7:23:34 AM UTC-4, Charly wrote: > =20 > > Any ideas?? > =20 > Three ideas really. First there may be some change in the tasking and re= ndezvous parts of GNAT-GPL that results in twice as many scheduling actions= (or more) and thus the slowdown. Most probable. >=20 > Second there is no guarantee that the tasking actions will be identical b= etween the two instances. Worst case, you have one thread which is the hig= h pole in the tent starting later. The "easy" way to check this is to take= out the tasking and make the program single-threaded with identical progra= m behavior. >=20 > You could run some tasking tests which I hope have been around forever (A= CES), to see what changed in tasking timings. >=20 > Finally, and highly unlikely given the manitude of the timing change, the= change in versions will change the order (to some extent) in which alterna= tives are tested. These changes can result in the program run time being d= ifferent because more instances are checked before determining that there i= s no valid way to continue from that point. You could check this by puttin= g in an instance counter that is incremented each time a tile is placed. (= Keeping separate counters for each task is an obvious optimization.) >=20 > It would be very interesting if the number of instances checked varied, e= ither from run-to-run or compiler version to compiler version. Hi, I made some tests with different number of tasks, but the factor of two bet= ween old and new is almost independent of that. I also checked the effect o= f option -gnato as Mark suggested, but the effect is negligible : gnat-gpl-2017 $ ./bin/tangle=20 using: 8 tasks duration 851 ms $ ./bin/tangle -t4 using: 4 tasks duration 1.213 ms $ ./bin/tangle -t2 using: 2 tasks duration 2.346 ms $ ./bin/tangle -t1 using: 1 tasks duration 4.638 ms gnat-gpl-2016 $ ./bin/tangle=20 using: 8 tasks duration 430 ms $ ./bin/tangle -t4 using: 4 tasks duration 740 ms $ ./bin/tangle -t2 using: 2 tasks duration 1.428 ms $ ./bin/tangle -t1 using: 1 tasks duration 2.835 ms gnat-gpl-2016 with additional -gnato flag $ ./bin/tangle=20 using: 8 tasks duration 456 ms $ ./bin/tangle -t4 using: 4 tasks duration 761 ms $ ./bin/tangle -t2 using: 2 tasks duration 1.453 ms $ ./bin/tangle -t1 using: 1 tasks duration 2.879 ms