在amazon ec2或picloud中并行运行相同的python脚本涉及的步骤是什么

时间:2012-11-13 22:52:00

标签: python parallel-processing amazon-ec2 cloud

我需要一些关于并行处理任务的帮助,我试图尽快完成。

它只是将大型数据框拆分为较小的块并在每个块上运行相同的脚本。

我认为这被称为非常平行。

如果有人可以使用亚马逊云服务或picloud建议模板来完成此任务,我将非常感激。

我已经初步尝试了亚马逊ec2和picloud(我将在每个数据块上运行的脚本在python中)但是意识到我可能 如果没有一些帮助,不知道如何做到这一点。

所以,任何指针都会非常感激。我只是在寻找基本的帮助(对于那些知道的人),例如使用ec2或picloud等设置并行内核或cpus的主要步骤,并行运行脚本,并保存脚本输出,即脚本将其计算结果写入csv文件。

我正在运行ubuntu 12.04,我的python 2.7脚本不涉及非站点库,只有os和csv。脚本并不复杂,只是数据对于我的机器和时间范围来说太大了。

1 个答案:

答案 0 :(得分:4)

此脚本使用PiCloud的Python云库,应该在本地运行。

# chunks is a list of filenames (you'll need to define generate_chunk_files)
chunks = generate_chunk_files('large_dataframe')
for chunk in chunks:
    # stores each chunk in your PiCloud bucket
    cloud.bucket.put(chunk)

def process_chunk(chunk):
    """Runs on PiCloud"""

    # saves chunk object locally
    cloud.bucket.get(chunk)
    f = open(chunk, 'r')
    # process the data however you want

# asynchronously runs process_chunk on the cloud for all chunks
job_ids = cloud.map(process_chunk, chunks)

使用Realtime Cores功能分配特定数量的核心。