Parallel Python 並行開發多核心並行程式(例子2)

來源:互聯網
上載者:User
#-*- coding: UTF-8 -*-#-------------------------------------------------------------------------------# Name:        # Purpose:     ## Author:      ankier## Created:     05-02-2013# Copyright:   (c) ankier 2013# Licence:     <your licence>#-------------------------------------------------------------------------------import math,sys, md5, timeimport ppdef md5Test(hash, start, end):    for x in xrange(start, end):        if md5.new(str(x)).hexdigest() == hash:            return xppservers = ()job_server = pp.Server(ppservers=ppservers)print '當前工作核心背景工作處理序數', job_server.get_ncpus(), "workers"hash = md5.new("1829182").hexdigest()print "hash =", hashstart_time = time.time()rr = md5Test(hash, 1, 2000000)print '單線程耗時',time.time() - start_time, 's', 'Result =', rrstart_time = time.time()start = 1end = 2000000parts = 128step = (end - start) / parts + 1jobs = []for index in xrange(parts):    starti = start+index*step    endi = min(start+(index+1)*step, end)    jobs.append(job_server.submit(md5Test, (hash, starti, endi), (), ("md5",)))    for job in jobs:    result = job()    if result:        break# Print the resultsif result:    print "Reverse md5 for", hash, "is", resultelse:    print "Reverse md5 for", hash, "has not been found"print "Time elapsed: ", time.time() - start_time, "s"job_server.print_stats()

運行結果:

當前工作核心背景工作處理序數 4 workershash = 48ae4d2d384dcc470e471f4169daa96a單線程耗時 3.34699988365 s Result = 1829182Reverse md5 for 48ae4d2d384dcc470e471f4169daa96a is 1829182Time elapsed:  1.55399990082 sJob execution statistics: job count | % of all jobs | job time sum | time per job | job server       122 |        100.00 |       5.4470 |     0.044648 | localTime elapsed since server creation 4.901999950413 active tasks, 4 cores

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.