import os import time import multiprocessing as mp import numpy as np import lib def test_fn(perm_fn, name, dimension=6, steps=1000, dt=1e-3, bodies=101, threads=1): # Test the speed of the evolution function. sreal=np.random.uniform(0,1,(dimension, dimension)) scomp=np.random.uniform(0,1,(dimension, dimension)) submatrix=sreal+1j*scomp t0 = time.time() for i in range(steps): p=perm_fn(submatrix) t1 = time.time() print "{0} ({1}): {2} steps/sec".format(name, threads, int(steps / (t1 - t0))) if __name__ == "__main__": d=4 steps=1000 # Test on one core test_fn(lib.perm_python, "1 core, C", steps=steps, threads=1) # Test on one core test_fn(lib.perm_c, "1 core, C", steps=steps, threads=1) # Test on four cores test_fn(lib.perm_c, "All cores, C", steps=steps/threads, threads=threads)