iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python 多cpu并行编程
  • 676
分享到

python 多cpu并行编程

pythoncpu 2023-01-31 05:01:45 676人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

python 多线程只能算并发,因为它智能使用一个cpu内核 Python 下 pp包支持多cpu并行计算 安装   pip install pp使用 #-*- coding: UTF-8 -*- import math, sys, t

python 多线程只能算并发,因为它智能使用一个cpu内核

Python 下 pp包支持多cpu并行计算


安装  

pip install pp


使用

#-*- coding: UTF-8 -*-
import math, sys, time
import pp
def IsPrime(n):
    """返回n是否是素数"""
    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 SumPrimes(n):
    for i in xrange(15):
        sum([x for x in xrange(2,n) if IsPrime(x)])
    """计算从2-n之间的所有素数之和"""
    return sum([x for x in xrange(2,n) if IsPrime(x)])
inputs = (100000, 100100, 100200, 100300, 100400, 100500, 100600, 100700)
# start_time = time.time()
# for input in inputs:
#     print SumPrimes(input)
# print '单线程执行,总耗时', time.time() - start_time, 's'
# # 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 "pp 可以用的工作核心线程数", job_server.get_ncpus(), "workers"
start_time = time.time()
jobs = [(input, job_server.submit(SumPrimes,(input,), (IsPrime,), ("math",))) for input in inputs]#submit提交任务
for input, job in jobs:
    print "Sum of primes below", input, "is", job()# job()获取方法执行结果
print "多线程下执行耗时: ", time.time() - start_time, "s"
job_server.print_stats()#输出执行信息

执行结果

pp 可以用的工作核心线程数 4 workers
Sum of primes below 100000 is 454396537
Sum of primes below 100100 is 454996777
Sum of primes below 100200 is 455898156
Sum of primes below 100300 is 456700218
Sum of primes below 100400 is 457603451
Sum of primes below 100500 is 458407033
Sum of primes below 100600 is 459412387
Sum of primes below 100700 is 460217613
多线程下执行耗时:  15.4971420765 s
Job execution statistics:
 job count | % of all jobs | job time sum | time per job | job server
         8 |        100.00 |      60.9828 |     7.622844 | local
Time elapsed since server creation 15.4972219467
0 active tasks, 4 cores



submit 函数定义
def submit(self, func, args=(), depfuncs=(), modules=(),
        callback=None, callbackargs=(), group='default', globals=None):
    """Submits function to the execution queue

        func - function to be executed  执行的方法
        args - tuple with arguments of the 'func' 方法传入的参数,使用元组
        depfuncs - tuple with functions which might be called from 'func' 传入自己写的方法 ,元组
        modules - tuple with module names to import  传入 模块
        callback - callback function which will be called with argument
                list equal to callbackargs+(result,)
                as soon as calculation is done
        callbackargs - additional arguments for callback function
        group - job group, is used when wait(group) is called to wait for
        jobs in a given group to finish
        globals - dictionary from which all modules, functions and classes
        will be imported, for instance: globals=globals()
    """






--结束END--

本文标题: python 多cpu并行编程

本文链接: https://www.lsjlt.com/news/188407.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python 多cpu并行编程
    python 多线程只能算并发,因为它智能使用一个cpu内核 python 下 pp包支持多cpu并行计算 安装   pip install pp使用 #-*- coding: UTF-8 -*- import math, sys, t...
    99+
    2023-01-31
    python cpu
  • python中的多cpu并行编程
    目录多cpu并行编程安装使用submit 函数定义多核cpu并行计算多cpu并行编程 python多线程只能算并发,因为它智能使用一个cpu内核python下pp包支持多cpu并行计...
    99+
    2024-04-02
  • C++并发编程:如何利用多核CPU实现并发?
    c++++ 并发编程通过创建线程、互斥锁和条件变量来充分利用多核 cpu 的优势。创建线程允许任务并行执行。互斥锁充当锁,确保共享数据不会被多个线程同时访问,从而避免数据损坏。条件变量用...
    99+
    2024-05-01
    c++ 并发编程 并发访问
  • python并发编程之多线程编程
    一、threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 二、开启线程的两种方式 方式一: from threading import ...
    99+
    2023-01-31
    之多 线程 python
  • python并发编程之多进程
    阅读目录 一 multiprocessing模块介绍 二 Process类的介绍 三 Process类的使用 四 守护进程 一  multiprocessing模块介绍  python中的多线程无法利用多核优势,如果想...
    99+
    2023-01-30
    之多 进程 python
  • Python多进程并行编程实践中mpi4py的使用方法
    这篇文章将为大家详细讲解有关Python多进程并行编程实践中mpi4py的使用方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言在高性能计算的项目中我们通常都会使用效率更高的编译型的语言...
    99+
    2023-06-17
  • python 并发执行之多线程
        正常情况下,我们在启动一个程序的时候。这个程序会先启动一个进程,启动之后这个进程会拉起来一个线程。这个线程再去处理事务。也就是说真正干活的是线程,进程这玩意只负责向系统要内存,要资源但是进程自己是不干活的。默认情况下只有一个进程只会...
    99+
    2023-01-31
    之多 线程 python
  • python并发执行之多进程
        多进程顾名思义程序启动的时候运行多个进程,每个进程启动一条线程进行程序处理。 没启动一个进程就要单独划分一块内存资源。就像工厂的厂房。为了提高效率每多添加一条生产线就要单独再盖一个厂房。每个厂房相互是独立的。所以启动多进程是很消耗资...
    99+
    2023-01-31
    之多 进程 python
  • Python CPython 的并发和多线程编程
    1. Python CPython中的并发编程 并发编程是一种编程范式,允许在同一时间内执行多个任务。在Python CPython中,并发编程主要通过两种方式实现:多线程和协程。 2. 多线程编程 多线程编程是使用多个线程来同时执行不...
    99+
    2024-03-04
    并发编程 多线程 CPython Python 协程
  • Python 并发编程到底有多难?
    Python 是一种简单易学的编程语言,但是在处理大量数据、网络请求等任务时,单线程执行效率往往较低。因此,Python 并发编程成为了一个热门话题。那么,Python 并发编程到底有多难呢? 在 Python 中,实现并发编程有多种方式...
    99+
    2023-08-08
    并发 apache django
  • C#并行编程之PLINQ(并行LINQ)
    用于对内存中的数据做并行运算,也就是说其只支持 LINQ to Object 的并行运算 一、AsParallel(并行化) 就是在集合后加个AsParallel()。 例如: va...
    99+
    2024-04-02
  • Python并行编程多线程锁机制Lock与RLock实现线程同步
    目录什么是锁机制?Lock() 管理线程RLock() 与Lock()的区别什么是锁机制? 要回答这个问题,我们需要知道为什么需要使用锁机制。前面我们谈到一个进程内的多个线程的某些资...
    99+
    2024-04-02
  • Golang多进程编程指南:实现并发执行
    在当今快节奏的互联网时代,高效的并发编程成为了开发者们不可或缺的技能之一。而在众多编程语言中,Golang(或称Go语言)以其优雅简洁的语法以及强大的并发支持而备受青睐。本文将从Gol...
    99+
    2024-02-29
    golang 并发 多进程 go语言
  • Python并发编程:探索多线程和多进程的奥秘
    1.1 多线程的基础知识 线程:线程是操作系统能够进行独立调度和执行的基本单位,它拥有自己的堆栈空间和程序计数器,可以在进程中并发执行。 线程同步:线程同步是指控制多个线程之间的协作与通信,以确保共享资源的正确访问和更新,避免数据竞争和...
    99+
    2024-02-05
    多线程:开启并行计算之旅 多线程是并发编程最基本的技术之一 它允许程序在单个进程中创建和执行多个线程 使得这些线程可以同时运行不同的任务。多线程的原理是将一个程序逻辑任务划分成多个小的任务 交由
  • 从伪并行的 Python 多线程说起
    本文首发于本人博客,转载请注明出处 写在前面 作者电脑有 4 个 CPU,因此使用 4 个线程测试是合理的 本文使用的 cpython 版本为 3.6.4 本文使用的 pypy 版本为 5.9.0-beta0,兼容 Python 3...
    99+
    2023-01-31
    多线程 Python
  • Python 多线程与多进程:行业应用实例,探索并发编程的无限潜力
    1. 多线程:多任务同心协力,提升程序响应速度 多线程是一种并发编程模式,它允许程序在单个进程中同时执行多个任务。每个线程都可以独立运行,并与其他线程共享内存。多线程非常适合处理计算密集型任务,例如科学计算、图像处理和视频编码等。 实例...
    99+
    2024-02-24
    Python 多线程 多进程 并发编程 行业应用
  • python并发编程
    python并发编程的思维导图,原始文件请转到:processon链接查看 IO模型 阻塞IO 非阻塞IO IO多路复用 事件驱动IO 异步IO ...
    99+
    2023-01-31
    python
  • C#并行编程之数据并行Tasks.Parallel类
    目录一、并行概念1、并行编程2、数据并行二、Parallel.Invoke():并行调用多个任务 。三、Parallel.For(): for 循环的并行运算 四...
    99+
    2024-04-02
  • Linux多核并行编程关键技术是什么
    本篇内容主要讲解“Linux多核并行编程关键技术是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux多核并行编程关键技术是什么”吧!  多核并行编程的背景  在摩尔定律失效之前,提升处...
    99+
    2023-06-06
  • Python 并发编程-进程
    Process类参数介绍 group  --------  参数未使用, 值始终为None target  --------  表示调用对象, 即子进程要执行的任务 args  ----------  表示调用对象的位置参数元组, arg...
    99+
    2023-01-30
    进程 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作