Распределённые вычисления в сети 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
. Таким образом, полученное значение достаточно объективно отражает потенциальную мощность суперкомпьютера.
Материалы
- The GRID Checklist - http://dlib.cs.odu.edu/WhatIsTheGrid.pdf - Argonne National Laboratory & University of Chicago, 2002
- BlockChain paper - https://scet.berkeley.edu/wp-content/uploads/BlockchainPaper.pdf
- William Dally, Brian Towles. Principles and Practices of Interconnection Networks. Morgan Kaufmann Publishers Inc. San Francisco, CA, USA, 2003.
- Цилькер Б.Я. Организация ЭВМ и систем: учебник для вузов / С.А. Орлов, Б.Я. Цилькер. - СПб.: Питер, 2011. - 688 с.
- FLOPS - https://en.wikipedia.org/wiki/FLOPS
- 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.