– Вторая часть статьи. Начало читайте здесь.

Множество проектов, ведущих распределённые вычисления, используют платформу BOINC, которую разработали около десяти лет назад в Калифорнийском университете в Беркли. Первый шаг к участию в одном из них – установка программы BOINC Manager.

Установка и настройка клиента BOINC

После скачивания и установки клиентской программы можно указать один или несколько проектов, к которым есть желание присоединиться. Начиная с шестой версии клиент BOINC поддерживает гибкие настройки вычислений, позволяющие точно указать, какой частью аппаратных ресурсов человек готов пожертвовать для нужд науки. Кроме того, можно задать в BOINC Manager автоматическую пазу при запуске некоторых программ или вести вычисления лишь в определённые часы. Расчёты можно в любой момент полностью или выборочно приостановить вручную и так же легко возобновить.

Настройки вычислений на центральном и графическом процессоре в клиенте BOINC

Помимо опций самого клиентского приложения, для каждого проекта предусмотрены настройки через веб-интерфейс на личной странице участника.

Настройки проекта BOINC через веб-интерфейс

Оценить вычислительную мощность компьютера можно встроенным бенчмарком BOINC. Он же иногда используется для сравнения реальной производительности различных конфигураций.

Встроенный тест производительности клиента BOINC

Выбор проектов с учётом доступных ресурсов

При выполнении научных расчётов важную роль играет производительность блоков FPU, осуществляющих вычисления с плавающей запятой. Точность вычислений может быть разная. Обычно говорят о трёх реализованных на практике типах:

  • FP16 (Half Precision) — половинная точность вычислений с плавающей запятой;
  • FP32 (Single Precision) — одинарная точность вычислений с плавающей запятой;
  • FP64 (Double Precision) — двойная точность вычислений с плавающей запятой.

Именно последний тип вычислений (FP64, или binary64 по стандарту IEEE 754) наиболее востребован в расчётах BOINC и других научных программах, поскольку он позволяет оперировать значениями в диапазоне от ≈ 10-308 до 10308 с точностью до 15 знака (в десятичном выражении) после запятой. Однако доля вычислений с одинарной точностью тоже весьма велика и даже достаточна для отдельных проектов.

Современные видеокарты поддерживают технологии вычислений общего назначения. Любой видеочип, выпущенный после 2007 года, справится с научными расчётами лучше, чем сопоставимый по цене центральный процессор близкого поколения.

Архитектура и скорость вычислений типа FP32 и FP64 некоторых видеокарт

Если раньше в этом сегменте доминировала nVidia (в том числе за счёт выпуска ускорителей Tesla той же архитектуры), то сейчас всё больше проектов смотрят в сторону AMD (ATI).

Пример выполнения проектов BOINC на видеокарте AMD

Появились и такие проекты, которые поддерживают ускорение на видеокартах AMD, но не работают с продуктами nVidia.

Проекты BOINC с эксклюзивной поддержкой видеокарт AMD

Предположительно это связано с тем, что при высокой скорости вычислений FP32 видеокарты nVidia на чипе GK104 демонстрируют сильное падение производительности в расчётах типа FP64. К примеру, если Radeon HD 6930 выполняет вычисления с двойной точностью в четыре раза медленнее, чем с одинарной (480 и 1920 гигафлопс соответственно), то GeForce GTX 680 – в двадцать четыре (128 и 3090 гигафлопс).

Когда “последний” не означает “лучший”

Само по себе использование более современных чипов далеко не всегда означает прирост в скорости. Например, HD 6850 не способен считать с двойной точностью, а HD 5850 выполняет вычисления FP64 со скоростью до 418 гигафлопс.

Топовые видеокарты часто обладают производительностью многопроцессорного сервера. Например, видеокарта с чипом HD 7970 содержит 2048 вычислительных ядер, объединённых в 32 блока. Её теоретическая производительность составляет 3789 гигафлопс при операциях с одинарной и 947 гигафлопс – с двойной точностью.

Для сравнения: арифметическая часть процессора Core-i5 3570K обеспечивает 122 гигафлопса (FP32) и 61 гигафлопс (FP64) в турборежиме, а Intel HD Graphics 4000 даёт прирост ещё на 147 гигафлопс (FP32). У AMD A10-5800K расчётная производительность арифметической части также находится на уровне 122 гигафлопса (FP32) и 61 гигафлопс (FP64), но видеоядро Radeon HD 7660D обеспечивает четырёхкратный прирост – на 614 гигафлопс (FP32).

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

Например, задания проекта Einstein@home на компьютере с Core-i3 2100 и видеокартой Radeon HD 6850 обсчитываются со скоростью 49,5 гигафлопса, а POEM@home – 71,4 гигафлопса с теми же настройками. Оба проекта декларируют поддержку ускорения вычислений видеокартами AMD.

Затраты электроэнергии

Важным моментом является энергоэффективность разных систем. Сейчас она составляет от 1 до 20 гигафлопс на ватт, и этот параметр напрямую влияет на то, как увеличится ваш счёт за электроэнергию. С точки зрения экономичности привлекательны не только специализированные ускорители и серверные решения, но также APU и отдельные массовые видеочипы. У AMD наиболее интересные чипы расположены ближе к началу ценового диапазона, а у nVidia – преимущественно в его верхней трети.

К примеру, эффективность недорогой видеокарты Radeon HD 7770 составляет 16 гигафлопс на ватт в расчётах FP32, однако её использование для выполнения FP64 расчётов неоправданно – здесь она продемонстрирует результат всего в 1,0 гигафлопс на ватт. Даже у выпущенного в 2009 году чипа HD 4750 данный показатель был гораздо лучше – 2,5 гигафлопса на ватт.

GeForce GTX 660Ti принадлежит к верхней границе среднего ценового диапазона, но тратит энергию эффективнее: 16,4 гигафлопса на ватт в расчётах FP32 и 2,1 гигафлопса на ватт при вычислениях с двойной точностью.

Если (теоретически) держать BOINC в режиме постоянной обработки и не выключать компьютер, то при потребляемой мощности ≈ 200 Вт он добавит за месяц менее 150 кВт*ч к показаниям счётчика. В типичном сценарии использования (когда BOINC активен только в простое, а компьютер работает по несколько часов в день и выключается на ночь) – менее десяти киловатт-час.

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