MapReduce
Note: This project currently does not contain any tests. A ZIP-file containing several test cases and a makefile + example C-program to run them has been uploaded to the Discord server. At some point in the future we will get it refined and published on GitHub.
Hints
- This project is quite challenging, so don't get discouraged if you're struggling. If you find that the difficulty curve gets too steep, consider doing the Parallel Zip project first. Use the test-files in the initial utilities zip project to check your work.
- For this project it is highly advantageous to work in small increments: focus on making a correct sequential implementation first, and then think about how you can parallelize it.
- The producer-consumer queue using locks and condition variables is your central data structure for parallelizing work. It is described in detail in the chapter on Condition Variables.
- Remember to make copies of the keys and values passed to your
MR_Emitimplementation, otherwise you'll end up with a heap of garbage.