Публикации по теме 'distributed-systems'


Дизайн системы WhatsApp
Служба чата в реальном времени Оригинал статьи опубликован на сайте systemdesign.one автором NK . Популярными реализациями службы чата являются следующие: Facebook-мессенджер Слабый Раздор Телеграмма Отказ от ответственности: некоторые из связанных ресурсов являются аффилированными. Требования Пользователь ( отправитель ) может начать диалог в чате один на один с другим пользователем ( получатель ). Отправитель может видеть сигнал подтверждения для получения и..

Распределенная синхронизация (SGD)
Sync SGD стала самой популярной парадигмой обучения для крупномасштабных тренировок. Давайте посмотрим, почему? Давайте изучим алгоритм распределенного SGD со всеми сокращениями: Распределенная : параметры архитектуры модели могут быть распределены между несколькими машинами C1, C2, . . . , См. All-reduce : вычисление некоторого сокращения (обычно суммы) данных на нескольких машинах C1, C2, . . . , Cm и материализовать результат на всех этих машинах C1, C2, . . . , См...

Как запускать функции Python параллельно с помощью Ray API
Создавайте распределенные приложения Есть много способов запуска функций параллельно, но может быть много предостережений, с которыми нужно иметь дело. Мы можем обойти все эти ограничения, используя Ray — простой универсальный API для создания распределенных приложений. Что Рэй может сделать для вас: Предоставление простых примитивов для создания и запуска распределенных приложений. Предоставление конечным пользователям возможности распараллелить один машинный код практически..

Ускорение обучения LLM с помощью конвейерного параллелизма с балансировкой памяти
При конвейерном параллелизме графические процессоры согласовываются с определенными этапами конвейера, каждый из которых отвечает за подмножество уровней модели. Соответственно, между этапами конвейера существуют зависимости данных, требующие поступления необходимых данных либо для прямого, либо для обратного вычисления. Чтобы не допустить простоя графических процессоров, входной пакет делится на микропакеты и обрабатывается конвейерным способом, как показано на рисунке выше. Один..

Распределенное кэширование с Ruby on Rails
Задержка равна нулю — одно из заблуждений распределенных вычислений Зачем нужно кэширование? Игнорирование влияния задержки сети в вашем приложении может быть огромной ошибкой, особенно для приложений, которые хотят хорошо масштабироваться по требованию. При наличии облачной инфраструктуры в наши дни кажется, что проблемы масштабирования можно решить, просто увеличив количество реплик и предоставив больше серверов. Это может решить ваши проблемы с доступностью, но не может..

Проектирование системы: методы снижения затрат на облако — 8 лучших практик
Оптимизация затрат на облако объединяет стратегии, методы, лучшие практики и инструменты, помогающие снизить затраты на облако, найти наиболее экономически эффективный способ запуска ваших приложений в облачной среде и максимизировать ценность бизнеса. Каждый метод позволяет организациям оптимизировать использование облака и минимизировать расходы. 𝟭. 𝗥𝗲𝗱𝘂𝗰𝗲 𝗨𝘀𝗮𝗴𝗲 Оптимизируйте количество и размер ресурсов, сохраняя при этом производительность приложения (например: - Обрезайте..

Распараллеливание рабочей нагрузки в Kubernetes с помощью Python в стиле «сделай сам»
Потому что иногда вам просто нужно сделать это самостоятельно с помощью Python. TL;DR: в этом посте описывается базовая схема, которая позволит вам распределять [крупные] задачи между несколькими рабочими процессами, работающими в Kubernetes, для параллельного выполнения. Он использует контейнеры, которые запускают службу прослушивателя (которую вы пишете). Вы развертываете эти контейнеры с помощью контроллера рабочей нагрузки Kubernetes Job. Затем вы отправляете свои различные задачи..