За даними The Register, Google перенесла близько 30 000 своїх робочих пакетів на архітектуру Arm і планує конвертувати їх усі, щоб мати можливість запускати робочі навантаження як на власних чипах Axion на базі Arm, так і на процесорах x86.
Цей перехід було задокументовано у статті-препринті, опублікованій минулого тижня, під назвою «Instruction Set Migration at Warehouse Scale» (Міграція наборів інструкцій у масштабі складів), а також у дописі в блозі. У ньому розкрито, що YouTube, Gmail та BigQuery вже працюють як на x86, так і на власних Arm-процесорах Axion, — так само як і близько 30 000 інших застосунків.
В обох документах пояснюється процес міграції Google. Інженер-розробник Партхасараті Ранганатхан (Parthasarathy Ranganathan) та інженер зі зв'язків з розробниками Вольф Добсон (Wolff Dobson) зазначили, що процес розпочався з припущення, «що ми витрачатимемо час на архітектурні відмінності, такі як дрейф із комою, що плаває, паралелізм, внутрішні функції (intrinsics), як-от платформні оператори, та продуктивність».
«Спочатку ми мігрували деякі з наших топових завдань, як-от F1, Spanner та Bigtable, використовуючи типові практики розробки програмного забезпечення, з щотижневими зустрічами та виділеними інженерами, — написала пара. — У цей ранній період ми знайшли докази вищезазначених проблем, але їх було набагато менше, ніж ми очікували. Виявилося, що сучасні компілятори та інструменти, як-от санітайзери, усунули більшість несподіванок».
Розробники Google зрештою витратили більшу частину свого часу на такі завдання, як виправлення тестів, які зламалися через те, що вони були надто підігнані під наявні x86-сервери; оновлення складних систем складання та випуску (build and release systems), зазвичай для найстаріших та найбільш навантажених сервісів; розв'язання проблем із розгортанням у робочих конфігураціях; дотримання обережності, щоб уникнути дестабілізації критичних систем.
У дописі та статті детально описана робота над 30000 застосунків — набором коду, досить великим, щоб були долучені наявні інструменти автоматизації Google, а потім створено новий інструмент AI під назвою «CogniPort», щоб робити те, чого не могли його інші інструменти.
«CogniPort працює над помилками складання та тестування, — написали Ранганатхан і Добсон. — Якщо на будь-якому етапі процесу бібліотека, бінарний файл або тест Arm не складається або тест завершується помилкою, агент втручається та намагається розв'язати проблему автоматично».
Виявлено, що агент досягав успіху приблизно у 30% випадків за певних умов, найкраще справляючись із виправленням тестів, платформними умовами та виправленням подання даних. Хоча це не надто високий показник успіху, Google має перенести ще щонайменше 70000 пакетів.