Sobota, 15 maja 2010, 14:50
Perforacja pętli przyśpiesza programy
Komputery powstały po to, by dać odpowiedzi na trudne logiczne pytania. I przez dziesięciolecia służyły właśnie temu celowi - precyzyjnemu rozwiązywaniu zadań. W ostatnim czasie sytuacja się jednak zmienia i coraz częściej jesteśmy skłonni poświęcić precyzję na rzecz prędkości.Przykładem niech będzie sposób działania wyszukiwarek. Rezultaty uzyskane z Google czy Yahoo! nie są najbardziej precyzyjne z możliwych, jednak internauci wolą szybko uzyskać nieco mniej dokładną odpowiedź, niż dłużej czekać na najlepszą z możliwych. Stąd też np. dokładna kolejność pierwszych kilku czy kilkunastu wyników wyszukiwania nie jest ważna.
Grupa badaczy z MIT-u pracująca pod kierunkiem profesora Martina Rinarda postanowiła wykorzystać takie podejście i stworzyła system automatycznie wyszukujący w kodzie komputerowym miejsc, w których nieco dokładności może zostać poświęconej na rzecz znacznego przyspieszenia pracy programu.
Udało im się osiągnąć zadziwiające rezultaty. Podczas testów skrócili o połowę czas potrzebny do zakodowania transmisji wideo w celu przesłania jej przez sieć. Jakość obrazu pozostała przy tym niezmieniona. Takie samo podejście może zostać wykorzystane wszędzie tam, gdzie konieczne jest przetwarzanie danych w czasie rzeczywistym, a więc np. w oprogramowaniu do analiz giełdowych czy systemach śledzenia i monitorowania wykorzystujących sieci czujników.
Uczeni z MIT-u wykorzystali bardzo prosty trick. Rozbudowane programy komputerowe wykorzystują liczne pętle, czyli wielokrotnie powtarzane procesy. Rinard oraz współpracujący z nim naukowcy Stelios Sidiroglou-Douskos, Hank Hoffman i Sasa Misailovic nazwali swoją technikę "perforacją pętli". Polega ona na "wybijaniu dziur" w pętlach, co po prostu polega na pomijaniu pewnych kroków w pętli. System automatycznie ocenia, ile takich kroków można pominąć by znacząco przyspieszyć pracę programu, a jednocześnie nie poświęcić zbyt wiele z precyzji jego działania.
Sam system opracowany przez grupę Rinarda jest pętlą - przeszukuje on program, "wybija" w nim dziury, a następnie uruchamia program i wylicza, jak jego działanie wpłynęło na wydajność programu. Następnie oceniane jet, która z "perforacji" najlepiej wpływa na zwiększenie wydajności, a jednocześnie oznacza najmniejsze straty w precyzji.
Mariusz Błoński
Wersja do druku
Podobne tematy
Starsze
Płyta główna Gigabyte GA-X58A-UD9, 17:33
ASUS wymienia baterie w notebookach X51 i PRO52, 17:32
Nowsze
Prawo Kirchhoffa do poprawki!, 14:51
Aspire Ethos 8943G i 5943G , 11:03
Redakcja nie ponosi odpowiedzialności za wypowiedzi Internautów opublikowane na stronach serwisu oraz zastrzega sobie prawo do redagowania, skracania bądź usuwania komentarzy zawierających treści zabronione przez prawo, uznawane za obraźliwie lub naruszające zasady współżycia społecznego.
Brak komentarzy. Może warto dodać swój własny?
Copyright © 2002-2024 | Prywatność | Load: 1.78 | SQL: 9 | Uptime: 525 days, 32 min h:m |
Wszelkie uwagi prosimy zgłaszać pod adresem eddy@heh.pl