Python SCOOP (программное обеспечение) - Python SCOOP (software)
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Оригинальный автор (ы) | Марк Паризо и Янник Холд |
---|---|
Разработчики) | Янник Холд и Оливье Ганьон |
Стабильный выпуск | 0.7.1 / 17 марта 2014 г. |
Репозиторий | |
Написано в | Python |
Операционная система | POSIX -соответствующий |
Платформа | Кроссплатформенность |
Тип | Распределенных вычислений рамки |
Лицензия | LGPL |
Интернет сайт | www |
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))
Рекомендации
- ^ "ZeroMQ - Руководство, Питер Хинтьенс". iMatix Corporation. Получено 4 октября 2012.