Grid Wars - walki programów
2003-07-15 00:24
Podczas odbywającej się w San Jose konferencji ClusterWorld zorganizowano turniej Grid Wars II. Walczyły w nim... programy komputerowe.
Grid wars to swoista zabawa dla programistów, w swoich założeniach bardzo podobna do popularnych w latach 90-tych (także w Polsce) wojen rdzeniowych. W grid wars konkurują ze sobą programy, które próbują zdobyć kontrolę nad zasobami obliczeniowymi przeciwnika. Ostatnia edycja turnieju była walką o przejęcie jak największej części z 2500 procesorów. Podczas walki program przejmuje sąsiedni procesor odpalając wirtualne "pociski" do zajmującej go aplikacji. Po trzecim trafieniu, broniący się program ustępuje miejsca agresorowi. Komunikując się pomiędzy procesorami, programy są w stanie koordynować atak lub obronę. Do konkurencji zgłoszono 236 programów stworzonych na uniwersytetach, w firmach programistycznych oraz instytucjach rządowych.
Podczas imprezy przebieg rozgrywek był wizualizowany na gigantycznej szachownicy. Każdy z jej kwadratów reprezentował 1 procesor. Kolor kratek pokazywał, który program kontroluje dany fragment planszy. Najpierw rywalizowano w małych grupach, a po wyłonieniu finałowej grupy 32 najlepszych aplikacji, tryb rywalizacji zmieniono na pojedynki systemem pucharowym. W finale doszło do pojedynku Rosja – USA. Amerykę reprezentował faworyt turnieju – aplikacja "Rogue" ("Łobuz"), stworzona przez Marka Weninga z NASA. Przy tworzeniu "Łobuza" Wening wykorzystał algorytmy genetyczne. Podczas selekcji przypominającej selekcję naturalną, "Łobuz" pokonał inne wersje kodu swojego autora. Jego rywalem został program "Kobra", napisany od podstaw przez studenta Uniwersytetu Moskiewskiego, Wasilija Gromowa. Składający się z 500 cykli finał miał niezwykle emocjonujący przebieg. Po pierwszych 400 cyklach, zgodnie z przewidywaniami wyraźnie dominował program amerykański – kontrolował 1500 z 2500 procesorów. Jednak w końcówce meczu aplikacja Rosjanina przełamał obronę "Łobuza" i zaczęła sukcesywnie "zjadać" jego algorytm. I tak sensacyjnym zwycięzcą została aplikacja z Moskwy.
Impreza wzbudziła ogromne emocje, a jej uczestnicy chętnie porównywali rywalizację programów do walk gladiatorów. Nie zmienia to jednak faktu, że nadrzędnym celem turnieju jest testowanie wydajności algorytmów, które mogą znaleźć później inne, już nie tylko "sportowe" zastosowania.