Skip to content

Instantly share code, notes, and snippets.

@msalahi
Created February 10, 2012 00:48
Show Gist options
  • Save msalahi/1784870 to your computer and use it in GitHub Desktop.
Save msalahi/1784870 to your computer and use it in GitHub Desktop.
WHY GODDDD
import sys,time,random
from multiprocessing import Pool
def integral_helper((f,start,end,num_samples)):
return sum( (f((end-start)*random.random()+start) for i in xrange(num_samples)))
def integral(f,start,end,num_processes):
WORK_ITEMS = 100;
pool = Pool(processes=num_processes)
args = (f,start,end,WORK_ITEMS/num_processes)
acc = sum(pool.map(integral_helper,(args for i in xrange(num_processes))))
return acc*(end-start)/WORK_ITEMS
def f1(x):
return 4/(1+x*x)
def main():
t1 = time.time()
print "Integral:",integral(f1,0,4,1)
t2 = time.time()
print "Time:", t2-t1
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment