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