Abstract
This paper describes DinamicaVM, the virtual machine that runs applications developed in Dinamica EGO. Dinamica EGO is a framework used in the development of geomodeling applications. Behind its multitude of visual modes and graphic elements, Dinamica EGO runs on top of a virtual machine. This machine - DinamicaVM - offers developers a rich instruction set architecture, featuring elements such as map and reduce, which are typical in the functional/parallel world. Ensuring that these very expressive components work together efficiently is a challenging endeavour. Dinamica’s runtime addresses this challenge through a suite of optimizations, which borrows ideas from functional programming languages, and leverages specific behavior expected in geo-scientific programs. As we show in this paper some of these optimizations deliver speedups of almost 50x, and are key to the industrial-quality performance of one of the world’s most widely used geomodeling tools.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
- 3.
- 4.
Prefetching is part of the implementation of Window; it does not require any program transformation.
- 5.
- 6.
- 7.
References
Bohm, C., Jacopini, G.: Flow diagrams, turing machines and languages with only two formation rules. Commun. ACM 9(5), 366–371 (1966)
Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Zadeck, F.K.: Efficiently computing static single assignment form and the control dependence graph. TOPLAS 13(4), 451–490 (1991)
Dean, J., Ghemawat, S.: Mapreduce: simplified data processing on large clusters. Commun. ACM 51(1), 107–113 (2008)
Eastman, J.R.: Pushbroom algorithms for calculating distances in raster grids. In: Auto-Carto, pp. 288–297. ASPRS and ACSM (1989)
Ferreira, B.M., ao Pereira, F.M.Q., Rodrigues, H., Soares-Filho, B.S.: Optimizing a geomodeling domain specific language. In: Simposio Brasileiro de Linguagens de Programacao. Sociedade Brasileira de Computacao (2012)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing Co. Inc., Boston (1995)
Gardner, M.: Mathematical games - the fantastic combination of John conway’s new solitaire game life. Sci. Am. 1(223), 120–123 (1970)
Gill, A., Launchbury, J., Peyton Jones, S.L.: A short cut to deforestation. In: Proceedings of the Conference on Functional Programming Languages and Computer Architecture, FPCA 1993, pp. 223–232. ACM, New York (1993). http://doi.acm.org/10.1145/165180.165214
Hajek, F., Ventresca, M.J., Scriven, J., Castro, A.: Regime-building for REDD+: evidence from a cluster of local initiatives in south-eastern Peru. Environ. Sci. Policy 14(2), 201–215 (2011)
Hils, D.D.: Visual languages and computing survey: data flow visual programming languages. J. Visual Lang. Comput. 3, 69–101 (1992)
Huong, H.T.L., Pathirana, A.: Urbanization and climate change impacts on future urban flood risk in can tho city, Vietnam. Hydrol. Earth Syst. Sci. Discuss. 8(6), 10781–10824 (2011)
Mas, J.F., Kolb, M., Paegelow, M., Camacho Olmedo, M.T., Houet, T.: Inductive pattern-based land use/cover change models: a comparison of four software packages. Environ. Model. Softw. 51, 94–111 (2014). http://dx.doi.org/10.1016/j.envsoft.2013.09.010
Nepstad, D., Soares-Filho, B., Merry, F., Lima, A., Moutinho, P., Carter, J., Bowman, M., Cattaneo, A., Rodrigues, H., Schwartzman, S., McGrath, D., Stickler, C., Lubowski, R., Piris-Cabeza, P., Rivero, S., Alencar, A., Almeida, O., Stella, O.: The end of deforestation in the Brazilian amazon. Science 326, 1350–1351 (2009)
Nielson, H.R., Nielson, F.: Semantics with Applications - A Formal Introduction. Wiley, New York (1992)
Pérez-Vega, A., Mas, J.F., Ligmann-Zielinska, A.: Comparing two approaches to land use/cover change modeling and their implications for the assessment of biodiversity loss in a deciduous tropical forest. Environ. Model. Softw. 29(1), 11–23 (2012)
Soares-Filho, B., Nepstad, D., Curran, L., Cerqueira, G., Garcia, R., Ramos, C., Voll, E., McDonald, A., Lefebvre, P., Schlesinger, P.: Modelling conservation in the Amazon basin. Nature 440, 520–523 (2006)
Soares-Filho, B., Pennachin, C., Cerqueira, G.: Dinamica - a stochastic cellular automata model designed to simulate the landscape dynamics in an Amazonian colonization frontier. Ecol. Model. 154, 217–235 (2002)
Soares-Filho, B., Rajo, R., Macedo, M., Carneiro, A., Costa, W., Coe, M., Rodrigues, H., Alencar, A.: Cracking Brazil’s forest code. Science 344(6182), 363–364 (2014). http://www.sciencemag.org/content/344/6182/363.short
Thapa, R.B., Murayama, Y.: Urban growth modeling of Kathmandu metropolitan region, Nepal. Comput. Environ. Urban Syst. 35(1), 25–34 (2011)
Tomlin, C.D.: Geographic Information Systems and Cartographic Modelling. Prentice-Hall, Englewood Cliffs (1990)
Wadler, P.: Deforestation: transforming programs to eliminate trees. Theor. Comput. Sci. 73(2), 231–248 (1988)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Ferreira, B.M., Soares-Filho, B.S., Pereira, F.M.Q. (2015). The Dinamica Virtual Machine for Geosciences. In: Pardo, A., Swierstra, S. (eds) Programming Languages. SBLP 2015. Lecture Notes in Computer Science(), vol 9325. Springer, Cham. https://doi.org/10.1007/978-3-319-24012-1_4
Download citation
DOI: https://doi.org/10.1007/978-3-319-24012-1_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-24011-4
Online ISBN: 978-3-319-24012-1
eBook Packages: Computer ScienceComputer Science (R0)