Abstract
Distributed, large-scale computing is typically performed using textual general-purpose programming languages. This requires significant programming skills associated with the parallelisation and distribution of computations. In this paper, we present a visual (graphical) programming language called the Computation Application Language (CAL) to raise abstraction in distributed computing. CAL programs define computation workflows by visualising data flowing between computation units. The goal is to reduce the amount of traditional code needed and thus facilitate development even by non-professional programmers. The language follows the low-code paradigm, i.e. its implementation (the editor and the runtime system) is available online. We formalise the language by defining its syntax using a metamodel and specifying its semantics using a two-step approach. We define a translation of CAL into an intermediate language which is then defined using an operational approach. This formalisation was used to develop a programming and execution environment. The environment orchestrates computations by interpreting the intermediate language and managing the instantiation of computation modules using data tokens. We also present an explanatory case-study example that shows a practical application of the language.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
Data Availability
Not applicable
References
Richardson, C., Rymer, J.R., Mines, C., Cullen, A., Whittaker, D.: New development platforms emerge for customer-facing applications. Forrester report (2014)
Di Ruscio, D., Kolovos, D., de Lara, J., Pierantonio, A., Tisi, M., Wimmer, M.: Low-code development and model-driven engineering: Two sides of the same coin? Software and Systems Modeling 21(2), 437–446 (2022). https://doi.org/10.1007/s10270-021-00970-2
Trigo, A., Varajão, J., Almeida, M.: Low-code versus code-based software development: Which wins the productivity game? IT Professional 24(5), 61–68 (2022). https://doi.org/10.1109/MITP.2022.3189880
Noone, M., Mooney, A.: Visual and textual programming languages: a systematic review of the literature. Journal of Computers in Education 5(2), 149–174 (2018). https://doi.org/10.1007/s40692-018-0101-5
Kuhail, M.A., Farooq, S., Hammad, R., Bahja, M.: Characterizing visual programming approaches for end-user developers: A systematic review. IEEE Access 9, 14181–14202 (2021). https://doi.org/10.1109/ACCESS.2021.3051043
Silva, M., Dias, J..P., Restivo, A., Ferreira, H..S.: A review on visual programming for distributed computation in IoT. In: Paszynski, M., Kranzlmüller, D., Krzhizhanovskaya, V..V., Dongarra, J..J., Sloot, P..M..A. (eds.) Computational Science – ICCS 2021, pp. 443–457. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-77970-2_34
Cabot, J., Clariso, R.: Low code for smart software development. IEEE Software 40(1), 89–93 (2023). https://doi.org/10.1109/ms.2022.3211352
Peltz, C.: Web services orchestration and choreography. Computer 36(10), 46–52 (2003). https://doi.org/10.1109/mc.2003.1236471
Hager, G., Wellein, G.: Introduction to High Performance Computing for Scientists and Engineers. CRC Press, Boca Raton (2010)
Marek, K., Śmiałek, M., Rybiński, K., Roszczyk, R., Wdowiak, M.: BalticLSC: Low-code software development platform for large scale computations. Computing and Informatics 40(4), 734–753 (2021). https://doi.org/10.31577/cai_2021_4_734
Roszczyk, R., Wdowiak, M., Smialek, M., Rybinski, K., Marek, K.: BalticLSC: A low-code HPC platform for small and medium research teams. In: 2021 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (2021). https://doi.org/10.1109/vl/hcc51201.2021.9576305
Moody, D.: The “physics’’ of notations: Toward a scientific basis for constructing visual notations in software engineering. IEEE Transactions on Software Engineering 35(6), 756–779 (2009). https://doi.org/10.1109/tse.2009.67
Amaral, V., Norberto, B., Goulão, M., Aldinucci, M., Benkner, S., Bracciali, A., Carreira, P., Celms, E., Correia, L., Grelck, C., Karatza, H., Kessler, C., Kilpatrick, P., Martiniano, H., Mavridis, I., Pllana, S., Respício, A., Simão, J., Veiga, L., Visa, A.: Programming languages for data-intensive HPC applications: A systematic mapping study. Parallel Computing 91, 102584 (2020). https://doi.org/10.1016/j.parco.2019.102584
Diaz, J., Munoz-Caro, C., Nino, A.: A survey of parallel programming models and tools in the multi and many-core era. IEEE Transactions on Parallel and Distributed Systems 23(8), 1369–1386 (2012). https://doi.org/10.1109/tpds.2011.308
Brooks, F.P.: No silver bullet essence and accidents of software engineering. Computer 20(4), 10–19 (1987). https://doi.org/10.1109/mc.1987.1663532
Whitley, K.N.: Visual programming languages and the empirical evidence for and against. Journal of Visual Languages & Computing 8(1), 109–142 (1997). https://doi.org/10.1006/jvlc.1996.0030
Cunniff, N., Taylor, R.P.: Graphical vs. textual representation: An empirical study of novices’ program comprehension. In: Empirical Studies of Programmers: Second Workshop, pp. 114–131 (1987)
Navarro-Prieto, R., Cañas, J.J.: Are visual programming languages better? The role of imagery in program comprehension. International Journal of Human-Computer Studies 54(6), 799–829 (2001). https://doi.org/10.1006/ijhc.2000.0465
Larkin, J.H., Simon, H.A.: Why a diagram is (sometimes) worth ten thousand words. Cognitive science 11(1), 65–100 (1987)
Zernik, D., Snir, M., Malki, D.: Using visualization tools to understand concurrency. IEEE Software 9(3), 87–92 (1992). https://doi.org/10.1109/52.136185
Zhang, K., Ma, W.: Graphical assistance in parallel program development. In: Proceedings of 1994 IEEE Symposium on Visual Languages, pp. 168–170 (1994). https://doi.org/10.1109/vl.1994.363628
Zhang, K., Hintz, T., Ma, X.: The role of graphics in parallel program development. Journal of Visual Languages & Computing 10(3), 215–243 (1999). https://doi.org/10.1006/jvlc.1998.0109
Frost, R.: High-performance visual programming environments. ACM SIGGRAPH Computer Graphics 29(2), 45–48 (1995). https://doi.org/10.1145/204362.204373
Lee, P., Webber, J.: Taxonomy for visual parallel programming languages. Technical report, University of Newcastle upon Tyne, Computing Science (2003)
Isard, M., Budiu, M., Yu, Y., Birrell, A., Fetterly, D.: Dryad: distributed data-parallel programs from sequential building blocks. ACM SIGOPS Operating Systems Review 41(3), 59–72 (2007). https://doi.org/10.1145/1272998.1273005
Li, G.-D., Zhang, D.F.: Dependency graphs embedding confluent graph grammars. Journal of Software 15(7), 956–968 (2004)
Cao, J., Chan, A.T.S., Sun, Y.: GOP: A graph-oriented programming model for parallel and distributed systems. In: New Horizons of Parallel and Distributed Computing, pp. 21–36. Kluwer Academic Publishers, Boston (2005). https://doi.org/10.1007/0-387-28967-4_2
Browne, J.C., Azam, M., Sobek, S.: CODE: a unified approach to parallel programming. IEEE Software 6(4), 10–18 (1989). https://doi.org/10.1109/52.31648
Newton, P., Browne, J.C.: The CODE 2.0 graphical parallel programming language. In: Proceedings of the 6th International Conference on Supercomputing- ICS ‘92 (1992). https://doi.org/10.1145/143369.143405
Browne, J.C., Hyder, S.I., Dongarra, J., Moore, K., Newton, P.: Visual programming and debugging for parallel computing. IEEE Parallel & Distributed Technology: Systems & Applications 3(1), 75–83 (1995). https://doi.org/10.1109/88.384586
Stankovic, N., Kang, Z.: A distributed parallel programming framework. IEEE Transactions on Software Engineering 28(5), 478–493 (2002). https://doi.org/10.1109/tse.2002.1000451
Galicia, J.C., Garcia, F.R.M.: Graphical specification language for distributed systems. In: 2006 15th International Conference on Computing (2006). https://doi.org/10.1109/cic.2006.39
McCormick, P., Inman, J., Ahrens, J., Mohd-Yusof, J., Roth, G., Cummins, S.: Scout: a data-parallel programming language for graphics processors. Parallel Computing 33(10–11), 648–662 (2007). https://doi.org/10.1016/j.parco.2007.09.001
Böhm, S., Bĕhálek, M., Meca, O., Šurkovskỳ, M.: Visual programming of MPI applications: Debugging, performance analysis, and performance prediction. Computer Science and Information Systems 11(4), 1315–1336 (2014). https://doi.org/10.2298/csis131204052b
Zhang, D.Q., Zhang, K.: A visual programming environment for distributed systems. In: Proceedings of Symposium on Visual Languages, pp. 310–317 (1995). https://doi.org/10.1109/vl.1995.520824
Kacsuk, P., Cunha, J., Dózsa, G., Lourenço, J., Fadgyas, T., Antao, T.: A graphical development and debugging environment for parallel programs. Parallel Computing 22(13), 1747–1770 (1997). https://doi.org/10.1016/S0167-8191(96)00075-0
Delaitre, T., Zemerly, M.J., Justo, G., Audo, O., Winter, S.C.: EDPEPPS: an integrated environment for the parallel development life-cycle. Future Generation Computer Systems 16(6), 585–595 (2000). https://doi.org/10.1016/S0167-739X(99)00072-2
Quiroz-Fabián, J.L., Román-Alonso, G., Castro-García, M.A., Buenabad-Chávez, J., Boukerche, A., Aguilar-Cornejo, M.: VPPE: A novel visual parallel programming environment. International Journal of Parallel Programming 47(5), 1117–1151 (2019). https://doi.org/10.1007/s10766-019-00639-w
Meca, O., Böhms, S., Behálek, M., Jančar, P.: An approach to verification of MPI applications defined in a high-level model. In: 2016 16th International Conference on Application of Concurrency to System Design (ACSD), pp. 55–64(2016). https://doi.org/10.1109/ACSD.2016.17
Feng, A., Gardner, M., Feng, W.-c.: Parallel programming with pictures is a Snap. Journal of Parallel and Distributed Computing 105, 150–162 (2017). https://doi.org/10.1016/j.jpdc.2017.01.018
Maloney, J., Resnick, M., Rusk, N., Silverman, B., Eastmond, E.: The Scratch programming language and environment. ACM Transactions on Computing Education (TOCE) 10(4), 1–15 (2010). https://doi.org/10.1145/1868358.1868363
Böhm, S., Běhálek, M.: sage of Petri nets for high performance computing. In: Proceedings of the 1st ACM SIGPLAN Workshop on Functional High-performance Computing, pp. 37–48 (2012). https://doi.org/10.1145/2364474.2364481
Jensen, K., Kristensen, L.M.: Coloured Petri Nets: Modelling and Validation of Concurrent Systems. Springer, Berlin, Heidelberg (2009). https://doi.org/10.1007/b95112
Liu, J., Pacitti, E., Valduriez, P., Mattoso, M.: A survey of data-intensive scientific workflow management. Journal of Grid Computing 13, 457–493 (2015). https://doi.org/10.1007/s10723-015-9329-8
Kacsuk, P., Farkas, Z., Kozlovszky, M., Hermann, G., Balasko, A., Karoczkai, K., Marton, I.: WS-PGRADE/gUSE generic DCI gateway framework for a large variety of user communities. Journal of Grid Computing 10(4), 601–630 (2012). https://doi.org/10.1007/s10723-012-9240-5
Kacsuk, P.(ed.):Science Gateways for Distributed Computing Infrastructures. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-11268-8
Kacsuk, P., Kovács, J., Farkas, Z.: The flowbster cloud-oriented workflow system to process large scientific data sets. Journal of Grid Computing 16(1), 55–83 (2018). https://doi.org/10.1007/s10723-017-9420-4
Gesing, S., Atkinson, M., Klampanos, I., Galea, M., Berthold, M.R., Barbera, R., Scardaci, D., Terstyanszky, G., Kiss, T., Kacsuk, P.: The demand for consistent web-based workflow editors. In: Proceedings of the 8th Workshop on Workflows in Support of Large-Scale Science, pp. 112–123. Association for Computing Machinery, Denver, Colorado (2013). https://doi.org/10.1145/2534248.2534260
Hariri, S., Kim, D., Kim, Y., Ra, I.:Virtual distributed computing environment. Technical Report AFRL-IF-RS-TR-2000-24, Syracuse University (2000)
Sampedro, Z., Hauser, T., Sood, S.: Sandstone HPC: A domain-general gateway for new HPC users. In: Proceedings of the Practice and Experience in Advanced Research Computing 2017 on Sustainability, Success and Impact, pp. 1–7 (2017). https://doi.org/10.1145/3093338.3093360
Calegari, P., Levrier, M., Balczyński, P.: Web portals for high-performance computing: a survey. ACM Transactions on the Web (TWEB) 13(1), 1–36 (2019). https://doi.org/10.1145/3197385
Tekinerdogan, B., Arkin, E.: ParDSL: a domain-specific language framework for supporting deployment of parallel algorithms. Software & Systems Modeling 18(5), 2907–2935 (2019). https://doi.org/10.1007/s10270-018-00705-w
Bisong, E.: Kubeflow and Kubeflow pipelines. In: Building Machine Learning and Deep Learning Models on Google Cloud Platform, pp. 671–685. Apress, Berkeley (2019). https://doi.org/10.1007/978-1-4842-4470-8_46
Burns, B., Beda, J., Hightower, K.: Kubernetes: up and Running: Dive Into the Future of Infrastructure. O’Reilly Media, (2019)
Zandifar, M., Abdul Jabbar, M., Majidi, A., Keyes, D., Amato, N.M., Rauchwerger, L.: Composing algorithmic skeletons to express high-performance scientific applications. In: Proceedings of the 29th ACM on International Conference on Supercomputing, pp. 415–424 (2015). https://doi.org/10.1145/2751205.2751241
Anderson, D.P.: BOINC: a platform for volunteer computing. Journal of Grid Computing 18, 99–122 (2020). https://doi.org/10.1007/s10723-019-09497-9
Anderson, D.P., Cobb, J., Korpela, E., Lebofsky, M., Werthimer, D.: Setihome: An experiment in public-resource computing. Commun. ACM 45(11), 56–61 (2002). https://doi.org/10.1145/581571.581573
Kleppe, A.: Software Language Engineering: Creating Domain-Specific Languages Using Metamodels, 1st edn. Addison-Wesley Professional, (2008)
Slonneger, K., Kurtz, B.L.: Formal Syntax and Semantics of Programming Languages. Addison-Wesley, (1995)
Plotkin, G.D.: A structural approach to operational semantics. The Journal of Logic and Algebraic Programming 60–61, 17–139 (2004). https://doi.org/10.1016/j.jlap.2004.05.001
Toth, P., Vigo, D.: Models, relaxations and exact approaches for the capacitated vehicle routing problem. Discrete Applied Mathematics 123(1–3), 487–512 (2002). https://doi.org/10.1016/S0166-218X(01)00351-1
Funding
This work is partially funded by the European Regional Development Fund, Interreg Baltic Sea Region Programme, project BalticLSC #R075
Author information
Authors and Affiliations
Contributions
Kamil Rybiński and Michał Śmiałek are the primary authors of the language, have contributed to its syntax and defined its semantics. Agris Sostaks have contributed to the language syntax and semantics and have prepared the syntax descriptions and the case study example. Krzysztof Marek has contributed to language usability and has participated in formulating textual content. Radosław Roszczyk and Marek Wdowiak have contributed to language implementation and have participated in formulating textual content. All authors read and approved the final manuscript
Corresponding author
Ethics declarations
Ethics approval and consent to participate
Not applicable
Consent for publication
Not applicable
Conflict of interest
The authors have no competing interests to declare that are relevant to the content of this article
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
All author’s are contributed equally to this work.
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Rybiński, K., Śmiałek, M., Sostaks, A. et al. Visual Low-Code Language for Orchestrating Large-Scale Distributed Computing. J Grid Computing 21, 39 (2023). https://doi.org/10.1007/s10723-023-09666-x
Received:
Accepted:
Published:
DOI: https://doi.org/10.1007/s10723-023-09666-x