Skip to content

Instantly share code, notes, and snippets.

@molpopgen
Last active August 29, 2015 14:25
Show Gist options
  • Save molpopgen/1a603d8f20ffeb7a1f08 to your computer and use it in GitHub Desktop.
Save molpopgen/1a603d8f20ffeb7a1f08 to your computer and use it in GitHub Desktop.
Benchmarking scripts.
#!sh
##collect the simulation results. This may have to be run as 'bash collate.sh' on some systems
echo "Simulation L time mem" > results.txt
paste <(find . -name "*.time" -type f ! -size 0 | sed 's/\.\///' | cut -d"." -f 1,2 | sed 's/\./ /') <(find . -name "*.time" -type f ! -size 0 | xargs cat) | sort -n -k 2,3 >> results.txt
/usr/bin/time -f '%e %M' -o fwdpp.1000.1.time ~/src/fwdpp/examples/diploid_ind 10000 1.000 1.000 100000 50 1 21284 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.1000.1.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000 -N 10000 -B 5 -I -s 1430 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.1000.1.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000 -N 10000 -B 5 -I -s 31597 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.1000.2.time ~/src/fwdpp/examples/diploid_ind 10000 1.000 1.000 100000 50 1 22303 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.1000.2.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000 -N 10000 -B 5 -I -s 29349 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.1000.2.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000 -N 10000 -B 5 -I -s 13769 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.1000.3.time ~/src/fwdpp/examples/diploid_ind 10000 1.000 1.000 100000 50 1 12820 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.1000.3.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000 -N 10000 -B 5 -I -s 24687 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.1000.3.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000 -N 10000 -B 5 -I -s 13914 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.1000.4.time ~/src/fwdpp/examples/diploid_ind 10000 1.000 1.000 100000 50 1 20921 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.1000.4.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000 -N 10000 -B 5 -I -s 27412 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.1000.4.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000 -N 10000 -B 5 -I -s 8586 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.10000.1.time ~/src/fwdpp/examples/diploid_ind 10000 10.000 10.000 100000 50 1 2816 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.10000.1.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000 -N 10000 -B 5 -I -s 21717 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.10000.1.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000 -N 10000 -B 5 -I -s 30401 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.10000.2.time ~/src/fwdpp/examples/diploid_ind 10000 10.000 10.000 100000 50 1 3021 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.10000.2.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000 -N 10000 -B 5 -I -s 32559 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.10000.2.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000 -N 10000 -B 5 -I -s 9987 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.10000.3.time ~/src/fwdpp/examples/diploid_ind 10000 10.000 10.000 100000 50 1 30334 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.10000.3.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000 -N 10000 -B 5 -I -s 30650 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.10000.3.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000 -N 10000 -B 5 -I -s 13836 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.10000.4.time ~/src/fwdpp/examples/diploid_ind 10000 10.000 10.000 100000 50 1 11589 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.10000.4.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000 -N 10000 -B 5 -I -s 25366 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.10000.4.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000 -N 10000 -B 5 -I -s 1149 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.100000.1.time ~/src/fwdpp/examples/diploid_ind 10000 100.000 100.000 100000 50 1 32445 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.100000.1.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 100000 -N 10000 -B 5 -I -s 22554 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.100000.1.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 100000 -N 10000 -B 5 -I -s 19374 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.100000.2.time ~/src/fwdpp/examples/diploid_ind 10000 100.000 100.000 100000 50 1 17187 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.100000.2.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 100000 -N 10000 -B 5 -I -s 2013 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.100000.2.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 100000 -N 10000 -B 5 -I -s 4019 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.100000.3.time ~/src/fwdpp/examples/diploid_ind 10000 100.000 100.000 100000 50 1 1650 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.100000.3.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 100000 -N 10000 -B 5 -I -s 22594 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.100000.3.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 100000 -N 10000 -B 5 -I -s 348 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.100000.4.time ~/src/fwdpp/examples/diploid_ind 10000 100.000 100.000 100000 50 1 6248 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.100000.4.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 100000 -N 10000 -B 5 -I -s 4172 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.100000.4.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 100000 -N 10000 -B 5 -I -s 8171 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.1000000.1.time ~/src/fwdpp/examples/diploid_ind 10000 1000.000 1000.000 100000 50 1 13472 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.1000000.1.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000000 -N 10000 -B 5 -I -s 5066 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.1000000.1.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000000 -N 10000 -B 5 -I -s 25119 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.1000000.2.time ~/src/fwdpp/examples/diploid_ind 10000 1000.000 1000.000 100000 50 1 5905 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.1000000.2.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000000 -N 10000 -B 5 -I -s 13597 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.1000000.2.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000000 -N 10000 -B 5 -I -s 24560 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.1000000.3.time ~/src/fwdpp/examples/diploid_ind 10000 1000.000 1000.000 100000 50 1 16594 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.1000000.3.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000000 -N 10000 -B 5 -I -s 14422 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.1000000.3.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000000 -N 10000 -B 5 -I -s 29584 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.1000000.4.time ~/src/fwdpp/examples/diploid_ind 10000 1000.000 1000.000 100000 50 1 17865 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.1000000.4.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000000 -N 10000 -B 5 -I -s 16183 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.1000000.4.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 1000000 -N 10000 -B 5 -I -s 1276 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.10000000.1.time ~/src/fwdpp/examples/diploid_ind 10000 10000.000 10000.000 100000 50 1 26441 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.10000000.1.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000000 -N 10000 -B 5 -I -s 12874 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.10000000.1.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000000 -N 10000 -B 5 -I -s 16595 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.10000000.2.time ~/src/fwdpp/examples/diploid_ind 10000 10000.000 10000.000 100000 50 1 9338 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.10000000.2.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000000 -N 10000 -B 5 -I -s 9029 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.10000000.2.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000000 -N 10000 -B 5 -I -s 12587 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.10000000.3.time ~/src/fwdpp/examples/diploid_ind 10000 10000.000 10000.000 100000 50 1 10386 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.10000000.3.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000000 -N 10000 -B 5 -I -s 23902 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.10000000.3.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000000 -N 10000 -B 5 -I -s 7606 > /dev/null
/usr/bin/time -f '%e %M' -o fwdpp.10000000.4.time ~/src/fwdpp/examples/diploid_ind 10000 10000.000 10000.000 100000 50 1 26613 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode_old.10000000.4.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000000 -N 10000 -B 5 -I -s 8971 > /dev/null
/usr/bin/time -f '%e %M' -o sfscode.10000000.4.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 10000000 -N 10000 -B 5 -I -s 21388 > /dev/null
#!/bin/bash
for L in 1000 10000 100000 1000000 10000000
do
THETA=`echo "0.001*$L"|bc -l`
RHO=$THETA
for i in 1 2 3 4
do
##Using latest sfs_code and diploid_ind (from fwdpp 0.3.4)
##sfs_code compiled using the Makefile from that project
##diploid_ind compiled using defaults, which is -g -O2, and linking to Google tcmalloc (./configure --enable-tcmalloc=yes)
echo "/usr/bin/time -f '%e %M' -o fwdpp.$L.$i.time ~/src/fwdpp/examples/diploid_ind 10000 $THETA $RHO 100000 50 1 $RANDOM > /dev/null"
echo "/usr/bin/time -f '%e %M' -o sfscode_old.$L.$i.time ~/src/sfscode_old/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 $L -N 10000 -B 5 -I -s $RANDOM > /dev/null"
echo "/usr/bin/time -f '%e %M' -o sfscode.$L.$i.time ~/src/sfscode/bin/sfs_code 1 1 -t 0.001 -r 0.001 -L 1 $L -N 10000 -B 5 -I -s $RANDOM > /dev/null"
done
done
library(ggplot2)
x=read.table("results.txt",header=T)
x.p = ggplot(x,aes(x=L,y=time/(60^2))) + geom_point(aes(color=Simulation,shape=Simulation)) +
theme_set(theme_gray(base_size = 8)) +
xlab("Region length (L), log10 scale") +
ylab("Run time (hours), log10 scale") +
scale_x_log10() +
scale_y_log10(limits=c(5e-3,72)) +
ggtitle(expression(paste("N = ",10^4,",",theta," = ",rho," = ",1e-3))) +
annotate("text",x=1e4,y=7.5e-3,label="Missing points =\nhit wallclock limit")
ggsave("LvsTime.pdf",x.p,scale=0.75)
x.p = ggplot(x,aes(x=L,y=mem)) +
geom_point(aes(color=Simulation,shape=Simulation)) +
theme_set(theme_gray(base_size = 8)) +
xlab("Region length (L), log10 scale") +
ylab("Peak RAM use, log 10 scale") +
scale_x_log10() +
ggtitle(expression(paste(theta," = ",rho," = ",1e-3)))
ggsave("LvsMem.pdf",x.p,scale=0.75)
#!sh
##Run 4 jobs at a time on my 4-core machine. 72 hour wallclock limit
MAXTIME=`echo "72*60*60"|bc -l`
parallel --jobs=4 --timeout $MAXTIME :::: jobs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment