Abstract
Parallel programming continues to be a challenging task despite the many advances in parallel architectures and their wide availability in the cloud. The need both to partition the workload among various processing elements and to specify communication between them to share code and data, and to coordinate their tasks, requires from the developer a deep understanding of the problem, the parallel architecture and the programming language used in order to develop efficient parallel applications. This problem can be reduced significantly through the use of visual programming languages to hide most aspects related to the specification of communication and processes management. This paper presents VPPE, a novel Visual Parallel Programming Environment that allows developers to program parallel applications through organising workflows of interconnected icons. VPPE is a cloud environment that supports icons for specifying: I/O operations, workflow organisation, communication, and processing. Processing computing patterns supported so far include Single Program Multiple Data, Multiple Program Multiple Data, Pipeline, and Master–Slave. The paper highlights the design of VPPE based on a context-free graph grammar, its current implementation based on Java-MPI, its use in developing various parallel applications, and its evaluation compared to Java-MPI text-based programming.
Similar content being viewed by others
Notes
MapReduce is a programming model for processing and generating large data on a cluster.
References
Visual programming language. https://en.wikipedia.org/wiki/Visual_programming_language. Accessed 20 July 2016
Bohm, S., Bhálek, M.: Kaira: modelling and generation tool based on Petri nets for parallel applications. In: Proceedings of the 2011 UKSim 13th International Conference on Modelling and Simulation, UKSIM ’11, pp. 403–408. IEEE Computer Society, Washington, DC, USA (2011). https://doi.org/10.1109/UKSIM.2011.83
Chan, F., Cao, J., Chan, A.T.S., Zhang, K.: Visual programming support for graph-oriented parallel-distributed processing: research articles. Softw. Pract. Exper. 35(15), 1409–1439 (2005). https://doi.org/10.1002/spe.v35:15
Deelman, E., Singh, G., Su, M.H., Blythe, J., Gil, Y., Kesselman, C., Mehta, G., Vahi, K., Berriman, G.B., Good, J., Laity, A., Jacob, J.C., Katz, D.S.: Pegasus: A framework for mapping complex scientific workflows onto distributed systems. Sci. Program. 13(3), 219–237 (2005). https://doi.org/10.1155/2005/128026
Farkas, Z., Kacsuk, P.: P-grade portal: a generic workflow system to support user communities. Future Gener. Comput. Syst. 27(5), 454–465 (2011). https://doi.org/10.1016/j.future.2010.12.001
Schäfers, L., Scheidler, C., Krämer-Fuhrmann, O.: Trapper: a graphical programming environment for parallel systems. Future Gener. Comput. Syst. 11(4–5), 351–361 (1995). https://doi.org/10.1016/0167-739X(95)00007-F
Dózsa, G.: Visual programming to support parallel program design. In: Cunha, J.A.C., Kacsuk, P., Winter, S.C. (eds.) Parallel program development for cluster computing, pp. 17–44. Nova Science Publishers, Inc. (2001)
Quiroz-Fabián, J.L., Román-Alonso, G., Buenabad-Chávez, J., Castro-García, M.A., Aguilar-Cornejo, M., Buenabad-Chávez, J.: A graphical language for development of parallel applications. PDPTA-2013: International Conference on Parallel and Distributed Processing Techniques and Applications. PDPTA’13, pp. 672–678. CSREA Press, USA (2013)
Quiroz-Fabián, J.L., Román-Alonso, G., Castro-García, M.A., Buenabad-Chávez, J., Aguilar-Cornejo, M.: A graphical environment for development of mpi applications. In: Proceedings of the 21st European MPI Users’ Group Meeting, EuroMPI/ASIA ’14, pp. 125–126. ACM, New York, NY, USA (2014). https://doi.org/10.1145/2642769.2642793
Goble, C.A., Roure, D.D.: The impact of workflow tools on data-centric research. In: Hey, T., Tansley, S., Tolle, K.M. (eds.) The Fourth Paradigm, pp. 137–145. Microsoft Research, Redmond (2009)
Javed, A., Qamar, B., Jameel, M., Shafi, A., Carpenter, B.: Towards scalable java HPC with hybrid and native communication devices in MPJ express. Int. J. Parallel Program. 44(6), 1142–1172 (2016). https://doi.org/10.1007/s10766-015-0375-4
Drewes, F., Kreowski, H.J., Habel, A.: Hyperedge replacement, graph grammars. In: Handbook of Graph Grammars, Chap. 2, pp. 95–162. World Scientific, Singapore (1997) (Printed in Singapore)
Habel, A.: Hyperedge Replacement: Grammars and Languages. Springer, New York (1992)
Sastry, K., Goldberg, D., Kendall, G.: Genetic Algorithms, pp. 97–125. Springer, Boston (2005). https://doi.org/10.1007/0-387-28356-0_4
Li, R., Hu, H., Li, H., Wu, Y., Yang, J.: Mapreduce parallel programming model: a state-of-the-art survey. Int. J. Parallel Program. 44(4), 832–866 (2016). https://doi.org/10.1007/s10766-015-0395-0
Bruen, A., Dixon, R.: The n-queens problem. Discrete Math. 12(4), 393–395 (1975). https://doi.org/10.1016/0012-365X(75)90079-5
Jimenez-Alaniz, J., Medina-Banuelos, V., Yanez-Suarez, O.: Data-driven brain MRI segmentation supported on edge confidence and a priori tissue information. IEEE Trans. Med. Imag. 25(1), 74–83 (2006). https://doi.org/10.1109/TMI.2005.860999
Al-Mulhem, M., Ali, S.: Visual occam: syntax and semantics. Comput. Lang. 23(1), 1–24 (1997). https://doi.org/10.1016/S0096-0551(97)00005-2
Böhm, S., Běhálek, M., Garncarz, O.: Developing parallel applications using Kaira. In: Digital Information Processing and Communications: International Conference 2011, ICDIPC 2011, pp. 237–251. Springer, Berlin, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22389-1_22
Ce, Y., Zhen, X., Ji-zhou, S., Xiao-jing, M., Yan-yan, H., Hua-bei, W.: Paramodel: a visual modeling and code skeleton generation system for programming parallel applications. SIGPLAN Not. 43(4), 4–10 (2008). https://doi.org/10.1145/1374752.1374753
Chan, F., Cao, J.N., Chan, A.T.S., Guo, M.Y.: Programming support for MPMD parallel computing in ClusterGOP. IEICE Trans. Inf. Syst. 87(7), 1693–1702 (2004)
Chan, F., Cao, J., Guo, M.: ClusterGOP: A High-Level Programming Environment for Clusters, pp. 1–19. Wiley, London (2006). https://doi.org/10.1002/0471732710.ch1
Chan, F., Cao, J., Sun, Y.: High-level abstractions for message-passing parallel programming. Parallel Comput. 29(11–12), 1589–1621 (2003). https://doi.org/10.1016/j.parco.2003.05.008
Ferenc, D., Nabrzyski, J., Stroinski, M., Wierzejewski, P.: Visual MPI—a knowledge-based system for writing efficient MPI applications. In: Proceedings of the 6th European PVM/MPI Users’ Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface, European PVM/MPI 1999, pp. 257–264. Springer-Verlag, London, UK (1999)
Nenad, S., Kang, Z.: Visual programming for message-passing systems. Int. J. Softw. Eng. Knowl. Eng. 9(3), 397–423 (1999). https://doi.org/10.1142/S0218194099000231
Stankovic, N., Zhang, K.: Visual parallel programming with visper. In: High Performance Computing on the Information Superhighway, HPC Asia ’97, pp. 541–546. IEEE (1997). https://doi.org/10.1109/HPC.1997.592205
Stankovic, N., Zhang, K.: A distributed parallel programming framework. IEEE Trans. Softw. Eng. 28(5), 478–493 (2002). https://doi.org/10.1109/TSE.2002.1000451
Beguelin, A., Dongarra, J.J.: Graphical development tools for network-based concurrent supercomputing. In: Proceedings of the 1991 ACM/IEEE Conference on Supercomputing, Supercomputing ’91, pp. 435–444. ACM, New York, NY, USA (1991). https://doi.org/10.1145/125826.126059
Kacsuk, P., Dózsa, G., Fadgyas, T.: Designing parallel programs by the graphical language grapnel. Microprocess. Microprogram. 41(8–9), 625–643 (1996). https://doi.org/10.1016/0165-6074(96)00005-1
Kacsuk, P., Dózsa, G., Fadgyas, T., Lovas, R.: The GRED graphical editor for the GRADE parallel program development environment. Future Gener. Comput. Syst. 15(3), 443–452 (1999). https://doi.org/10.1016/S0167-739X(98)00088-0
Lee P. A.; Hamilton, M.D.P.S.: Visual language for parallel, object-oriented programming. Technical Report p. 200511, Department of Computing Science, Newcastle upon Tyne University, Newcastle, (England) (2004)
Newton, P., Browne, J.C.: The code 2.0 graphical parallel programming language. In: Proceedings of the 6th International Conference on Supercomputing, ICS ’92, pp. 167–177. ACM, New York, NY, USA (1992). https://doi.org/10.1145/143369.143405
Scheidler, C., Schäfers, L., Krämer-Fuhrmann, O.: Trapper: A graphical programming environment for industrial high-performance applications. In: Lecture Notes in Computer Science, PARLE ’93, pp. 403–413. Springer (1993). https://doi.org/10.1007/3-540-56891-3_32
Acknowledgements
This work has been funded by scholarship from CONACYT (Mexico).
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Quiroz-Fabián, J.L., Román-Alonso, G., Castro-García, M.A. et al. VPPE: A Novel Visual Parallel Programming Environment. Int J Parallel Prog 47, 1117–1151 (2019). https://doi.org/10.1007/s10766-019-00639-w
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-019-00639-w