167
edits
Changes
ParaCode
,→Resources
Grep character kernel:<br>
[[File:GrepKernel.JPG|650px]]
Two grep:<br>
[[File:GrepCompare.JPG|650px]]
Run and result:<br>
[[File:Result22.JPG|650px]]
Yes. The grep of parallel's result is the same as serial's result! It works!<br>
''' Profile '''
Sample of profile:<br>
[[File:ProfilePara.JPG|650px]]
Run and record time data for serial program and parallel program. We got the time for each:<br>
[[File:TimeCompareTwoPart.JPG|650px]]
Generate the graphics:<br>
Total time compare:<br>
[[File:TotalCompare.JPG|650px]]
Time compare for function grep() and grepPara():<br>
[[File:TimecompareFunction.JPG|650px]]
We got it!<br>
=== Assignment 3 ===
Next, we optimize the code so that it runs faster.<br>
''' Use shared memory '''
We change global memory to shared memory in kernel grepx(). The code is:<br>
[[File:SharedMem.JPG|650px]]
''' Profile '''
We get the data like this:<br>
[[File:SharedData.JPG|650px]]
''' ntpb ''
We also try different ntpb and see if it effect runtime.<br>
[[File:NtpbDiff.JPG|650px]]
According to the data, the number of ntpb is not an important factor affecting time.
''' End '''
That's all for our assignment.
== Resources ==
You can see my code here: https://gist.github.com/KignorChan/764c71d9d96561e4101d9830e0bc5e69
Idea from LZW compress program: https://codereview.stackexchange.com/questions/86543/simple-lzw-compression-algorithm