Volume 12 Number 6 (June. 2017)
Home > Archive > 2017 > Volume 12 Number 6 (June. 2017) >
JSW 2017 Vol.12(6): 406-425 ISSN: 1796-217X
doi: 10.17706/jsw.12.6.406-425

A Systematic Method for Detecting Parallelized Software Bottlenecks and Suggesting Modifications: The Case of the Expectation Maximization Algorithm

Otávio Cordeiro Siqueira de Oliveira1, Marco Túlio Chella1, Hendrik Teixeira Macedo2*, Leonardo Nogueira Matos2
1Universidade Tiradentes, Aracaju, Sergipe, Brazil.
2Universidade Federal de Sergipe, São Cristóvão, Sergipe, Brazil.

Abstract—Parallelized algorithms can distribute the workload on the available multi-core processors. Graphical Processing Units (GPU) began to be used in general purpose computing thanks to its ability to simultaneously perform thousands of operations in their parallel coprocessors. Unfortunately, providing parallelized versions of typical sequential routines is not a trivial task. Even with the advent of CUDA, the NVIDIA’s more intuitive solution for GPU programming, developers need to acquire a deep knowledge of GPU architecture and the rationale of the target algorithms to optimize resources usage and reduce processing time. This paper proposes a systematic method for analyzing parallelized algorithms and propose guidelines for CUDA code refactoring in such a way faster and more efficient software, regarding hardware resources consumption, could be constructed. One of such kind of software is Automatic Speech Recognition (ASR) systems. Mainstream approaches for ASR use the Expectation Maximization (EM) algorithm to train Gaussian Mixture Models (GMM) to provide an Acoustic Model for ASR. These training phase is usually extensive time-consuming and so it’s well suited for a parallelized solution approach. We show the feasibility of our method identifying important issues in a literature's parallelized implementation of EM and further refactoring suggestion to enhance memory occupancy and decrease processing time. The results show a processing speedup of the EM algorithm around 40x (minimum) and 61x (maximum) when compared to the control version. The method was also effective in the improvement of the values for all the concerned performance metrics for GPU-based solutions.

Index Terms—Expectation maximization, CUDA, parallelized code refactoring, software development process.


Cite: Otávio Cordeiro Siqueira de Oliveira, Marco Túlio Chella, Hendrik Teixeira Macedo, Leonardo Nogueira Matos, "A Systematic Method for Detecting Parallelized Software Bottlenecks and Suggesting Modifications: The Case of the Expectation Maximization Algorithm," Journal of Software vol. 12, no. 6, pp. 406-425, 2017.

General Information

ISSN: 1796-217X
Frequency: Monthly
Editor-in-Chief: Prof. Antanas Verikas
Executive Editor: Ms. Yoyo Y. Zhou
Abstracting/ Indexing: DBLP, EBSCO, ProQuest, INSPEC, ULRICH's Periodicals Directory, WorldCat, CNKI,etc
E-mail: jsw@iap.org
  • Dec 22, 2017 News!

    Papers published in JSW Vol. 12, No. 1- Vol. 12, No. 11 have been indexed by DBLP.    [Click]

  • Dec 22, 2017 News!

    [CFP] 2018 the annual meeting of JSW Editorial Board, ICCSM 2018, will be held in Nice, France, July 17-19.   [Click]

  • Dec 22, 2017 News!

    Vol.12, No.6 has been indexed by EI (Inspec).    [Click]

  • Dec 29, 2017 News!

    Vol 12, No. 12 has been published with online version 6 original aritcles from 4 countries are published in this issue.      [Click]

  • Dec 22, 2017 News!

    Vol.12, No.7 has been indexed by EI (Inspec).   [Click]