主页

[python 并行2] 线程

基本使用 python线程使用的两个模块为: _thread (不推荐再使用)、 threading (查看threading的源码可以发现,threading实际是对_thread进一步的封装,官方将其称为 *Low-level threading API,下面简单尝试使用_thread)* 调用start_new_thread()函数生成新线程 函数声明:_thread.start_new_thread(function, args[, kwargs]) function: 子线程所执行的函数 args: 传递的参数,参数类型必须是元组 kwargs:可选参数 示例: #!usr/bin/env python #coding=utf-8 import _thread i...

阅读更多

[python 并行1] 简介

设计并行编程 1 任务分解:将程序分解为任务,在不同处理器上执行以实现并行化。(可以使用以下两种方法) 领域分解:将问题数据分解 (当处理的数据量很大时,分开处理) 功能性分解:将问题分解为任务 (把大的任务分解为多个小任务处理) 任务分配:将任务分配到各个处理器上 (目的是负载均衡) 聚集:将小任务与大任务合并到一起从而改进性能的过程 如果任务数量远远超过可用的处理器数量,由于线程切换等其它因素会导致效率降低 如果计算机有针对大量小任务而进行特别的设计,如采用GPU计算,那将能从大量小任务的运行中获益 映射:指定哪个任务将要执行 (目标是将总执行时间降到最低)(可以使用以下2中策略,这2个策略间由于是冲突的,需要做出权衡) 通信频...

阅读更多