Difference between revisions of "CSC352 Homework 2"
(→Problem #1) |
(→Problem #1) |
||
Line 8: | Line 8: | ||
==Problem #1== | ==Problem #1== | ||
− | Take the multiprocessing version of the N-Queens program and fix it. It is currently inefficient, as we saw in class. In particular, it does not need the ''foundOne'' boolean, and it has to wait for all the child processes to finish before it can finish executing. Instead, change the code so that all the processes are "told" to stop when one solution is found. This way the parent process will not have to wait around. | + | Take the [[CSC352_multiprocessingNQueens.py | multiprocessing version of the N-Queens program]] we saw in class and fix it. It is currently inefficient, as we saw in class. In particular, it does not need the ''foundOne'' boolean, and it has to wait for all the child processes to finish before it can finish executing. Instead, change the code so that all the processes are "told" to stop when one solution is found. This way the parent process will not have to wait around. |
Once your program works, measure its ''best of four'' execution times and plot it for N=10 to 25. In other words, run it 4 times for N=10, and keep the best time. 4 times for N=11 and keep the best time, etc. Plot the best times obtained. | Once your program works, measure its ''best of four'' execution times and plot it for N=10 to 25. In other words, run it 4 times for N=10, and keep the best time. 4 times for N=11 and keep the best time, etc. Plot the best times obtained. | ||
Line 26: | Line 26: | ||
<br /> | <br /> | ||
<br /> | <br /> | ||
+ | |||
==Problem #2== | ==Problem #2== | ||
Revision as of 18:31, 11 February 2010
This assignment is due on 2/18/10.
Contents
Problem #1
Take the multiprocessing version of the N-Queens program we saw in class and fix it. It is currently inefficient, as we saw in class. In particular, it does not need the foundOne boolean, and it has to wait for all the child processes to finish before it can finish executing. Instead, change the code so that all the processes are "told" to stop when one solution is found. This way the parent process will not have to wait around.
Once your program works, measure its best of four execution times and plot it for N=10 to 25. In other words, run it 4 times for N=10, and keep the best time. 4 times for N=11 and keep the best time, etc. Plot the best times obtained.
You may find the following page useful for generating the list of best times.
Compare these execution times to those you obtained for your improved threaded versions.
Put the listing and your comments in a pdf and submit it in your CSC352 account as follows:
submit hw2 hw2a.pdf
Problem #2