#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, это то, что не имеет четко определенных критериев сравнения и в целом сильно зависит от личных вкусов и предыдущего опыта…