`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Алгоритм синхронизации кэша обновлен впервые за 30 лет

0 
 
Алгоритм синхронизации кэша обновлен впервые за 30 лет

В современном, многоядерном чипе, каждое ядро имеет свой небольшой объем памяти (кэш), где хранятся часто используемые данные. Кроме того, имеется и более крупный кэш, к которому имеют доступ все ядра.

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

Такой каталог занимает немало места: в 64-ядерном процессоре это может быть до 12% общего кэша. С ростом количества ядер его доля увеличивается, поэтому для планируемых чипов с 128, 256 или даже 1000 ядрами потребуется более эффективный способ согласования кэшей.

В октябре, на Международной конференции по параллельным архитектурам и методам компиляции, сотрудники Массачусетского технологического института (MIT) представят первый, более чем за три десятилетия, фундаментально новый подход к когерентности кэш-памяти. С ним объем памяти, нужной под каталог, растет не в прямой пропорции с количеством ядер, а лишь как логарифм этого числа.

Это значит, что в 128-ядерном чипе общий кэш будет занимать втрое меньше места. Поскольку будущий чип компании Intel планируется оснастить 72 ядрами, этот пример не такой уж гипотетический. Если продолжить экстраполяцию, с 256-ядрами экономия места будет достигать уже 80%, а с 1000 — 96%.

По новой методике, получившей название Tardis, каждое ядро и каждый фрагмент данных имеют собственные счетчики. При запуске программы все счетчики обнуляются. Когда ядро считывает данные, оно берет его «в аренду» увеличивая значение счетчика данных.

Когда ядру требуется перезаписать данные, оно становится их «собственником». Другие ядра продолжают работать с локальными копиями, но если они хотят продлить «аренду», то должны скоординироваться с новым «владельцем» данных. Ядро, записывающее данные, увеличивает значение своего счетчика так, чтобы оно превышало последнее показание счетчика этих данных.

Рассмотрим, к примеру, ядра от «A» до «D», которые считывают одни и те же данные, устанавливают свои счетчики на 1 и счетчик данных на 10. Ядру «E» требуется записать данные, оно становится их «собственником» и устанавливает внутренний счетчик на 11. Это значит, что «E» теперь оперирует в более позднем логическом времени, чем другие ядра.

Обращающееся к данным ядро «А» перенаправляется к новому «владельцу», который в ответ на запрос переписывает свою копию в общий кэш. «A» копирует ее оттуда и устанавливает свой счетчик на 11 или выше.

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

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

0 
 

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT