| Podbój chaosu dzięki nowoczesnym komputerom wieloprocesorowym |
|
|
| 24.03.2010. | |
K omputery nie powinny z nami pogrywać - to odczucie naukowca z dziedziny informatyki i inżynierii komputerowej z University of Washington (UW) zawarte w poniższym sformułowaniu: „Przy wpisywaniu tej samej komendy, powinniśmy otrzymać ten sam rezultat. Niestety wiele obecnych maszyn jest dalekich od zamierzeń tego paradygmatu. We wnętrzu smukłej obudowy współczesne komputery zachowują się w sposób nieobliczalny,” komentuje Luis Ceze, adiunkt informatyki i inżynierii komputerowej na UW „W starych, jednoprocesorowych systemach komputery zachowywały się identycznie dla tych samych wprowadzonych poleceń. Dzisiejsze komputery nie realizują idei determinizmu. Nawet przy wprowadzeniu identycznych komend możemy otrzymać różne rezultaty,” opowiada Ceze. Razem ze współpracownikami z UW - Markiem Oskinem i Danem Grossmanem oraz absolwentami tegoż uniwersytetu - Owenem Andersonem, Tomem Berganem, Josephem Devietti, Brandonem Lucia i Nickiem Huntem, odkryli sposób aby współczesne, wieloprocesorowe komputery zachowywały się w sposób przewidywalny za pomocą kompresji zestawu poleceń i przypisywania im konkretnych miejsc. Zestawy poleceń są przetwarzane jednocześnie, a więc „posłuszne” programy nadal działają szybciej, niż miałoby to miejsce w przypadku jednoprocesorowej platformy. Na międzynarodowej konferencji Architectural Support for Programming Languages and Operating Systems w Pitzburgu Bergan zaprezentuje opartą na oprogramowaniu wersję tego systemu, która może zostać użyta na obecnie istniejących maszynach. Opiera się ona na bardziej ogólnym podejściu, które, po tym jak grupa opublikowała je w zeszłym roku, zostało wybrane najlepszym projektem 2009. roku przez magazyn Micro z Institute of Electrical and Electronics Engineers. Dawniej jeden komputer posiadał tylko jeden procesor. Obecnie jednak za standard wśród użytkowników uważa się procesory dwurdzeniowe (dual-core), a na półkach sklepowych coraz częściej pojawiają się maszyny wyposażone w procesory czterordzeniowe (quad-core). Superkomputery i serwery potrafią pomieścić setki, a nawet tysiące takich jednostek obliczeniowych. Plusem tego zamysłu jest utworzenie komputerów, które pracowałyby szybciej, byłyby tańsze i zużywałyby mniej energii przy wydajności równej tej osiąganej przez jeden procesor. Z drugiej jednak strony maszyny wieloprocesorowe odpowiedzialne są za nieuchwytne błędy, które spowalniają przeglądarki internetowe i zawieszają programy. „Jeżeli chodzi o systemy wielordzeniowe, regułą jest większa ilość błędów, gdyż pisanie kodu na nie jest trudniejsze. Zatem trudnej jest sobie poradzić z wyżej wspomnianymi błędami współbieżności,” wyjaśnia Ceze. Jednym z zadań na UW jest utworzenie systematyczności błędów, tak aby programy mogły być odpowiednio testowane. |









