-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
YAMTL batch solution for VIATRA CPS Benchmark #23
Comments
Dear Artur, thank you very much for reaching out and especially for choosing the VIATRA CPS benchmark for your tool. I can't tell exactly when we will be able to work on this, but if you are familiar with Eclipse IDE, Oomph, and Maven/Tycho, you should be able to get a development environment set up for the complete benchmark as described here and try to create an initial Pull Request. If you run into any issues, please let us know. Cheers |
Dear Ábel, Thank you for your prompt reply. I'm afraid I did not get too far with the Oomph setup when I tried to install it. That's why I opted for dissecting the framework in order to reuse relevant components. On the one hand, the framework is quite comprehensive, which also means that it is reasonably complex to extend by someone who has not participated in its development. On the other hand, I don't know how a solution for the benchmark can be tested and run locally - without using the Jenkins server. Presumably, the integration can be done fairly quickly by an expert in the framework. This seems to be the most effective way of implementing the integration. I will be happy to help if there is any problem. Thanks again! |
I had another go at installing the benchmark using the Oomph installer. In the advanced mode, regarding variables in the Contributor's guide, I could not find where to set them up. Some guidance would be helpful - I looked at Oomph's user guide but did not find where to set them up. In the simple mode, going ahead with the installation without setting those variables the installer shows this output log. Thanks. |
Dear Artur, I'm sorry for not replying for so long, but I have not had any time to work on the CPS benchmark. However, I have managed to find time to work out a few problems related to setting up the development environment.
The next step will be to pull your code into the CPS benchmark repository on a new branch, subclass each test class in cps m2m.tests to make them run with a transformation not part of the VIATRA CPS example and wire it into the rcpapplication product. Alternatively, the m2m.tests code should be refactored a bit in a way that the whole test suite can be run with a provided transformation wrapper and reversing the dependency between m2m.tests and the various transformation implementations (their test harness code to be precise). I will see when I will have time to work on the next steps, but you are still welcome to go ahead if you got the IDE set up with the Eclipse Installer. |
I have integrated the YAMTL implementation on branch issues/23. The functional tests are not yet executed and the support in the benchmark application is hard-coded, but it ran without errors on my machine. I'm currently in the process of getting the branch built on our CI server. Note that it would be nice if YAMTL would be available as OSGi bundle from a P2 update site with proper dependencies instead of having a Maven jar that is an OSGi bundle wrapped in another OSGi bundle in order to export the packages correctly and integrate into a Maven/Tycho build. |
The first successful benchmark run with the integrated YAMTL solution is published here: https://build.incquerylabs.com/jenkins/job/viatra-cps-benchmark/job/issues%252F23/18/artifact/benchmark/cpsBenchmarkReport.html (separate diagrams in https://build.incquerylabs.com/jenkins/job/viatra-cps-benchmark/job/issues%252F23/18/artifact/benchmark/diagrams/ ) |
Dear Ábel, Thank you very much for your support. At the moment, I am working on an incremental version of the transformation, which should be ready soon (towards the end of this week). It would be great if we could use this momentum to integrate it as well. Regarding the update site, I made a deliberate decision to use plain Java dependencies to develop YAMTL. I'm afraid I am not planning to configure an update site as a default option. If needed, a basic wrapper update site can be developed but that would add one more layer to the current onion. Regarding the results above, the report refers to Thanks again. |
Sure, you can pull the branch and push commits on your fork or just let me know when to update the yamtl.jar and the transformation implementations.
Sure, I understand, as long as the standalone yamtl.jar is available, it can be updated in the yamtl.bundle plugin.
Sorry, I linked the wrong build, this is the one with YAMTL: https://build.incquerylabs.com/jenkins/job/viatra-cps-benchmark/job/issues%252F23/18/artifact/benchmark/cpsBenchmarkReport.html The configurations are stored in the scripts/config folder, the benchmark is controlled by the data.json file. This configuration uses our "statistics based" model generation case and runs the most relevant tools. You can take a look at the other configurations (especially |
Dear Ábel, Thank you very much for the updates - the results are consistent with those obtained in YAMTL's adaptation of the CPS benchmark for batch transformations. On the other hand, apologies for not having pushed the results yet. My intention is to do this by extending the framework directly if the configuration works (according to Sirius
Workspace configurationThe workspace is not configured automatically and the git repository included in the Git perspective does not contain code about the CPS benchmark. After cloning https://github.com/viatra/viatra-cps-benchmark, when importing the Maven project with Any guidance on configuring the workspace so as to be able to extend it directly would be appreciated. After running
The problems that are reported by Eclipse after importing Thanks again! |
Did you make sure to check both VIATRA CPS Example and CPS Benchmark on the projects page?
Importing as a Maven project was never tested and is not expected to work. The Oomph setup is meant to import all projects and their dependencies are provided by the Target platform. |
I followed your instructions: https://github.com/viatra/viatra-cps-benchmark/wiki/Contributor's-Guide
Then something did not work in the installation process. After inspecting the progress error log, the error seems to be due to
I have to leave the office for the rest of the day and will get back to this next week. |
You may have used a read-write clone url instead of the read only. |
Thanks and, on the contrary, after setting Just some final issues: After checking out the branch After checking out the same branch on
Finally, which class contains the main method/test to run the benchmark locally? |
Dear Ábel, In the meantime, I have pushed a first version of the incremental YAMTL variant to YAMTL's repository. It consists of two new projects that should allow us to compare the performance of YAMTL both in normal and incremental execution modes with the incremental variant of the CPS2DEP transformation. Both projects are passing the benchmark sanity tests and instructions to execute them can be found in their corresponding
The solution that was integrated into the benchmark could be renamed to Let me know if there is any problem. Thank you very much in advance! |
Dear VIATRA CPS benchmark maintainers,
My name is Artur Boronat from the University of Leicester and I have been working with the VIATRA CPS benchmark during the past recent months. Specifically, I would like to contribute a new (batch) solution based on YAMTL (https://yamtl.github.io/), our new MT engine.
In order to familiarize myself with the benchmark framework, I extracted relevant parts from it and used them in independent projects, which are publicly available in this GitHub repository. The main differences are that dependencies to the VIATRA CPS benchmark framework have been reimplemented:
These changes also mean that the actual results obtained, although valid, may differ from the ones that the live benchmark will obtain. I would be very grateful if someone could integrate my solution into the live benchmark and let me know how to inspect the results.
The solution that I would like to contribute is this one, where the
readme
file explains where to find the relevant classes, which should facilitate the integration of the solution into the live benchmark. Note that this solution only implements the batch component of the benchmark and, thus, it only makes sense to compare it with the other batch solutions.I have checked that the contributed solution passes the VIATRA CPS sanity checks from org.eclipse.viatra.examples.cps.xform.m2m.tests. However I had to make a few changes as explained here. Let me know if those changes sound acceptable.
Please let me know if you need any help in case you'd encounter problems during the integration process. I will be glad to discuss the results.
Thank you very much in advance.
Kind regards,
Artur
The text was updated successfully, but these errors were encountered: