[restrict the number of parallel igor runs by the amount of free memory in gb
tobias@goedderz.info**20141229172750
 Ignore-this: 5472cdbb9f44cc7198f1a20cf3276c8
] hunk ./run_tests.bash 10
-parallel bash ./run_test.bash ::: "${tests_dir}"/*.bat
+free_mem_gb="$(free -g \
+    | sed -ne 's/^-\/+ buffers\/cache: *[0-9]* *\([0-9]*\)/\1/p')"
+
+# allow at least one thread, and more if there is at least 1gb of free memory
+# for each thread
+mem_max_threads="$(( $free_mem_gb < 1 ? 1 : $free_mem_gb ))"
+
+cores="$(parallel --number-of-cores)"
+
+threads="$(( $mem_max_threads < $cores ? $mem_max_threads : $cores ))"
+
+parallel --no-notice -j"$threads" bash ./run_test.bash ::: "${tests_dir}"/*.bat