Как Python-функция превращается в ноду: локальный уровень splime изнутри


В комментариях к прошлой статье сформулировали правило, под которым я подписываюсь обеими руками: “платить” за внепроцессный вызов имеет смысл тогда, когда сама работа дороже транспорта. clean_amount из квикстарта — десять строк, ноль зависимостей, микросекунды работы — этот порог не проходит. Свою задачу тот пример выполнил: показал механику publish/call в шесть строк. Но ноды существуют не для него: 2 + 2 через демон не нужно никому, и splime строился не для этого.
Возьмём случай, где оверхед оправдан, залезем под капот и посмотрим, что происходит между publish и call: где физически живёт нода, как Python-функция превращается в переносимый объект и как две ноды передают друг другу данные, которым не место в JSON.
Напомню контекст из прошлой статьи. splime упаковывает Python-функции в переносимые вычислительные элементы — ноды, узлы вычислительного графа, — связывает их в пайплайны и исполняет там, где вы скажете: в текущем процессе, через локальный демон или на другой машине.
Всё, что ниже, проверено на актуальной splime 0.4.9.

OpenAI изменила стратегию монетизации, запустив рекламу в ChatGPT. Теперь рекламная выручка компании превышает $1 млрд в годовом выражении, что помогает покрывать расходы на инфраструктуру ИИ.

В статье представлены 10 новых российских стартапов, включая решения для автовзыскания, клинической коммуникации и VR-обучения. Узнайте о финалистах Стартех.Премии и их инновационных продуктах.

Stranded Deep 2 от North Beach Games наконец-то представил первый трейлер и объявил сроки выхода в ранний доступ Steam. Узнайте, что нового предлагает этот амбициозный симулятор выживания.

В мире 1С нейросети уже пишут код и корректируют конфигурации. Узнайте, как AI-агенты помогают в автоматизации задач и что нового предлагает платформа для администраторов и пользователей.
Комментарии
Войдите, чтобы оставить комментарий.
Пока нет комментариев — станьте первым.