what is the procedure or how to plan how many nodes of dispy need for dsolve differential system in amazon cloud in limited time such as 1 hour, 2 hours.etc

meInvent bbird jobmattcon at gmail.com
Thu Nov 10 20:34:34 EST 2016


what is the procedure or how to plan how many nodes of dispy need for dsolve differential system in amazon cloud in limited time such as 1 hour, 2 hours.etc ?
#For Amazon Linux, the user name is ec2-user. For RHEL5, the user name is either root or ec2-user. 
#For Ubuntu, the user name is ubuntu. For Fedora, the user name is either fedora or ec2-user. 
#For SUSE Linux, the user name is either root or ec2-user. 
#Otherwise, if ec2-user and root don't work, check with your AMI provider.
import random, dispy
import ast 
from __future__ import division 
from sympy import * 
x, y, z, t = symbols('x y z t') 
k, m, n = symbols('k m n', integer=True) 
f, g, h = symbols('f g h', cls=Function) 
import inspect 
def compute(n): # executed on nodes
 import random, time, socket
 name = socket.gethostname()
 cur_best = 1
 for ii in range(n[0],n[0]):
 for jj in range(n[1],n[1]):
 for kk in range(n[2],n[3],100): 
 #assume dsolve with sympy for differential system 
 dispy_provisional_result((name, r))
 cur_best = r
 time.sleep(0.1)
 # final result
 return (name, cur_best)
def job_callback(job): # executed at the client
 if job.status == dispy.DispyJob.ProvisionalResult:
 #if job.result[1] < 0.005:
 # acceptable result; terminate jobs
 print('%s computed: %s %s %s %s' % (job.result[0], job.result[1], job.result[2], job.result[3], job.result[4]))
 # 'jobs' and 'cluster' are created in '__main__' below
 for j in jobs:
 if j.status in [dispy.DispyJob.Created, dispy.DispyJob.Running,
 dispy.DispyJob.ProvisionalResult]:
 cluster.cancel(j)
if __name__ == '__main__':
 #cluster = dispy.JobCluster(compute, callback=job_callback)
 cluster = dispy.JobCluster(compute, nodes=['ec2-35-162-137-237.us-west-2.compute.amazonaws.com'], ip_addr='127.0.0.1', port=51347, node_port=51348, callback=job_callback, keyfile=r"C:\Users\hello\datacenterusekey.ppk")
 jobs = []
 prevk = 1
 count = 0
 for ii in range(1,2):
 for jj in range(1,2000):
 for kk in range(1,2000,100):
 if ii < jj and jj < kk:
 job = cluster.submit([ii,jj,prevk,kk])
 prevk = kk
 if job is None:
 print('creating job %s failed!' % n)
 continue
 job.id = count
 count = count + 1
 jobs.append(job)
 cluster.wait()
 cluster.print_status()
 cluster.close()


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /