У MIT створили алгоритм, який прискорює обробку великих даних у 100 разів


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Ми живемо в епоху великих даних, які часто представлені у вигляді розріджених матриць величезного розміру.

Розріджені тензори

Уявіть об’єм даних, які є відображенням великої кількості абсолютно всіх клієнтів Amazon у безлічі всіх товарів, представлених на майданчику. Подібні багатовимірні тензорні матриці матимуть 1 на місці, яке означає, що клієнт вже придбав товар, а 0 – в усіх інших. Ці матричні куби в основному складатимуться з нулів. Вони ж, у свою чергу, при математичних операціях над таблицями вхолосту витрачають ресурси процесора і вимагають надто багато місця для зберігання в пам’яті.

Більшість програмістів, щоб обійти наявну проблему розрідженості матриць, писали громіздкий код, який в результаті застосований лише до вузької області виникаючих проблем. Співробітники MIT на попередній конференції SPLASH представили систему, яка автоматично створює код, оптимізований для розріджених даних.

Система Тасо

Система Taco є компілятором для програм тензорної алгебри. Результат роботи в 100 разів перевершує за продуктивністю наявні неоптимізовані пакети ПЗ. Він також порівнянний з характеристиками вручну написаного і оптимізованого під певні завдання коду, який вимагає при цьому набагато меншої участі програміста.

Технічно алгоритм Taco на першому етапі відбирає всі ненульові значення, позбавляється від тих пар, в яких є множення на нуль, і після цих попередніх кроків записує значення, що залишилися, в пам’ять.

Наявні підходи вирішення проблеми

У подібний спосіб була розв’язана проблема оптимізації здійснюваних розрахунків. Припустімо, що необхідно виконати математичні дії над трьома таблицями: перші дві перемножити і результат скласти з третьою. Раніше при множенні таблиць між собою результат записувався в пам’ять, після чого було можливо використати його для складання з третьою таблицею.

Ядра обчислень

Проте в епоху великих даних подібний підхід потребує дуже багато часу. Зараз же Taco здійснює множинні розрахунки у рамках одного циклу, або так званого ядра. Один з авторів запропонованої системи, Фредрік Кьолстад, додає:

Якщо всі операції відбуваються в одному ядрі, всі обчислення виконуються швидше, без додаткового розміщення проміжних результатів у пам’яті з подальшим читанням з неї. Підхід Тасо все робить в одну ітерацію.

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

Зазначимо, що для роботи з Taco програмістові необхідно вказати лише розмірність використовуваного тензора, чи є він повністю розрідженим і, зрозуміло, директорію, де знаходиться файл з даними.

Результати роботи

Результати роботи вражають. Увесь об’єм даних Amazon при використанні розріджених тензорних таблиць становить близько 107 ексабайтів, що майже в 10 разів більше ємності всіх серверів Google. При використанні схеми стискування Taco великі дані Amazon займуть всього 13 гігабайтів, що з легкістю вмістить будь-який сучасний смартфон.

Садай Садаяппан, професор комп’ютерних наук Університету Огайо, захоплюється запропонованою системою:

Їхній компілятор дозволяє розробникам використати дуже складні розріджені матриці, не замислюючись над продуктивністю їх обчислення. Він автоматично згенерує найефективніший код. Їхня система міняє хід гри у галузі комп’ютерних обчислень й аналізу великих даних. Це одне з найбільше захоплюючих досягнень в області оптимізації компіляторів.

Джерело: MIT News

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *