Система Chisel позволяет компьютерам экономить энергию, разрешая им делать ошибки

Ошибки вычислений


Многим людям известно выражение "Work smarter, not harder". У этой фразы имеется множество вариантов перевода, но ее суть достаточно точно выражает фраза "Работай больше умом, а не усердием". Когда эта фраза применяется по отношению к людям, это означает, что мы должны работать более упорно и качественней только над самыми важными задачами, не тратя напрасно усилия и время, выкладываясь полностью на всех задачах без исключения. Этот принцип также можно применить в отношении компьютеров, и это то, что делает новая система Chisel, разработанная в Массачусетском технологическом институте. Эта система позволяет компьютерам экономить существенное количество энергии, перенося менее критичные задачи для выполнения на малопотребляющих аппаратных средствах, обладающих низкой надежностью. Это означает, что в расчетах таких задач могут возникать незначительные ошибки, но это считается допустимым в данном случае.

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

Задачи, которые получают наивысший приоритет, выполняются на самых надежных, но требующих больших количеств энергии, аппаратных средствах вычислительной системы. Менее важные задачи выполняются на аппаратных средствах более низкого уровня, которые могут совершать ошибки. Примером таких ошибок может быть обработанное изображение, один или два пиксела которого имеют не очень "правильный" цвет, что не сказывается на качестве изображения в целом.

Моделирование использования системы Chisel показало, что эта технология позволяет сэкономить от 9 до 19 процентов энергии. Программная часть системы Chisel написана на специальном языке программирования, который называется Rely, языке, операторы которого позволяют указать при помощи специальных операторов "терпимость" того или иного участка программы к возникновению ошибок.

Следует заметить, что ученые из Массачусетского технологического института являются не единственными, кто ведет работы в данном направлении. Университета Райс (Rice University) также определили понятие допустимых ошибок и разработали "неточный" процессор, который позволяет экономить энергию, изредка ошибаясь в расчетах. Этот в 15 раз более эффективен с точки зрения скорости, потребления энергии и размеров, нежели обычные процессоры, обрабатывающие все участки программ с одинаковой скоростью.



Ключевые слова:
Chisel, Rely, Язык, Программа, Функция, Процессор, Выполнение, Надежность, Ошибка, Энергия, эффективность

Первоисточник

Другие новости по теме:
  • Исследователи собираются "разогнать" самые мощные в мире суперкомпьютеры при помощи нового эффективного программного обеспечения
  • Sketch - новый язык программирования, способный самостоятельно оптимизировать и завершать незаконченные участки кода
  • Создана программа, способная исправить ошибки в другой программе, не имея доступа к ее исходному коду
  • Ученые начали работу над созданием программы, стандартизирующей и облегчающей процесс поиска ошибок в других программах
  • Shuffler - программа, позволяющая предотвратить кибернападение на другие программы, содержащие критические ошибки в их коде




  • 6 ноября 2014 09:44
    #1 Написал: FomaNeverujuwij

    Публикаций: 0
    Комментариев: 4 332
    Даже не могу представить себе, на что может быть похоже программирование подобной системы.


    --------------------
        
    6 ноября 2014 16:05
    #2 Написал: Demnus

    Публикаций: 0
    Комментариев: 0
    FomaNeverujuwij,
    На точно такое же программирование, только с указанием возможности возникновения ошибки и погрешности, разумеется с учетом этих самых ошибок. К примеру, если точность вычислений требует 4 знака после запятой, то остальные знаки float могут быть ошибочными, их незачем рассчитывать в общем-то вообще. Но обычный комп будет упорно их считать, и отбросит только перед самым выводом.
    Еще вариант - компьютерная графика. К примеру есть популярный пост фильтр - film grain. Добавляет эффект шума к картинке, по сути внося случайные отклонеия в цвет пикселя. Это делает картинку живее и реалистичнее. Если бы вычисления финального цвета пикселя производились бы с погрешностью, то эффект получался бы сам собой, заодно экономя вычислительные мощности.
    От такого подхода могли бы выиграть алгоритмы сжатия с потерями - изображения, видео, звук и других аналоговых сигналов.
    Нейронные сети и генетические алгоритмы могут работать с погрешностями, без ущерба для результата. Такие как например распознавание образов, генеративные процедуры, ИИ.
    А еще, в зависимости от характера ошибок, сами по себе ошибки могут являться генератором настоящих случайных чисел, что сделало бы это применимым еще и в криптографии.
        
    6 ноября 2014 16:38
    #3 Написал: Zerger

    Публикаций: 0
    Комментариев: 0
    ...я так понял это что то вроде переменной разрядности при вычислениях?
        
    10 ноября 2014 02:30
    #4 Написал: Rsa

    Публикаций: 0
    Комментариев: 0
    Вобщем-то куда больше похоже на чепуху, нежели на что-то полезное. Во всех случаях (в том числе и тех, что приведены в комментариях) намного правильнее будет модифицировать сам код задачи (убрать излишнюю тоочность, уменьшить число итераций и.т.п.) нежели поручать исполнение каким-то специально сделанным процессорам с ошибками. И еще, не надо путать ошибки исполнения кода с точностью вычислений. Точность до указанного знака можно гарантировать лишь в коде, который выполняется без ошибок, пусть и по более простым алгоритмам. А именно ошибка, на любом этапе, может привести к искажению результата в тысячи раз. Один лишний бит, случайно возникший в начале 32-разрядного числа, изменит его значение на много порядков, или может его знак поменять на противоположный. Какие после этого вообще могут быть расчеты? С таким же успехом можно просто от балды любое случайное число вписать вместо результата.
        

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.