0) Clone the GitHub repository:
https://classroom.github.com/a/ee39p7RU
Note, part 1 of this HW must be done from a terminal window (not in a Jupyter notebook, but you could use the terminal window in Jupyter). Part 2 can either be done in a a Python program or a Jupyter notebook.
...
Note: you should not wait until the last possible day to do this problem. It requires that you get 100 nodes on Rivanna and you may have to wait for those slots (depending on how busy the cluster is, and your priority). I suggest doing starting this problem early! “The cluster was too busy” is not a valid excuse (although I often hear it in research!).
...
The goal is to run 100 jobs with a combined result of better precision on Pi (I was able to get ~1/106).
In order to To do this you need to:
1) Verify that you get the same numbers if you run your program twice with the same seed, you get the same numbersrandom number seed.
2) Verify that you get different answers if you run your program twice with different seeds, you get different answersa different random number seed.
3) Benchmark your pi program. Make the printed output of your program a single line: N_total, N_circle, pi, seconds, seed.
...
5) Write a SLURM script [pi_slurm.sh] to execute your job. Hint: you need a SLURM array! Start with the the one you used in class
6) Before running the 100 jobs submit a single job or two to make sure that your calculations were are reasonable(time is ~<1 hour, seed is working, output files are named properly…). This step is very important! You have a responsibility here to make sure you use the class resources properly. The assignment requires about 100 CPU hours. If you use more than 1000 CPU hours you will receive a large penalty on your score for this problem! Hint: Limit this job time in your slurm script to some reasonable amount larger than the time that you think you jobs should run (maybe 2 hours for a 1-hour job?).
...