Создание вычислительной системы для - HPC-UA

advertisement
Міжнародна конференція "Високопродуктивні обчислення"
HPC-UA’2012 (Україна, Київ, 8-10 жовтня 2012 року)
________________________________________________________________________________________________________________________
Создание вычислительной системы для
распределённых вычислений на графических
модулях обычных ПК
Зубко Павел1 , Иваненко Дмитрий 2
Факультет інформатики и вычислительной техники НТУУ «КПИ», пр. Победы 37, Киев, Украина
Факультет информационных технологий Криворожского национального университета, ул. 22 Партсъезда,
11, Кривой Рог, Украина
1
2
xklikx@yandex.ru, teraflop@bigmir.net
Ключевые слова
Распределённые вычисления, параллельные вычисления, OpenCL, bitcoin
1 Вступление
В данной статье были проанализированы возможности неграфических вычислений на видеокартах, а также
использование широко распространённых графических чипов домашних ПК для вычислений в распределённых
системах.
В качестве примера создана система для генерации «биткоин» (электронная пиринговая криптовалюта) на
базе домашних ПК, в которой вычисления производились на графических чипах ATI Radeon 5870 HD, и ATI
Radeon 5830 HD. Были проведены тесты производительности для вычислений внутри системы. А также
настроена система для генерации блоков в составе пула deepbit.net
2 Теоретическая часть
2.1. Техническая основа
GPU состоит из нескольких десятков (30 для NVIDIA GT200, 20 — для Evergreen, 16 — для Fermi)
процессорных ядер, которые в терминологии NVIDIA называются Streaming Multiprocessor, а в терминологии
ATI — SIMD Engine именно поэтому графический ускоритель может одновременно обрабатывать огромное
количество потоков данных (вплоть до нескольких тысяч), используя встроенные в него наборы инструкций.
Если требуется одинарная точность вычислений, то скорость их выполнения может возрасти в десятки и
даже сотни раз по сравнению с любым центральным процессором x86, если же требуется двойная точность, то
прирост уже не столь впечатляющ, но всё же иногда может достигать нескольких десятков раз. Это ярко
иллюстрирует рис. 1, который отображает время перекодирования видеоролика используя CPU или видеокарту.
Для функционирования NVIDIA CUDA необходима видеокарта серии GeForce 8000 или выше, причём их
количество в персональном компьютере может достигать шести (существуют материнские платы с
необходимым числом разъёмов PCI Express x16), которые к тому же могут быть двухпроцессорными.
Для функционирования AMD (ATI) Stream необходима видеокарта серии Radeon HD 2000 или выше, как и
у CUDA, их количество может достигать шести. Специализированные ускорители от AMD (ATI) для
неграфических вычислений называются FireStream, оснащаются памятью вплоть до четырёх гигабайт и тоже
имеют один видеовыход.
2.2. Процесс генерации биткоинов
Биткоин - электронная пиринговая криптовалюта, созданная в 2009. Биткоины выдаются за успешное
решение математической задачи восстановлению исходной последовательности из хэша Чем больше таких
решений, тем более устойчивой будет сеть, поэтому что для того, чтобы обрушить сеть, хакерам понадобится
потратить столько же времени, сколько потратили его совокупно все те, кто генерировал блоки. Для этого
-183-
Міжнародна конференція "Високопродуктивні обчислення"
HPC-UA’2012 (Україна, Київ, 8-10 жовтня 2012 року)
________________________________________________________________________________________________________________________
понадобятся невероятные вычислительные мощности, потому что даже мощнейший суперкомпьютер мира в 14
раз слабее, чем все компьютеры сети bitcoin в совокупности.
Добыча криптовалюты биткоин стала возможной лишь благодаря использованию распределённой базы
данных, в которой хранятся все данные о перемещении ваших средств и состоянии вашего личного счёта, для
обеспечения безопасности используются криптографические методы. Т.е. все транзакции публичны и хранятся
в распределённой БД, для предотвращений многократной траты программа, которая реализует транзакцию,
содержит адрес получателя, сумму и криптографические подписи.
Эти данные публикуются в P2P-сети, которая проверяет корректность этих данных при помощи
общедоступного ключа отправителя, контролирует достаточность суммы на балансе и переадресует всем узлам
сети.
Транзакция остается несертифицированной до тех пор, пока она не включена в блок цепочки блоков
Bitcoin.
Первой транзакцией каждого блока-кандидата является начисление генерирующему узлу вознаграждения
в 50 биткойн. После создания каждых 210 000 блоков вознаграждение будет уменьшаться в 2 раза. Таким
образом, общее число биткойнов не превысит 21 000 000(рис.2). Это не является большой проблемой, так как
минимальный объём транзакции составляет 10−8 биткойн.
2.3 Генерация биткоинов в составе пула deepbit.net
Для уменьшения влияния фактора удачи и более равномерного и предсказуемого заработка, пользователи могут
объединяться в вычислительные пулы. Вклад пользователя в пул оценивается в шарах (shares). Шара — это кандидат
32
в подпись блока, в среднем нужно 2 операций хэширования для нахождения одной шары. Для нахождения блока в
среднем требуется количество шар, равное текущей сложности. Существуют 3 основных типа начисления наград



Proportional — После нахождения пулом блока награда делится пропорционально вкладу каждого участника.
PPS — Оплачивается каждая присланная шара. Оценивается как текущее количество монет в блоке
деленные на текущую сложность.
Score — Оценочная система оплаты шар, алгоритм определяется пулом. Как правило, системы похожи на
Proportional, но помимо вклада каждого участника системы стремятся оценить и его актуальность.
Для тестирования возможностей распределённых вычислений была собрана вычислительная система
процессор: AMD Phenom II X4 955 2800 МГц;
материнская плата: Asus M4A98 GTD PRO (SocketAM3);
оперативная память: Goodram DDR3 1600 MHz
видеокарта: AMD Radeon HD 5870 1024Мб DDR5 PCI Express 2.0; AMD Radeon 5830
Генерация биткоин эфективна только на видеокартах Radeon, потому что технология добычи использует
OpenCl (OpenCl Miner)
Программное обеспечение сетевого узла биткойн существует в двух видах: приложение с графическим интерфейсом
и фоновое приложение. В обоих случаях оно может управляться через программный интерфейс по протоколу JSONRPC (RFC 4627) Это позволяет достаточно просто решить такие задачи, как:


Подключить к одному узлу несколько программ-майнеров, создав собственный пул;
Интегрировать узел с веб-магазином, обменником или другой службой, связанной с оплатой
-184-
Міжнародна конференція "Високопродуктивні обчислення"
HPC-UA’2012 (Україна, Київ, 8-10 жовтня 2012 року)
________________________________________________________________________________________________________________________
2.4 Иллюстрации
Рис. 1 Прирост производительности при использовании графического чипа на примере кодирования
видеоролика
Рис. 2 Количество сгенерированных биткоинов с течением времени
-185-
Міжнародна конференція "Високопродуктивні обчислення"
HPC-UA’2012 (Україна, Київ, 8-10 жовтня 2012 року)
________________________________________________________________________________________________________________________
Рис. 3 Процесс генерации биткоинов. Производительность системы
.
3 Заключение
Таким образом, хочется подчеркнуть, что высокопродуктивные вычисление стали широкодоступными в наше
время. При этом вычислительные мощности таких систем во многом превосходят возможности передовых
суперкомпьютеров.
В текущий момент, существует множество проектов, которые используют возможности множества
вычислительных узлов, не только для коммерческой выгоды а и в социальных и научных проектах.
Ссылки
1)http://www.ixbt.com/video3/rad.shtml - Особенности архитектуры AMD/Ati Radeon
2) http://mrivkin.narod.ru/Publ/RASPBD.ht m - Распределённые СУБД
3) https://bitcointalk.org/index.php?topic=51565.0 – Вычислительный пул своими руками
4) http://deepbit.net – крупнейший пул
-186-
Download