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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,a5681531ca1cf09e X-Google-Attributes: gid103376,public From: Edmond Walsh Subject: Re: Tasking performance between Ada83 and Ada95 Date: 1997/06/08 Message-ID: <7h6UFCAdNsmzEwg3@walsh.demon.co.uk>#1/1 X-Deja-AN: 247195426 Distribution: world X-NNTP-Posting-Host: walsh.demon.co.uk [158.152.134.205] References: <1997Jun6.115223.7384@relay.nswc.navy.mil> Organization: edmond Newsgroups: comp.lang.ada Date: 1997-06-08T00:00:00+00:00 List-Id: In article , Robert Dewar writes >Mike Rose says > ><performance is much slower with GNAT than with Alsys, every test was at least >10 times slower and some were much more. > >Our software depends heavily on tasking. Is there any way to improve the >tasking performance with GNAT ? > >>> > >You have to be careful to know exactly what you are comparing. In partciular, >there is no question that Ada 95 does impose some additional semantic >constraints and features (e.g. requeue and ATC) that result in distributed >implementation costs. Often for example, the proper comparison is between >a task in Ada 83 and a protected type in Ada 95. > >You also have to decide what features you are testing carefully. In looking >at, for example, the timings on SGI between VADS and GNAT on the PIWG tasking >benchmarks, we certainly do not see a factor of 10 difference in performance, >and in some comparative benchmarks on timing performance for tasking, we see >GNAT running faster than an Ada 83 compiler doing similar things. > >The other point is that you have to be very careful that you are in fact >looking at comparable situations. For example, comparing a GNAT compiler >where tasks are mapped to operating systems threads, with an Ada 83 >o > >compiler where the tasking maps to a single processing and is handled in >user mode is of course a completely meaningless comparison. > >One answer to your question if you are making this kind of apples/oranges >comparison is to use a similar kernel (e.g. FSU threads on GNAT). We find >on many targets that the use of FSU threads is MUCH more efficient than the >use of operating systems tasks. > >A more focussed reply is possible if you tell us exactly what is being >compared (what machines, what compilers, what thread packages). > >Robert Dewar >Ada Core Technologies > We had a similar problem when moving some Ada 83 code running on a Harris NightHawk to Ada 95 (Gnat) on an SG. It took a lot of effort to get the code running reasonably on the SG. The underlying problem was the mapping of the Ada Tasks to Unix threads. The Harris (now Concurrent) system was very good, reflecting the Real Time background of Harris. (I was not involved in the porting, I was just an interested observer.) -- Edmond Walsh