Parallelizing Audio Analysis Applications - A Case Study

As multicore computers become widespread, the need for software programmers to decide on the most effective parallelization techniques becomes very prominent. In this case study, we examined a competition in which four teams of graduate students parallelized two sequential audio analysis application...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:ICSE-SEET 2017 : proceedings, 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering and Education Track : 20-28, May 2017, Buenos Aires, Argentina s. 57 - 66
Hlavní autoři: Jannesari, Ali, Ul Huda, Zia, Atre, Rohit, Zhen Li, Wolf, Felix
Médium: Konferenční příspěvek
Jazyk:angličtina
Vydáno: IEEE 01.05.2017
Témata:
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Popis
Shrnutí:As multicore computers become widespread, the need for software programmers to decide on the most effective parallelization techniques becomes very prominent. In this case study, we examined a competition in which four teams of graduate students parallelized two sequential audio analysis applications. The students were introduced with PThreads, OpenMP and TBB parallel programming models. Use of different profiling and debugging tools was also taught during this course. Two of the teams parallelized libVorbis audio encoder and the other two parallelized the LAME encoding engine. The strategies used by the four teams to parallelize these applications included the use of taught programming models, focusing on both fine-grained and coarse-grained parallelism. These strategies are discussed in detail along with the tools utilized for the development and profiling. An analysis of the results obtained is also performed to discuss speedups and audio quality of the encoded output. A list of the lessons to be remembered while parallelizing an application has been provided as well. These lessons include best pedagogical methods, importance of understanding the program before choosing a programming model, concentrating on coarse-grained parallelism first, looking for dependency relaxation, parallelism beyond the predefined language constructs, the need of practice or prior experience in parallel programming and the need for assisting tools in parallelization.
DOI:10.1109/ICSE-SEET.2017.9