Table of Contents
Submission
Read about the Honor Code
You are required to read our CSC4700 syllabus and the Honor Code before submitting assignments. Do this now before proceeding to the final step.
Submitting the Assignment
Once you’ve finished everything, you are ready to submit your work. You are submitting your assignment results as commits that have to be pushed to the github repository. The section about staging and committing changes in VSCode gives you a good introduction on how to do this.
Here is a list of things you’re expected to submit as part of this assignment:
- Warmup
- Generate the roofline graphs
- More Warmup
- Modify the code for
two_norm_r
inwork/include/matrix_operations.cpp
- Modify the code for
two_norm_s
inwork/include/matrix_operations.cpp
- Fix the implementation of
partitioned_two_norm_a
inwork/more_warmup/norm/pnorm.hpp
- Complete the function
partitioned_two_norm_a
inwork/more_warmup/normfnorm.hpp
- Complete the body of
cyclic_two_norm
inwork/more_warmup/normcnorm.hpp
- Complete the implementation
recursive_two_norm_a
inwork/more_warmup/normrnorm.hpp
- Implement the safe-to-implement parallel algorithms as the appropriate overloaded member functions in
work/include/CSCMatrix.hpp
andwork/include/CSRMatrix.hpp
- Answer the questions in
results/answers.md
- Modify the code for
- Parallelism
- Using HPX, parallelize the
norm
functions in the filework/include/norms.hpp
- Answer the questions in
results/answers.md
- Using HPX, parallelize the
- Buddhabrot
- Implement a thread-safe queue using a mutex and a condition variable
- Change your Buddhabrot implementation from Assignment 2 to use threads and the concurrent queue for parallelization
- Implement the producer function
generate_buddhabrot_trajectories
- Implement the producer function
- Add a new command line option
-t
/--threads
to specify the number of threads to use- Add verification of the new command line argument
- Answer the questions in
results/answers.md
-
Add the generated Buddhabrot images
bb512.bmp
andbb768.bmp
for the following command lines as part of your submission:./build/buddhabrot -s 512 -p 1000000 -i 1000 -t 4 -o ../results/bb512.bmp ./build/buddhabrot --size 768 --points 1000000 --iters 5000 --threads 2 --output ../results/bb768.bmp
Please also note, that once you push to your repository, Github will compile and run your code automatically. This will result in a being added to the home page of your repository, telling you that all tests have successfully passed. If you see a
instead, then one or more of the tests in your code have failed and you will have to debug your code. Simply commit and push again once you have fixed the problems.
There is also an introduction to Git available that describes the overall concepts and the use of Git from a command line. It also answers some frequently asked questions.
We have a Github tutorial you might want to have a look at as well.
Last but not least, you can have a look at this document if you are interested in knowing more about Github Classroom.
And that’s it! You’re done!