[great-users] RTTGenerator

Belser, Valentin lrt85082 at stud.uni-stuttgart.de
Fri Dec 1 10:31:56 CST 2017


Hi Kevin,


thanks for the explanation.

Yes, I have done some performance measurements for trafo's without "TracesTo" connections, measuring the runtime before and after each call of:

"RTTGenerator::Instance()->generateRule(int id, const std::string &name);"

For trafo's with a low number of rule executions (< 10 thousand) the call takes a couple of milliseconds only. However, it was discovered that the runtime of the RTTGenerator increases somewhat linearly with each following rule call (the calculated gradient is about 0.025 ms/rule execution). So for 40.000 rule executions the RTTGenerator takes about 1000 ms for each rule.


In one combination of a trafo + input-model, with about 70.000 rule executions, 97 percent of the overall trafo-runtime was caused by the RTTGenerator. By uncommenting the lines in the source code before compiling I was able to reduce the overall runtime by this amount.


Best regards,



Valentin


________________________________
Von: great-users <great-users-bounces at list.isis.vanderbilt.edu> im Auftrag von Kevin Smyth <kevin.m.smyth at gmail.com>
Gesendet: Donnerstag, 9. November 2017 20:21:17
An: A list for GReAT users to share bugs, fixes and ideas
Betreff: Re: [great-users] RTTGenerator

Hi Valentin,

The idea is that the transformation can note what FCO in the input model corresponds to which FCO in the output model. You can do this in your transformation's Rule by creating a TracesTo connection between PatternClasses.

If you have no TracesTo connections in your transform, I wouldn't think the performance impact is noticeable. Have you measured the performance?

Kevin

On Tue, Oct 17, 2017 at 9:04 AM, Belser, Valentin <lrt85082 at stud.uni-stuttgart.de<mailto:lrt85082 at stud.uni-stuttgart.de>> wrote:

Hello everybody,


I have some question considering the use of the "RTTGenerator". So far I have not found anything about it in the documentation, which is why I am contacting you.

The Translator of the CodeGenerator creates inside the "operator()" of every rule the following line of code:


RTTGenerator::Instance()->generateRule(int id, const std::string &name);


What is the underlying idea of the RTTGenerator?

As far as I can see it writes to a generated mga-file "RTT_NameOfInputFile.mga" for every rule execution. I was wondering whether it might be possible to uncomment the code for runtime improvements of large transformations or does the transformation read from this file during execution, thus is required for correct output?

I am looking forward to hear from you.


Best regards,


Valentin


_______________________________________________
great-users mailing list
great-users at list.isis.vanderbilt.edu<mailto:great-users at list.isis.vanderbilt.edu>
http://list.isis.vanderbilt.edu/cgi-bin/mailman/listinfo/great-users


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.isis.vanderbilt.edu/pipermail/great-users/attachments/20171201/aec45a38/attachment.html>


More information about the great-users mailing list