Abstract
Traditional model management programs, such as transformations, often perform poorly when dealing with very large models. Although many such programs are inherently parallelisable, the execution engines of popular model management languages were not designed for concurrency. We propose a scalable data and rule-parallel solution for an established and feature-rich model validation language (EVL). We highlight the challenges encountered with retro-fitting concurrency support and our solutions to these challenges. We evaluate the correctness of our implementation through rigorous automated tests. Our results show up to linear performance improvements with more threads and larger models, with significantly faster execution compared to interpreted OCL.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Equal objects must have the same hash code, but unequal objects do not necessarily have different hash codes.
- 2.
Parallel execution of fixes is beyond the scope of this paper.
- 3.
- 4.
We use the ParallelOld garbage collector since we’re interested in throughput.
References
Kolovos, D.S., Paige, R.F., Polack, F.A.C.: Scalability: the holy grail of model driven engineering. In: Proceedings of the First International Workshop on Challenges in Model Driven Software Engineering, Toulouse, pp. 10–14 (2008)
Kolovos, D.S., Rose, L.M., Matragkas, N., Paige, R.F., Guerra, E., Cuadrado, J.S., De Lara, J., Ràth, I., Varrò, D., Tisi, M., Cabot, J.: A research roadmap towards achieving scalability in model driven engineering. In: Proceedings of the Workshop on Scalability in Model Driven Engineering, Budapest (2013). Article No. 2
Parallel EVL implementation. https://github.com/epsilonlabs/parallel-erl
Smith, M.: Parallel model validation. Masters’ thesis, University of York (2015)
Joualt, F., Allilaire, F., Bèzivin, J., Kurtev, I.: ATL: a model transformation tool. Sci. Comput. Program. 72(1–2), 31–39 (2008)
Jouault, F., Tisi, M.: Towards incremental execution of ATL transformations. In: Tratt, L., Gogolla, M. (eds.) ICMT 2010. LNCS, vol. 6142, pp. 123–137. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-13688-7_9
Tisi, M., Martínez, S., Jouault, F., Cabot, J.: Lazy execution of model-to-model transformations. In: Whittle, J., Clark, T., Kühne, T. (eds.) MODELS 2011. LNCS, vol. 6981, pp. 32–46. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-24485-8_4
Tisi, M., Martínez, S., Choura, H.: Parallel execution of ATL transformation rules. In: Moreira, A., Schätz, B., Gray, J., Vallecillo, A., Clarke, P. (eds.) MODELS 2013. LNCS, vol. 8107, pp. 656–672. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-41533-3_40
Benelallam, A., Gómez, A., Tisi, M., Cabot, J.: Distributed model-to-model transformation with ATL on MapReduce. In: Proceedings of the 2015 ACM SIGPLAN International Conference on Software Language Engineering, pp. 37–48 (2015)
Martínez, S., Tisi, M., Douence, R.: Reactive model transformation with ATL. Sci. Comput. Program. 136(C), 1–16 (2017)
Object Constraint Language (OCL) specification. http://www.omg.org/spec/OCL/About-OCL/
Cabot, J., Teniente, E.: Incremental evaluation of OCL constraints. In: Dubois, E., Pohl, K. (eds.) CAiSE 2006. LNCS, vol. 4001, pp. 81–95. Springer, Heidelberg (2006). https://doi.org/10.1007/11767138_7
Tisi, M., Douence, R., Wagelaar, D.: Lazy evaluation for OCL. In: Proceedings of the 15th International Workshop on OCL and Textual Modeling Co-located with 18th International Conference on Model Driven Engineering Languages and Systems, Ottawa, pp. 46–61 (2015)
Vajk, T., Dávid, Z., Asztalos, M., Mezei, G., Levendovszky, T.: Runtime model validation with parallel object constraint language. In: Proceedings of the 8th International Workshop on Model-Driven Engineering, Verification and Validation, Wellington (2011). Article No. 7
Paige, R.F., Kolovos, D.S., Rose, L.M., Drivalos, N., Polack, F.A.C.: The design of a conceptual framework and technical infrastructure for model management language engineering. In: Proceedings of the 2009 14th IEEE International Conference on Engineering of Complex Computer Systems, Potsdam, pp. 162–171 (2009)
Kolovos, D.S., Paige, R.F., Polack, F.A.C.: The epsilon object language (EOL). In: Rensink, A., Warmer, J. (eds.) ECMDA-FA 2006. LNCS, vol. 4066, pp. 128–142. Springer, Heidelberg (2006). https://doi.org/10.1007/11787044_11
Kolovos, D.S., Paige, R.F., Polack, F.A.C.: On the evolution of OCL for capturing structural constraints in modelling languages. In: Abrial, J.-R., Glässer, U. (eds.) Rigorous Methods for Software Construction and Analysis. LNCS, vol. 5115, pp. 204–218. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-11447-2_13
Goetz, B., Peierls, T., Bloch, J., Bowbeer, J., Holmes, D., Lea, D.: Java Concurrency in Practice. Addison-Wesley, Boston (2005)
java.util.concurrent.ExecutorService. https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/ExecutorService.html
java.util.concurrent.ThreadPoolExecutor. https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/ThreadPoolExecutor.html
java.util.concurrent.ConcurrentLinkedDeque. https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/ConcurrentLinkedDeque.html
java.util.concurrent.ConcurrentHashMap. https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/ConcurrentHashMap.html
Brunelière, H., Cabot, J., Dupé, G., Madiot, F.: MoDisco: a model driven reverse engineering framework. Inf. Softw. Technol. 56(8), 1012–1032 (2014)
Eclipse platform EMF models. http://atenea.lcc.uma.es/index.php/Main_Page/Resources/LinTra#Input_Models_3
Burgeño, L., Troya, J., Wimmer, M., Vallecillo, A.: Parallel in-place model transformations with LinTra. In: Proceedings of the 3rd Workshop on Scalable Model Driven Engineering, L’Aquila, pp. 52–62 (2015)
Goetz, B.: From Concurrent to Parallel. QCon 2017, London. https://www.infoq.com/presentations/tecniques-parallelism-java
Incremental EVL. https://github.com/epsilonlabs/incremental-evl
Kolovos, D.S., Paige, R.F.: The epsilon pattern language. In: Proceedings of the 9th International Workshop on Modelling in Software Engineering, Buenos Aires, pp. 54–60 (2017)
Kolovos, D.S.: Establishing correspondences between models with the epsilon comparison language. In: Paige, R.F., Hartman, A., Rensink, A. (eds.) ECMDA-FA 2009. LNCS, vol. 5562, pp. 146–157. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02674-4_11
Rose, L.M., Paige, R.F., Kolovos, D.S., Polack, F.A.C.: The epsilon generation language. In: Schieferdecker, I., Hartman, A. (eds.) ECMDA-FA 2008. LNCS, vol. 5095, pp. 1–16. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-69100-6_1
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Madani, S., Kolovos, D.S., Paige, R.F. (2018). Parallel Model Validation with Epsilon. In: Pierantonio, A., Trujillo, S. (eds) Modelling Foundations and Applications. ECMFA 2018. Lecture Notes in Computer Science(), vol 10890. Springer, Cham. https://doi.org/10.1007/978-3-319-92997-2_8
Download citation
DOI: https://doi.org/10.1007/978-3-319-92997-2_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-92996-5
Online ISBN: 978-3-319-92997-2
eBook Packages: Computer ScienceComputer Science (R0)