Рубрики
Без рубрики

Распределенные и параллельные вычисления с/для Python

Распределенные и параллельные вычисления с/для Python. Tagged с Python, Disy, распределенным, параллельным.

Disy – это всеобъемлющая, но простая в использовании структуру для создания и использования вычислительных кластеров для выполнения вычислений параллельно для нескольких процессоров в одной машине (SMP), среди многих машин в кластере, сетке или облаке. Dispy хорошо подходит для парадигмы данных (SIMD), где вычисление (функция Python или автономная программа) оценивается с помощью различных (больших) наборов данных независимо без связи между вычислениями (за исключением вычислений, посылающих предварительные/промежуточные результаты или передавать файлы в файлы клиент). Если потребуется коммуникация/сотрудничество между задачами, можно использовать модуль распределенных процессов связи Pocos Framework.

Некоторые особенности Disy:

  • Disy реализуется с помощью Pocos, независимой структуры для асинхронного, одновременного, распределенного сетевого программирования с задачами (без потоков). Pycos использует неблокирующие розетки с механизмами уведомления ввода/вывода Epoll, Kqueue, опроса и порта завершения ввода -вывода Windows (IOCP) для высокой производительности и масштабируемости, поэтому дити работает эффективно с одним узлом или большим кластером (ы) узлов – Один пользователь сообщил, что использует Disy с 500 узлами в платформе Google Cloud. Сам PyCos поддерживает распределенные/параллельные вычисления, включая передачу вычислений, файлов и т. Д., А также передачу сообщения (для связи с клиентскими и другими вычислениями). В то время как Disy может использоваться для планирования заданий вычислений для получения результатов, POCO могут использоваться для создания распределенных процессов связи для широкого спектра вариантов использования, включая обработку в памяти, потоковую передачу данных, аналитику в реальном времени (живая).

  • Вычисления (функции Python или автономные программы) и их зависимости (файлы, функции Python, классы, модули) автоматически распределяются по узлам. Вычисления, если они являются функциями Python, также могут передавать файлы на узлах клиенту.

  • Расчетные узлы могут быть где угодно в сети (локальная или удаленная). Для безопасности можно использовать либо простую аутентификацию на основе хэша, либо шифрование SSL.

  • После того, как каждое выполнение завершено, результаты выполнения, вывода, ошибок и трассировки исключений доступны для дальнейшей обработки.

  • Обработка в памяти поддерживается (с некоторыми ограничениями под Windows); то есть вычисления могут работать над данными в памяти вместо загрузки данных из файлов каждый раз.

  • Узлы могут стать доступными динамически: Disy будет планировать задания всякий раз, когда доступен узел, и вычисления могут использовать этот узел.

  • Механизмы уведомления о статусе работы и кластера позволяют асинхронную обработку результатов работы, индивидуальных планировщиков работы и т. Д.

  • Поддерживается восстановление сбоев на стороне клиента и на стороне сервера:

Если пользовательская программа (клиент) неожиданно завершается (например, из -за исключения Uncaught), узлы продолжают выполнять запланированные задания. Результаты запланированных (но незаконченных во время аварии) задания для этого кластера можно легко извлечь с помощью (ошибкой) Восстановить работу.

Если вычисление помечено повторным, когда создается кластер, а узел (сервер), выполняющий задания для этого вычисления, не удается, MISPY автоматически пересматривает эти задания в другие доступные узлы.

  • Disy может использоваться в одном процессе для использования всех узлов исключительно (с JobCluster) или в нескольких процессах одновременно обмена узлами (с SharedJobcluster и Dispyscheduler (программа общего выполнения) ).

  • Мониторинг и управление кластером с веб -браузером, в том числе в устройствах iOS или Android.

  • Настройка частной вычислительной инфраструктуры с существующим оборудованием (единственное требование, что компьютеры подключены и устанавливают Python) или используют внешние сервисы облачных вычислений (пользователи сообщают об использовании Dispy с Amazon EC2, Google Cloud и Microsoft Azure), либо исключительно, либо в дополнение к Любые локальные вычислительные узлы. Смотрите Облачные вычисления Для деталей.

Disy работает с Python Versions 2.7+ и 3.1+ и протестирован на Linux, OS X и Windows; Это может работать и на других платформах. Disy работает с JIT Interprerer Pypy также.

Справка

Оригинал: “https://dev.to/hasansajedi/distributed-and-parallel-computing-withfor-python-2f19”