Крупномасштабные вычисления скоро станут возможны на домашних ПК

Учёные из Университета Карнеги-Меллона разработали основу для проведения крупномасштабных вычислений с использованием самых обычных персональных компьютеров. Это стало возможным благодаря разработке принципиально нового алгоритма обработки данных с жёсткого диска.

На основе данного алгоритма была создана программа GraphChi, предназначенная для проведения вычислений, имеющих отношение к столь востребованным нынче графам (см. статью в «Википедии»). По мере развития технологий наборов данных становится больше, а графы всё более и более актуальными во многих областях. Они востребованы для решения как повседневных, вроде планирования рекламной кампании, так и научных задач, вроде попыток разобраться с тем, как работает человеческий мозг.

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

Благодаря такому подходу, далеко не самый производительный MacMini (жёский диск которого был заменен на SSD) смог проанализировать социальный граф на 40 миллионов человек с 1,2 миллиардом взаимодействий за 59 минут. Ранее для этой задачи требовался кластер из 1000 компьютеров, выполнявший такую задачу за 400 минут.

«Потребность в подобных вычислениях будет постоянно увеличиваться», — говорит Карлос Гестрин (Carlos Guestrin), один из ведущих разработчиков GraphChi, — «И наша разработка позволит производить их, не прибегая к облачным вычислениям или суперкомпьютерам. Отныне компании и стартапы смогут решать все задачи, связанные с построением графов, на одном обычном компьютере».

Ознакомиться с программой может любой желающий — исходные коды (она написана на С++, но имеется также и Java-версия) и документация доступны в Сети.