Abstract
A parallel system to solve complex computational problems involve multiple instruction, simultaneous flows, communication structures, synchronisation and competition conditions between processes, as well as mapping and balance of workload in each processing unit. The algorithm design and the facilities of processing units will affect the cost-performance ratio of any algorithm. We propose a generic methodology to capture the main characteristics of parallel algorithm design methodologies, and to add the experience of expert programmers through pattern languages. Robust design considering the relations between architectures and programs is a crucial item to implement high-quality parallel algorithms. We aim for a methodology to exploit algorithmic concurrencies and to establish optimal process allocation into processing units, exploring the lowest implementation details. Some basic examples are described, such as the k-means algorithm, to illustrate and to show the effectiveness of our methodology. Our proposal identifies essential design patterns to find models of Data Mining algorithms with string self-adaptive mechanisms for homogeneous and heterogeneous parallel architectures.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Fox, G.C., Williams, R.D., Messina, G.C.: Parallel computing works!. Elsevier, Amsterdam (2014)
Bientinesi, P., Herrero, J.R., Quintana-Ortí, E.S., Strzodka, R.: Parallel computing on graphics processing units and heterogeneous platforms. Concurr. Comput.: Pract. Exp. 27(6), 1525–1527 (2015)
Aliaga, J.I., Sáez, R.C., Ortí, E.S.Q.: Parallel solution of hierarchical symmetric positive definite linear systems. Appl. Math. Nonlinear Sci. 2(1), 201–212 (2017)
Hong, T.P., Lee, Y.C., Wu, M.T.: An effective parallel approach for genetic-fuzzy data mining. Expert Syst. Appl. 41(2), 655–662 (2014)
Foster, I.: Designing and Building Parallel Programs, vol. 78. Addison Wesley Publishing Company, Boston (1995)
Chandy, K.M., Taylor, S.: An Introduction to Parallel Programming. Jones and Bartlett Publishers, Inc., Burlington (1992)
Culler, D.E., Singh, J.P., Gupta, A.: Parallel Computer Architecture: A Hardware/Software Approach. Gulf Professional Publishing, Houston (1999). ISO 690
Mattson, T.G., Sanders, B., Massingill, B.: Patterns for Parallel Programming. Pearson Education, London (2004)
Jamali, S., Alizadeh, F., Sadeqi, S.: Task scheduling in cloud computing using particle swarm optimization. In: The Book of Extended Abstracts, p. 192 (2016)
Kirk, D.B., Wen-Mei, W.H.: Programming Massively Parallel Processors: A Hands-on Approach. Morgan kaufmann, Burlington (2016)
Barney, B.: Introduction to parallel computing. Lawrence Livermore National Laboratory, vol. 6, no. 13, p. 10 (2010)
Almasi, G.S., Gottlieb, A.: Highly Parallel Computing. The Benjamin/Cummings Publishing, San Francisco (1988)
Brown, J., Bowling, A., Flynn, T.: Models of quality of life: a taxonomy, overview and systematic review of the literature. In: European Forum on Population Ageing Research (2004)
Aloise, D., Deshpande, A., Hansen, P., Popat, P.: NP-hardness of Euclidean sum-of-squares clustering. Mach. Learn. 75, 245–249 (2009)
Benson, A.R., Ballard, G.: A framework for practical parallel fast matrix multiplication. ACM SIGPLAN Not. 50(8), 42–53 (2015)
Cui, H., Ruan, G., Xue, J., Xie, R., Wang, L., Feng, X.: A collaborative divide-and-conquer K-means clustering algorithm for processing large data. In: Proceedings of the 11th ACM Conference on Computing Frontiers, p. 20. ACM, May 2014
Rajeswari, K., Acharya, O., Sharma, M., Kopnar, M., Karandikar, K.: Improvement in K-means clustering algorithm using data clustering. In: 2015 International Conference on Computing Communication Control and Automation (ICCUBEA), pp. 367–369. IEEE (2015)
Törn, A., Žilinskas, A.: Clustering methods. In: Törn, A., Žilinskas, A. (eds.) Global Optimization. LNCS, vol. 350, pp. 95–116. Springer, Heidelberg (1989). https://doi.org/10.1007/3-540-50871-6_5
Acknowledgment
The authors thank the financial support by the Mexican CONACyT, as well as ABACUS: Laboratory of Applied Mathematics and High-Performance Computing of the Mathematics Department of CINVESTAV-IPN. Our institution provided the facilities to accomplish this work.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Serrano-Rubio, A.A., Meneses-Viveros, A., Morales-Luna, G.B., Paredes-López, M. (2019). Generic Methodology for the Design of Parallel Algorithms Based on Pattern Languages. In: Torres, M., Klapp, J., Gitler, I., Tchernykh, A. (eds) Supercomputing. ISUM 2018. Communications in Computer and Information Science, vol 948. Springer, Cham. https://doi.org/10.1007/978-3-030-10448-1_4
Download citation
DOI: https://doi.org/10.1007/978-3-030-10448-1_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-10447-4
Online ISBN: 978-3-030-10448-1
eBook Packages: Computer ScienceComputer Science (R0)