MapReduce for Counting Word Frequencies with MPI and GPUs
Harvard College
arXiv:2206.05269 [cs.DC]
@misc{https://doi.org/10.48550/arxiv.2206.05269,
doi={10.48550/ARXIV.2206.05269},
url={https://arxiv.org/abs/2206.05269},
author={Kavi, Nithin},
keywords={Distributed, Parallel, and Cluster Computing (cs.DC), FOS: Computer and information sciences, FOS: Computer and information sciences},
title={MapReduce for Counting Word Frequencies with MPI and GPUs},
publisher={arXiv},
year={2022},
copyright={Creative Commons Attribution 4.0 International}
}
In this project, the goal was to use the Julia programming language and parallelization to write a fast map reduce algorithm to count word frequencies across large numbers of documents. We first implement the word frequency counter algorithm on a CPU using two processes with MPI. Then, we create another implementation, but on a GPU using the Julia CUDA library, though not using the in built map reduce algorithm within FoldsCUDA.jl. After doing this, we apply our CPU and GPU algorithms to count the frequencies of words in speeches given by Presidents George W Bush, Barack H Obama, Donald J Trump, and Joseph R Biden with the aim of finding patterns in word choice that could be used to uniquely identify each President. We find that each President does have certain words that they use distinctly more often than their fellow Presidents, and these words are not surprising given the political climate at the time. The goal of this project was to create faster MapReduce algorithms in Julia on the CPU and GPU than the ones that have already been written previously. We present some simple cases of mapping functions where our GPU algorithm outperforms Julia’s FoldsCUDA implementation. We also discuss ideas for further optimizations in the case of counting word frequencies in documents and for these specific mapping functions.
June 19, 2022 by hgpu