Python SCOOP (программное обеспечение) - Python SCOOP (software)

Python SCOOP
Оригинальный автор (ы)Марк Паризо и Янник Холд
Разработчики)Янник Холд и Оливье Ганьон
Стабильный выпуск
0.7.1 / 17 марта 2014 г.; 6 лет назад (2014-03-17)
Репозиторий Отредактируйте это в Викиданных
Написано вPython
Операционная системаPOSIX -соответствующий
ПлатформаКроссплатформенность
ТипРаспределенных вычислений рамки
ЛицензияLGPL
Интернет сайтwww.pyscoop.org

SCOOP (Масштабируемые параллельные операции в Python) - это программный модуль Python для распределения одновременных задач в различных средах, от разнородных сетей рабочих станций до суперкомпьютеров.

Оно использует ØMQ и Гринлет пакет как строительные блоки для инкапсуляции и распределения задач (названный Будущее ) между процессами и / или системами. Его интерфейс вдохновлен PEP-3148 предложение.

SCOOP нацелен на научные приложения, которые требуют выполнения многих слабосвязанных задач с использованием всех доступных аппаратных ресурсов. Эти ресурсы должны быть доступны через SSH.

История

SCOOP был инициирован Янником Холдом и Марком Паризо из Лаборатории компьютерного зрения и систем Université Laval. Это итеративный шаг над устаревшим модулем DTM фреймворка DEAP для разработки эволюционный алгоритм. В то время как DTM использовал MPI для связи SCOOP вместо этого использует ØMQ.

Топология сети

SCOOP использует архитектуру брокера[1] распространять свои фьючерсы. Он основан на центральном элементе, называемом брокером, который отправляет работу своим работникам. Основное отличие этого паттерна от Мастер / раб топология находится в Источнике Будущего. В архитектуре брокера Futures исходит от рабочего, который расположен на периферии топологии, а не от мастера в архитектуре Master / Slave. Это обеспечивает более высокую надежность в отношении ошибок рабочих и, как правило, лучшую производительность благодаря общей функции брокера. Поскольку ему не нужно сериализовать или десериализовать какие-либо Future, чтобы направлять их по сетке, его рабочая нагрузка состоит из сетевого или межпроцессного ввода-вывода и почти не требует обработки ЦП. Это снижает узкое место топологии брокера.

Архитектура Broker не подвергает такому воздействию сетевую структуру и элементы, как полностью распределенная топология, поскольку для каждого рабочего требуется только одно соединение.

Пример

Вступительная параллель "Hello, world!" пример реализован так:

из совок импорт фьючерсыdef Привет, мир(ценить) -> ул:    возвращаться "Привет, мир из будущего #{}".формат(ценить)если __имя__ == "__главный__":    return_values = фьючерсы.карта(Привет, мир, классифицировать(16))    Распечатать(" п".присоединиться(return_values))

Рекомендации

  1. ^ "ZeroMQ - Руководство, Питер Хинтьенс". iMatix Corporation. Получено 4 октября 2012.

внешняя ссылка