<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ParallelPython 分布式計(jì)算模塊

          聯(lián)合創(chuàng)作 · 2023-09-29 13:45

          Parallel Python是Python進(jìn)行分布式計(jì)算的開(kāi)源模塊,能夠?qū)⒂?jì)算壓力分布到多核CPU或集群的多臺(tái)計(jì)算機(jī)上,能夠非常方便的在內(nèi)網(wǎng)中搭建一個(gè)自組織的分布式計(jì)算平臺(tái)。先從多核計(jì)算開(kāi)始,普通的Python應(yīng)用程序只能夠使用一個(gè)CPU進(jìn)程,而通過(guò)Parallel Python能夠很方便的將計(jì)算擴(kuò)展到多個(gè)CPU進(jìn)程中

          示例代碼:

          #!/usr/bin/python
          # File: sum_primes.py
          # Author: VItalii Vanovschi
          # Desc: This program demonstrates parallel computations with pp module
          # It calculates the sum of prime numbers below a given integer in parallel
          # Parallel Python Software: http://www.parallelpython.com
          
          import math, sys, time
          import pp
          
          def isprime(n):
              """Returns True if n is prime and False otherwise"""
              if not isinstance(n, int):
                  raise TypeError("argument passed to is_prime is not of 'int' type")
              if n < 2:
                  return False
              if n == 2:
                  return True
              max = int(math.ceil(math.sqrt(n)))
              i = 2
              while i <= max:
                  if n % i == 0:
                      return False
                  i += 1
              return True
          
          def sum_primes(n):
              """Calculates sum of all primes below given integer n"""
              return sum([x for x in xrange(2,n) if isprime(x)])
          
          print """Usage: python sum_primes.py [ncpus]
              [ncpus] - the number of workers to run in parallel, 
              if omitted it will be set to the number of processors in the system
          """
          
          # tuple of all parallel python servers to connect with
          ppservers = ()
          #ppservers = ("10.0.0.1",)
          
          if len(sys.argv) > 1:
              ncpus = int(sys.argv[1])
              # Creates jobserver with ncpus workers
              job_server = pp.Server(ncpus, ppservers=ppservers)
          else:
              # Creates jobserver with automatically detected number of workers
              job_server = pp.Server(ppservers=ppservers)
          
          print "Starting pp with", job_server.get_ncpus(), "workers"
          
          # Submit a job of calulating sum_primes(100) for execution. 
          # sum_primes - the function
          # (100,) - tuple with arguments for sum_primes
          # (isprime,) - tuple with functions on which function sum_primes depends
          # ("math",) - tuple with module names which must be imported before sum_primes execution
          # Execution starts as soon as one of the workers will become available
          job1 = job_server.submit(sum_primes, (100,), (isprime,), ("math",))
          
          # Retrieves the result calculated by job1
          # The value of job1() is the same as sum_primes(100)
          # If the job has not been finished yet, execution will wait here until result is available
          result = job1()
          
          print "Sum of primes below 100 is", result
          
          start_time = time.time()
          
          # The following submits 8 jobs and then retrieves the results
          inputs = (100000, 100100, 100200, 100300, 100400, 100500, 100600, 100700)
          jobs = [(input, job_server.submit(sum_primes,(input,), (isprime,), ("math",))) for input in inputs]
          for input, job in jobs:
              print "Sum of primes below", input, "is", job()
          
          print "Time elapsed: ", time.time() - start_time, "s"
          job_server.print_stats()
          
          # Parallel Python Software: http://www.parallelpython.com
          瀏覽 21
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩电影精品 | 日本欧美一区 | 91麻豆精品成人一区二区 | 超碰中文字幕在线 | 波多野结衣AV一区二区 |