Інструмент PaSh "поділяє" софт на частини, які потім запускає різних процесорах.
Програмісти розробили нову комп'ютерну систему під назвою PaSh, що прискорює роботу софту, зберігаючи точність. Про це пише портал SciTechDaily.
Технологія підвищує швидкість роботи софту серед програмування Unix, яка активно використовується вже майже 50 років. Ідея у тому, щоб розпаралелити програми — тобто розбити їх на складники і запустити ці частини одночасно на декількох процесорах. За словами розробників, цей метод значно прискорює виконання вебіндексування, обробку природної мови, аналіз даних та інших ресурсомістких завдань.
"Ці типи програм використовують дуже багато, наприклад, аналітики великих даних, біологи, інженери й економісти. Тепер вони можуть автоматично прискорювати свої програми, не побоюючись, що отримають неправильні результати", — пояснив керівник проєкту Нікос Василакіс, науковий співробітник Лабораторії комп'ютерних наук і штучного інтелекту Массачусетського технологічного інституту
Учений додав, що технологія також допоможе програмістам, які розробляють такі інструменти. Завдяки новій системі, їм не потрібно розбиратися з налаштуванням і прописувати команди для розпаралелювання програм, над яким дослідники працюють десятиліттями. Це складно зробити, адже деякі частини коду залежать від інших, і якщо запускати їх у неправильному порядку — програма просто не запрацює.
Unix завоювала масову популярність серед розробників завдяки тому, що дозволяє одному сценарію складатися з функцій, написаних кількома мовами програмування. Різні формати краще підходять для конкретних завдань або типів даних, і вирішити проблему буває набагато простіше, вибравши правильну мову. У той же час, гнучка структура Unix заважає розпаралелювати процеси. У випадку програм, які написані однією мовою, можна легко вивчити структуру та побачити частини, які можна розділити, а в Unix такої можливості немає.
Щоб вирішити проблему, PaSh виконує попередню обробку та додає позначки у частині скрипта (послідовності команд), які можна розпаралелити. Потім PaSh намагається розділити ці частини безпосередньо у процесі роботи програми, коли вона задіє кожен компонент. Правильно підбираючи час для поділу, інструмент справляється з непередбачуваною поведінкою програм і прискорює набагато більше компонентів, ніж інші методи. Це також дозволяє зберегти точність результатів.
"Незалежно від переваг у продуктивності, якщо ви обіцяєте, що щось працюватиме за секунду, а не за рік, але є шанс отримати неправильні результати, то ніхто не використовуватиме ваш метод", — наголосив Василакіс.
Якщо PaSh досягає компонента програми, який не може бути розпаралеленим (можливо, він залежить від компонента, який ще не запущений), він просто запускає вихідну версію і не викликає помилок. Користувачам не потрібно нічого міняти в програмі для використання системи — достатньо додати інструмент до наявної оболонки Unix і змусити скрипти використовувати його.
Дослідники протестували технологію на сотнях програм, від класичних до сучасних, і жодна з них не зламалася в процесі прискорення. PaSh прискорив виконання скриптів здебільшого у шість разів порівняно з іншими методами, а швидкість збільшилася максимум у 34 рази. Він упорався навіть зі сценаріями, які інші технології не змогли розпаралелити.
Тепер Нікос Василакіс і його команда прагнуть розділяти частини програм як між процесорами, а й між окремими комп'ютерами. Вони також хочуть покращити систему анотацій, що користувачі змогли краще та зручніше описувати компоненти.
Раніше вчені створили перший у світі односторонній надпровідник, який прискорить роботу комп'ютерів у 400 разів. Їм вдалося отримати новий квантовий матеріал завтовшки всього один атом, який став прошарком між двома іншими надпровідниками.
Нещодавно в США створили революційний чіп Prodigy, який здатний замінити три комп'ютерні процесори: центральний, графічний і тензорний. Він має 128 ядер із тактовою частотою до 5,7 ГГц.