Распределённые вычисления в сети Binarium

Концепция распределённых вычислений общего назначения

Общеизвестно, что большинство используемых сегодня Blockchain-архитектур отличаются фундаментальной невозможностью запуска любых распределённых вычислений напрямую. Дело в том, что Blockchain не образует распределённый суперкомпьютер в его классическом понимании[1]. Blockchain образует одноранговую сеть, с полностью равноправными узлами, а значит и с полностью равноправными вычислительными операциями, составляющими основу работы сети. Обычно применяется  техника "Доказательства Работы" (PoW), при которой все узлы выполняют одну и ту-же операцию, соревнуясь, кто её выполнит быстрее. При этом правильность выполненной работы проверяется консенсусом решений всех остальных участников сети.[2]

Однако, ничто не мешает использовать образуемую узлами блокчейна одноранговую p2p (Peer to Peer) сеть, в качестве транспортной платформы для обмена промежуточными данными распределённых вычислений. Это достигается ценой некоторой централизации Blockchain-сети, путём ввода в схему сервисов управления вычислениями, которые выполняют получение и распределение (анонсирование) вычислительных задач через Blockchain-сеть. Пока полезных вычислительных задач нет, работает обычная схема PoW (майнинг), но после получения вычислительной задачи узел переключается на её обработку.

Использование встроенной в блокчейн, конвертируемой криптовалюты, позволяет оплачивать вычислительным узлам участие в полезных вычислениях. При этом нет необходимости каким-либо образом внедрять механизм таких наград в сам Blockchain. Сервис управления анонсирует задачи по одноранговой сети, принимает и обрабатывает решения задач, после чего распределяет награды, используя фонд оплаты, роль которого может играть отдельный кошелёк, управляемый сервисом распределения.

При этом учитывается, что запуск вычислительных задач по географически распределённой p2p-сети, будет отличаться существенными задержками приёма-передачи промежуточных результатов. Тем не менее, для подавляющего большинства сложных прикладных задач (рендеринг, газогидродинамика, молекулярная динамика и физика твёрдого тела, обучение нейронных сетей и анализ больших данных, например в медицине, хранение данных) эти задержки существенно не влияют на время решения подобных задач[3]. Влияют более фундаментальные математические законы, определюящие эффективность распараллеливания той или иной задачи, актуальные и для классических суперкомпьютеров и любых вычислительных систем обладающих возможностями параллелизма, такие как Закон Амдала, закон Густавсона-Барсиса и метрика Карпа-Флэтта[4].

Описанная выше концепция частично реализована в сети Binarium. Конкретные детали реализации являются коммерческой тайной, поэтому описаны лишь в общих чертах, достаточных для понимания работы технологии.

Для оценки производительности суперкомпьютеров любого типа, сегодня принято использовать метрику FLOPS32, отражающую количество выполняемых арифметических операций сложения, над 32-битными числами с плавающей запятой (числа одинарной точности).[5]

Методика расчёта метрики FLOPS32 для сети Binarium

Расчёт производится на основе следующих показателей:

  • Ch Средняя скорость одного CPU ядра (хешей в секунду) для алгоритма Binarium_hash_v1: ~12000
  • Cc Среднее количество одновременно работающих ядер в типовом PC: 3
  • Gc Среднее количество GPU вычислителей (видеоплат) в типовом PC: 1
  • Cf Средняя скорость FLOPS32 1 ядра CPU (Стандартный Intel Core i5 3470): 9280
  • Gf Средняя скорость FLOPS32 1 видеоплаты (Стандартный nVidia GeForce GTX 1050 - 1060): 2750000
  • Nh Текущая (на февраль 2020) активная мощность (хешей в секунду) сети для алгоритма Binarium_hash_v1 по данным Блокчейна 4791500

Сперва вычисляется количество "типовых" компьютеров в сети по формуле:

AVG = Nh / (Ch * Cc)

Затем вычисляется метрика FLOPS32 по формуле

FLOPS32 = AVG * (Cc * Cf + Gc * Gf)

Обратите внимание, что математически формула может быть приведена к виду

FLOPS32 = Nh / Ch * Cf + AVG * Gc * Gf

Что показывает независимость итоговой вычислительной мощности от конкретной конфигурации "типового" компьютера, а только от мощности сети Nh в алгоритме Binarium_hash_v1 и средней скорости Ch CPU-ядра в указанном алгоритме. Первое является точным значением и одной из текущих характеристик блокчейна, второе достаточно точно в пределах собранной нами статистики по работе различных процессоров с алгоритмом Binarium_hash_v1. Cf также является достаточно точным значением, которое не зависит от поколения CPU, см.[6]. Единственным допущением является наличие графического ускорителя из расчёта 1 ускоритель на 3 вычислительных CPU-ядра - Cc, Gc и Gf. Таким образом, полученное значение достаточно объективно отражает потенциальную мощность суперкомпьютера.

Материалы

  1. The GRID Checklist - http://dlib.cs.odu.edu/WhatIsTheGrid.pdf - Argonne National Laboratory & University of Chicago, 2002
  2. BlockChain paper - https://scet.berkeley.edu/wp-content/uploads/BlockchainPaper.pdf
  3. William Dally, Brian Towles. Principles and Practices of Interconnection Networks. Morgan Kaufmann Publishers Inc. San Francisco, CA, USA, 2003.
  4. Цилькер Б.Я. Организация ЭВМ и систем: учебник для вузов / С.А. Орлов, Б.Я. Цилькер. - СПб.: Питер, 2011. - 688 с.
  5. FLOPS - https://en.wikipedia.org/wiki/FLOPS
  6. Export Compliance Metrics for Intel® Microprocessors - https://www.intel.com/content/www/us/en/support/articles/000005755/processors.html

© 2018 - 2020 Binarium & Aurora Project. All right Reserved.

Published: 6 лет назад, last edit: 5 лет назад