Tag: 尴尬平行

使用Python多处理解决不平行的问题

如何使用多处理来解决尴尬的并行问题 ? 不解之缘的并行问题通常由三个基本部分组成: 读取input数据(从文件,数据库,TCP连接等)。 对input数据运行计算,每个计算独立于任何其他计算 。 写入计算结果(到文件,数据库,tcp连接等)。 我们可以在两个维度上并行化程序: 第2部分可以在多个核上运行,因为每个计算都是独立的; 处理顺序无关紧要。 每个部分都可以独立运行。 第1部分可以将数据放在input队列中,第2部分可以将数据从input队列中取出,并将结果放到输出队列中,第3部分可以将结果从输出队列中取出并写出。 这似乎是并发编程的一个最基本的模式,但是我仍然试图解决它,所以让我们编写一个规范的例子来说明如何使用多处理来完成 。 以下是示例问题:给定一个包含整数行作为input的CSV文件 ,计算它们的总和。 将问题分成三部分,可以并行运行: 将input文件处理成原始数据(列表/整数的迭代) 并行计算数据的总和 输出总和 下面是传统的,单进程绑定的Python程序,它解决了这三个任务: #!/usr/bin/env python # -*- coding: UTF-8 -*- # basicsums.py """A program that reads integer values from a CSV file and writes out their sums to another CSV file. """ import csv import optparse import […]