Look at the Useful Utilities and Resources part of the Lab 01 page for links to more information about some of these.
Also, my Help Pages documentation has information about useful tools and utilities.
Machine Specs page from the "cs lap help" link off the main cs page, list specs for all the CS mahines. Sort the Machines Table by #ofCores to find 8 and 16 core machines.
Here are some measures that you may want to use to present results:
Speed up = (Sequential Time) / (Parallel Time)
Speed-Up/(P) P is the number of cores or threads
cd cs87 cp -r ~newhall/public/cs87/experiment_tools .You copied over some example scripts that may be useful in helping you to write similar scripts for running experiments:
./run.sh
# output will go to file named "myoutputfile" in your home directory ./run_outfile.sh ~/myoutputfile # or to default file name "output" in the current directory # you can't write into my directory so it will only work if you copied # this script over into your subdirectory ./run_outfile.sh
To reattach to a screen session:
And you can attach and detach as many times as you'd like from the same screen sesson.
Python is a nice language to use to process the resulting typescript file to pull out timing results for related runs, compute average, std dev, spit out results in a nice form.
When you create a bash script, make sure the file is executable to run it:
vim runexper.sh # or emacs chmod 777 runexper.sh # set to executable ls -l ./runexper.shAlso, try running your bash script a few times before starting it up in screen and coming back later: make sure it is doing what you think it is. You can always comment out the call to gol program in the script to see if it is doing what you want (# is the bash single line comment):
#!/usr/bash for((n=256; n <= 2049; n=n*2)) do for ((t=1; t <= 32; t=t*2)) do echo "" echo "gol -t $t -n $n -m $n -k 1000" # time ./gol -t $t -n $n -m $n -k 1000 -x done doneIf I run the above bash script I'll see all the calls to echo print out parameter configs and see if they are what I expect. Then uncomment and run.
In your bash script make sure you run time ./gol ... to collect runtimes.
$ ssh chervil $ crontab -eThen add a line like this to run the killmytests.sh script at a specific time and date (at 8pm (20:00), on January (1) 31 :
0 20 31 1 * /home/newhall/public/cs87/experiment_tools/killmytests.shSimilarly you can add a cron job to run your experiements at a specific time (here I'm starting them at 4:05 am on February 3):
5 4 3 2 * /home/newhall/public/cs87/experiment_tools/run_outfile.sh ./mytestsNOTE: please after your cron jobs run, make sure to run crontab -e again to remove them from the crontab file (so that cron doesn't run them every year on this date at this time until we remove your account).
First lets try out screen and script:
On a different machine, create a cron job to run a test script and another to kill my test script and running test programs.
$ crontab -e # start run_outfile.sh (with output file mytests in your home directory) # at 1:32pm on Feb. 1 (minute:32, hour:13, day:1, month:2) 32 13 1 2 * /home/newhall/public/experiment_tools/run_outfile.sh ~/mytests # run killmytests.sh at 1:33pm on Feb. 1 32 13 1 2 * /home/newhall/cs87/experiment_tools/killmytests.shNow, let's run top -H and see what happens.