`

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

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

BEST CIO

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

Человек года

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

Продукт года

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

 

Леонід Бараш

Новая технология сжатия данных для более быстрых компьютерных программ

+11
голос

Новая технология, разработанная исследователями MIT, переосмысливает аппаратное сжатие данных, чтобы освободить больше памяти, используемой компьютерами и мобильными устройствами, позволяя им работать быстрее и выполнять больше задач одновременно.

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

Память в современных компьютерах управляет и передает данные в виде фрагментов фиксированного размера, на которых должны работать традиционные методы сжатия. Программное обеспечение, однако, не хранит свои данные в виде фрагментов фиксированного размера. Вместо этого он использует «объекты», структуры данных, которые содержат различные типы данных и имеют переменные размеры. Поэтому традиционные аппаратные методы сжатия плохо обрабатывают объекты.

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

Программисты могли бы извлечь выгоду из этой техники при программировании на любом современном языке программирования - таком как Java, Python и Go - который хранит и управляет данными в объектах, не изменяя их код. Со своей стороны, стороны потребители увидят компьютеры, которые могут работать намного быстрее или могут запускать гораздо больше приложений с той же скоростью. Поскольку каждое приложение потребляет меньше памяти, оно работает быстрее, поэтому устройство может поддерживать больше приложений в пределах выделенной памяти.

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

«Мотивация заключалась в том, чтобы придумать новую иерархию памяти, которая могла бы выполнять сжатие на основе объектов, а не сжатие строк кэша, потому что именно так большинство современных языков программирования управляют данными», - говорит первый автор По-Ан Цай (Po-An Tsai), аспирант в лаборатории информатики и искусственного интеллекта (CSAIL).

«Все компьютерные системы выиграют от этого, - добавляет соавтор Дэниел Санчес (Daniel Sanchez), профессор информатики и электротехники и исследователь в CSAIL. - Программы становятся быстрее, потому что они перестают быть узким горлышком из-за пропускной способности памяти».
Исследователи основывались на своей предыдущей работе, которая реструктурирует архитектуру памяти для непосредственного управления объектами. Традиционные архитектуры хранят данные в блоках в иерархии постепенно увеличивающейся и более медленной памяти, называемой «кэшами». Блоки, к которым недавно обращались, поднимаются в меньшие и более быстрые кэши, в то время как старые блоки перемещаются в более медленные и большие кэши, в конечном итоге возвращаясь в основную память. Хотя эта организация является гибкой, она обходится дорого: для доступа к памяти каждый кэш должен искать адрес среди своего содержимого.

«Поскольку естественной единицей управления данными в современных языках программирования являются объекты, почему бы просто не создать иерархию памяти, которая имеет дело с объектами?» - говорит Санчес.

В своей статье исследователи подробно описали систему под названием Hotpads, которая хранит целые объекты, плотно упакованные в иерархические уровни или «площадки». Эти уровни целиком и полностью зависят от эффективной памяти, адресованной непосредственно на кристалле, без сложных поисков.

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

Для своей новой работы исследователи разработали методику, называемую «Zippads», которая использует архитектуру Hotpads для сжатия объектов. Когда объекты сначала запускаются на более быстром уровне, они не сжимаются. Но когда их выселяют на более медленные уровни, они все сжаты. Указатели на всех объектах на уровнях затем ссылаются на эти сжатые объекты, что облегчает их возврат к более быстрым уровням и позволяет хранить их более компактно, чем предыдущие методы.

Затем алгоритм сжатия эффективно использует избыточность объектов. Этот метод раскрывает больше возможностей сжатия, чем предыдущие методы, которые были ограничены нахождением избыточности в каждом блоке фиксированного размера. Алгоритм сначала выбирает несколько представительных объектов в качестве «базовых» объектов. Затем в новых объектах хранятся только разные данные между этими объектами и репрезентативными базовыми объектами.

Новая технология сжатия данных для более быстрых компьютерных программ

Новая методика, разработанная исследователями MIT, впервые сжимает «объекты» в памяти, освобождая больше памяти, используемой компьютерами, позволяя им работать быстрее и выполнять больше задач одновременно

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

+11
голос

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

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

 

Ukraine

 

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