4

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

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

我认为这被称为令人尴尬的并行。

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

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

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

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

4

1 回答 1

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)

使用实时核心功能分配特定数量的核心。

于 2012-11-15T10:03:38.447 回答