Edit the compute using openmp() function within the file histogram.c to complete the functionality of multi-threaded histogram generation. You may add multiple functions to the file as needed to achieve this functionality. The program provided to you accepts the size of the input data set as an argument. It creates a randomly initialized data set and computes the histograms using both the reference (single threaded) implementation and the multi-threaded implementation. The size of the histogram is set to 500 bins. The solution provided by OpenMP is compared to that generated by the reference code, in the function compute gold(). Submit the files needed to run your code via BBLearn as a single zip file (similar to Assignment 1). Also include in the zip file a brief report describing: (1) the design of your multi-threaded program (use code or pseudocode to clarify the discussion); and (2) the speedup achieved over the serial version for 2, 4, 8, and 16 threads for one million, ten million, and hundred million elements.