Главная | Новости | Полезная информация | Документация | Школа | Файлы | Ссылки | Форум
 Текущая сборка
RusNuke Current
Web-SVN
SVN репозиторий
Bug Tracker

 Навигация
Главная
Новости
Обзоры
Информация
Документация
Вопросы и ответы
Каталог файлов
Каталог ссылок
Информация о проекте
Рассылка новостей
Контакт с автором
Наполнение сайта
Добавить статью
Добавить файл
Добавить ссылку

Наши услуги
Обменный пункт WM
Реклама на проекте
Платные услуги
Услуги хостинга

Отраслевые публикации
Статьи по отраслям

 Поиск по сайту


Google
Web nukefiles.ru


Анализ распределенных бэкэндов Python



За последние несколько лет Python стал языком общения в области наук о данных и искусственного интеллекта, и все известные системы глубокого обучения (Keras, Pytorch, MXNet) используют Python в качестве основного языка интерфейса. По сравнению с конкурирующими языками Python соперничает или превосходит практически во всех аспектах DS & AI: новейшие алгоритмы машинного обучения и их эффективную реализацию (Scikit-Learn, LightGBM, XGBoost), манипулирование данными и их анализ (Pandas, cuDF), эффективные библиотеки числовых вычислений (Numpy). , PyPy, Numba), вычисления на GPU (CuPY) и программирование веб-API (Flask, Celery).

Ахиллесова пята Python - это его слабость в параллельных многопоточных и многопроцессорных рабочих нагрузках из-за глобальной блокировки интерпретаторов (GIL) как части его базовой конструкции. Это привело к поиску обходных решений в лагере Python, а также к альтернативным языкам с большим упором на параллелизм, таким как GoLang. Потребность в параллелизме ускорилась благодаря продолжающемуся периоду гонки вооружений в аппаратном обеспечении: потребительские ЦП перешли с 4 ядер на 32 ядра (AMD 2990WX) в течение нескольких лет, а доступные узлы облачных вычислений теперь предоставляют по 224 ядра (Amazon u-6tb1.metal).

Для ИИ необходимость параллелизма заключается не только в отдельных рабочих станциях или вычислительных узлах, но и в организации конвейеров обработки ИИ, распределенных по потенциально тысячам вычислительных узлов. Как и в случае с изменениями в ядрах ЦП, скорость передачи данных по сети увеличилась с 1 Гбит / с до обычных 10–100 Гбит / с подключений как для локального, так и для облачного использования. До недавнего времени большая часть технологии Big Data такого типа была основана на таких Java-фреймворках, как Hadoop, но изменения в программном и аппаратном обеспечении привели к появлению новых типов решений, в том числе трех основных сред Python для распределенной обработки для AI: PySpark, Dask и Ray.

Структуры распределенной пакетной обработки

Apache Spark и его интерфейс Python PySpark является самым старым из фреймворков, с начальной версией GitHub начиная с 4 октября 2010 года. Spark зарекомендовал себя как одна из основных технологий больших данных, получив широкое распространение в корпоративном мире. Он обеспечивает расширение парадигмы программирования Map-Reduce, которая решает задачи пакетной обработки путем сопоставления более крупной задачи с набором мини-пакетов, распространяемых среди рабочих (Map), и объединяет результаты после завершения каждого мини-пакета (Reduce) , Spark обрабатывает направленные ациклические графы (DAG) вычислительных конвейеров Map-Reduce, сохраняя данные, распределенные между работниками в течение обработки DAG. Граф задач определен функционально, и задачи выполняются лениво после оптимизации порядка вычисления DAG.

И Dask, и Ray основаны на центральной идее Spark о параллельной функциональной оценке группы обеспечения доступности баз данных с распределением данных по всему процессу. Dask и его бэкэнд-планировщик Distributed - более новая платформа, с оригинальной версией GitHub 29 января 2015 года. В то время как Spark был написан для Java и Scala, Dask написан для Python и предоставляет богатый набор распределенных классов. Dask также предоставляет более богатый низкоуровневый API с поддержкой классов актеров, которые имеют решающее значение для распределенного обучения моделей искусственного интеллекта.

Ray - это последняя платформа, с первоначальной версией GitHub от 21 мая 2017 года. Как и Dask, у Ray есть Python-API и поддержка. Он имеет несколько высокопроизводительных оптимизаций, которые делают его более эффективным. В отличие от Spark и Dask, задачи с энтузиазмом выполняются в каждом узле, поэтому каждый рабочий процесс запускается, как только он получает необходимые данные. Данные в рабочем узле хранятся с использованием объектов Apache Arrow, которые обеспечивают совместное использование объектов без копирования между всеми процессами, которые работают на узле.



admin1 - 23/06/2019



Комментарии к статье
Вы не можете отправить комментарий анонимно, пожалуйста зарегистрируйтесь.


directory
пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ - пїЅпїЅпїЅпїЅпїЅпїЅ

 Авторизация
Логин
Пароль
Регистрация на сайте
Забыли свой пароль?

 Сейчас на сайте
Гостей: 9
Пользователей: 1
Всего: 10

Пользователи:
01: bhavik

 Наш опрос
Какой форум предпочитаете?

Invision Power Board
vBulletin
Phorum
MyBB
PunBB
Simple Machines Forum
phpBB
BBtoNuke



Результаты
Другие опросы

Ответов: 1339
Комментариев: 10

 Рассылка новостей
Подробнее...

 Реклама


Главная | Новости | Полезная информация | Документация | Школа | Файлы | Ссылки | Форум
Web site engine's code is Copyright © 2002 - 2021
Страница сгенерирована за 0.0209 с. Выполнено 17 запроса к базе данных за 0.0043 с.

Rambler's Top100 Рейтинг@Mail.ru liveinternet.ru: показано число просмотров и посетителей за 24 часа