api распределенной обработки, подобный многопроцессорной обработке в python

#python #multiprocessing #distributed-computing

#python #многопроцессорная обработка #распределенные вычисления

Вопрос:

Я рассматриваю реализацию облегченной платформы распределенной обработки, которая имеет аналогичный API с многопроцессорной обработкой в Python. Пример следующий:

 #! /usr/bin/env python
#
# distributed processing demo api
#
from dprocessing import Pool, SSHBackend


def woker(*args, **kwargs):
    print args
    print kwargs

ssh_config = {
    'artisans': [
        {'host': '172.18.217.1', 'username': 'user',
            'password': 'pass', 'cores': 2},
        {'host': '172.18.217.2', 'username': 'user',
            'password': 'pass', 'cores': 4},
    ],
}
backend = SSHBackend(**ssh_config)

pool = Pool(backend)
pool.map(woker, range(10)) # run 10 jobs in 6 processes by 2 artisans
  

Могут ли эти проекты достичь такой цели, чтобы запускать задания на нескольких компьютерах с помощью простого API? И не могли бы вы дать мне несколько советов по внедрению фреймворка?

Ответ №1:

Может быть, вы ищете что-то вроде Scientific.BSP и Scientific.MPI?

Упомянутые вами проекты, безусловно, могли бы решить проблему на каком-то уровне. В конце концов, некоторые из них реализуют CORBA и подобные CORBA спецификации, которые определенно предназначены для обеспечения модели выполнения «вы даже не знаете, где выполняется ваш код». Но я не мог признать, что эти технологии обеспечивают такую простую в использовании абстракцию, как multiprocessing делает. Ну, sprt of, это то, что не имеет четко определенных критериев сравнения и в целом сильно зависит от личных вкусов и предыдущего опыта…