Ако разрешим на компютрите да правят серия от безобидни грешки, това може да проправи пътя към създаване на по-бързи и енергийноефективни системи. Група изследователи от Масачузетския технологичен институт (MIT) разработва софтуерна рамка, която позволява на програмистите да казват на компютрите кога могат да допускат грешки.
В момента перфектното кодиране е задължително за всякакви приложения – от видео и редактиране на изображения до игри и анимация. Все пак, ако някои пиксели в изображенията с висока разделителна способност не са правилно декодирани, потребителите едва ли бяха забелязали. Според учените от MIT, това е добър пример, който показва, че в кодовете може да бъдат допуснати някои грешки, така че цялостната енергийна ефективност и скоростта на компютрите да се увеличи. Подобен начин за решаване на проблема със скоростта се налага поради ограниченията пред по-нататъшното напредване в технологиите за чипове.
Досега броят на транзисторите, които се събираха в дадено пространство, се удвояваше през няколко години. Но това високо темпо на миниатюризация (известно като закон на Мур) не може да продължи дълго, тъй като транзисторите вече са достигнали размери от няколко нанометра и става все по-трудно да се направят по-малки.
Новата софтуерна рамка на MIT, призвана да реши този проблем, е дело на изследователя Мартин Ринард и неговите асистенти Майкъл Карбин и Саса Мисаилович. Разработката беше представена наскоро на конференция на ACM за обектно-ориентирано програмиране, системи, езици и приложения.
Ако хардуерът спре да работи, това е доста голям проблем за компютрите. Екипът на Ринард обаче се опитва да превърне това във възможност. Разработената софтуерна рамка, наречена Rely, позволява да бъде измерен ефектът от потенциалната ненадеждност на хардуера върху софтуера. Едно от основните предимства на системата е, че може да изчисли вероятността софтуерът да работи както трябва, дори ако е програмиран да прави грешки.
Това е фундаментална разработка, която показва как да свърже математическата надеждност към езици, използвани за писане на код в ненадеждна среда, коментира специалистът по компютърни науки и инженерство Дан Гросман от Вашингтонския университет. С други думи, може да бъдат създадени чипове, които допускат безобидни грешки, но за сметка на това скоростта и енергийната ефективност да се повиши значително.
Подобна разработка изисква изключително добро разбиране на хардуера (защото видовете на срещането на различните грешки е различно), комбинирано с много добри математически способности. Такива специалисти се срещат твърде рядко. Като учебна (а да го наречем и научна) дейност в университет това е изключително полезно за развитие на научни умения.
Т. е. според мен няма да успеят, но ефект от дейността им ще има много голям. Не случайно MIT има такъв рейтинг като иновативен ИТ университет (за информатици, а не за самозвани програмисти).
Има много и различни решения за различните задачи… Някои задачи могат да се разполовяват и това би било подходящо за многоядрени процесори, но все още няма подходящ език за тази цел… Друг вариант на това разполовяване на задачите на подзадачи е примерно много компютри да решават една задача… нещо подобно на програмата Сети за търсене на извънземни… Начинът за решаването на една задача е различен… Понякога е възможен само един вариант т.е. един алгоритъм, но друг път е приближение или евклидова точност… В статията пропускат някои новости, които някъде ги четох за транзисторите като пример са триизмерни транзистори http://technews.bg/article-21918.html …
Използването на езици от по-високо ниво намалява цената на създаване на приложения. По-евтино излиза да купиш допълнително машини отколкото да оптимизираш и да пишеш код на по-ниско ниво.
Или пък да се ползват повече хардуерно щадящи езици и алгоритми. Например паскал (Lazarus, Delphi), колкото и да го отхвърлят, използва значително по-малко ресурси. Алгоритмите ако се оптимизират, също ще изискват по-малко ресурси и мощност при изпълнението. Също и приравняването към процесорните инструкции, като да речем по-ефективно кодиране с допълнителни средства. А може би и преминаване към ARM архитектурата, която не изисква хардуерно прекодиране на инструкциите от CISC (x86/64) към RISC. Има и възможности за нови архитектурни решения, които тепърва да се развиват. Другият подход е Windows 8, където орязаха визуалният интерфейс и го приравниха към 1.