Generic Methodology for the Design of Parallel Algorithms Based on Pattern Languages
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.
KeywordsPattern language Methodology Parallel algorithm design Data Mining algorithms
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.
- 1.Fox, G.C., Williams, R.D., Messina, G.C.: Parallel computing works!. Elsevier, Amsterdam (2014)Google Scholar
- 7.Culler, D.E., Singh, J.P., Gupta, A.: Parallel Computer Architecture: A Hardware/Software Approach. Gulf Professional Publishing, Houston (1999). ISO 690Google Scholar
- 9.Jamali, S., Alizadeh, F., Sadeqi, S.: Task scheduling in cloud computing using particle swarm optimization. In: The Book of Extended Abstracts, p. 192 (2016)Google Scholar
- 10.Kirk, D.B., Wen-Mei, W.H.: Programming Massively Parallel Processors: A Hands-on Approach. Morgan kaufmann, Burlington (2016)Google Scholar
- 11.Barney, B.: Introduction to parallel computing. Lawrence Livermore National Laboratory, vol. 6, no. 13, p. 10 (2010)Google Scholar
- 13.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)Google Scholar
- 16.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 2014Google Scholar
- 17.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)Google Scholar