Questions tagged «embarrassingly-parallel»

5
使用Python多处理解决令人尴尬的并行问题
如何使用多重处理来解决令人尴尬的并行问题? 令人尴尬的并行问题通常包括三个基本部分: 读取输入数据(从文件,数据库,tcp连接等)。 在输入数据上运行计算,其中每个计算独立于任何其他计算。 将计算结果写入文件,数据库,TCP连接等。 我们可以在两个方面并行化程序: 第2部分可以在多个内核上运行,因为每个计算都是独立的。处理顺序无关紧要。 每个部分可以独立运行。第1部分可以将数据放在输入队列中,第2部分可以将数据从输入队列中拉出并将结果放到输出队列中,第3部分可以将结果从输出队列中拉出并写出。 这似乎是并发编程中最基本的模式,但是我仍然在尝试解决它方面迷失了方向,因此让我们写一个规范的示例来说明如何使用多重处理来完成。 这是示例问题:给定一个以整数行作为输入的CSV文件,计算其总和。将问题分为三个部分,这些部分可以并行运行: 将输入文件处理为原始数据(整数列表/可迭代数) 并行计算数据总和 输出总和 下面是传统的单进程绑定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 sys def …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.