Professional Documents
Culture Documents
1. WSTĘP
Analizując historię rozwoju superkomputerów, wyróŜnić moŜemy dwa sposoby ich
projektowania. Pierwszy, w którym bardzo duŜa moc obliczeniowa wynika z zastoso-
wania jednego bardzo szybkiego procesora, drugi zakładający wykorzystanie duŜej
ilości średnio wydajnych i powszechnie dostępnych procesorów w celu osiągnięcia
wzrostu mocy obliczeniowej poprzez zrównoleglenie procesu obliczeniowego.
Nie trzeba jednak kupować superkomputera, aby móc korzystać z dobrodziejstw
przetwarzania równoległego. Rozwój sieci komputerowych w tym Internetu umoŜliwił
powstanie takich projektów jak np. SETI@HOME[1], w którym do analizy odbiera-
nego przez radioodbiorniki sygnału wykorzystywana była moc obliczeniowa tysięcy
komputerów uŜytkowników Internetu.
*
Politechnika Wrocławska, Instytut Informatyki Stosowanej, 50-370 Wrocław, Wyb. Wyspiańskiego 27,
e-mail: eximius@o2.pl, michal.stanek@pwr.wroc.pl, Koło Naukowe Sztucznej Inteligencji „CJANT"
W artykule przedstawiona jest architektura oraz algorytm równowaŜenia obciąŜe-
nia systemu rozproszonego przetwarzania zadań umoŜliwiającego wykorzystanie mo-
cy obliczeniowej wielu połączonych za pomocą sieci komputerów.
2. BUDOWA SYSTEMU
Rozproszony system przetwarzania zadań tworzą połączone siecią komputery z
uruchomionym autorskim programem MARS (MultiAgent Resource Sharing System).
KaŜdy komputer w takim systemie nazywać będziemy dalej węzłem. Zlecone zadania
obliczeniowe mogą być wykonywane na kaŜdym węźle systemu, istnieje jednak do-
kładnie jeden węzeł, który poza wykonywaniem zadań komunikuje się z uŜytkowni-
kami w celu przyjmowania od nich Ŝądań oraz zwracania rezultatów obliczeń.
Wśród zadań, jakie mogą zlecić uŜytkownicy wyróŜnić moŜemy zadania niepo-
dzielne oraz n-dekomponowalne. Poprzez zadanie n-dekomponowalne rozumiemy
takie zadanie, które moŜe zostać rozłoŜone na n zadań niepodzielnych (np. poszuki-
wanie liczb pierwszych, wyszukiwanie wzorca w tekście, itp.). Zadania takie mogą
być następnie realizowane równolegle. Zadanie niepodzielne, to takie, które w całości
musi zostać wykonane w sposób sekwencyjny.
Celem działania systemu jest zrealizowanie wszystkich zleconych przez uŜytkow-
ników zadań w jak najkrótszym czasie. Oczywistym jest, Ŝe cel ten zostanie osiągnięty
tylko wtedy, kiedy wykorzystywana będzie w sposób równomierny moc obliczeniowa
wszystkich węzłów systemu[3].
Zaproponowany system składa się z wielu współpracujących ze sobą agen-
tów (rys. 1), czyli programów „działających w pewnym środowisku, zdolnych do ko-
munikowania się między sobą, monitorowania swego otoczenia i podejmowania auto-
nomicznych decyzji w celu osiągnięcia celu”[2]. PoniŜej opisane są zadania jakie wy-
konują poszczególni agenci.
Dokładnie jeden agent obsługujący, umieszczony w pierwszym węźle systemu,
pełni funkcję pośrednika pomiędzy klientami a systemem. Dla kaŜdego zadania two-
rzy odpowiedniego agenta zadania oraz wskazuje mu węzeł sieci, na którym ma roz-
począć pracę. Agent obsługujący przekazuje równieŜ wyniki pracy agentów zadań
odpowiednim klientom.
Agent zadań jest podstawową jednostką systemu, wykonuje on zadania zlecone
przez klientów. Agent zadań ma moŜliwość migracji pomiędzy węzłami systemu [4]
lub w przypadku zadań n-dekomponowalnych utworzenie nowego agenta zadania i
przekazanie mu części realizowanego obecnie zadania, a następnie odebrania wyni-
ków jego obliczeń.
Tablica, jest to współdzielona i dostępna dla wszystkich agentów przestrzeń infor-
macyjna. W tablicy tej znajdują się informacje na temat poziomu obciąŜenia poszcze-
gólnych węzłów obliczeniowych.
Tablica ogłoszeń
Węzeł 2 Węzeł N
System operacyjny System operacyjny
JAVA JAVA
MARS MARS
Agent
zadania 1
..... Agent
zadania 1
....
....
Agent Agent
Agent Agent
sterujący sterujący
zadania K zadania K
TCP/IP TCP/IP
Sieć
System operacyjny
JAVA
MARS
Agent
Agent zadania 1
obsługujący
Klient
....
Agent
sterujący Agent
zadania K
Klient TCP/IP
Węzeł 1
Rys. 1. Diagram przedstawiający poszczególne elementy systemu
∑c i
(1)
c= i =1
,
N
N
∑ (c i + c) 2
(2)
σ= i =1
,
N −1
{
A = i i ∈ W ∧ ci < c + σ , } (3)
c min = arg min{ci }, i ∈ W , (4)
i
4. WYNIKI BADAŃ
Przedstawiony system oraz algorytm równowaŜenia obciąŜenia zaimplementowany
został w języku JAVA oraz przetestowany w ramach systemu składającego się z czte-
rech węzłów, których konfiguracja podana została poniŜej:
A. Pentium II – 300 MHz/192 MB/ Linux Debian
B. Pentium III – 500 MHz/256 MB/ Linux Debian
C. Pentium M – 1.3 GHz/512 MB/ Linux Debian
D. AMD Sempron 1.5 GHz/256 MB/ MS Windows XP Profesional
Jako zadanie n-dekomponowalne wybrany został problem poszukiwania liczb
pierwszych, natomiast jako zadanie niepodzielne wybrany został problem poszukiwa-
nia ekstremów liniowych funkcji wielu zmiennych z ograniczeniami liniowymi meto-
dą simpleks[5]. Przebadane zostały czasy wykonania pojedynczego zadania, serii pię-
ciu zadań jednego typu oraz dziesięciu zadań, z czego pięć stanowiły zadania niepo-
dzielne, a drugie pięć zadania n-dekomponowalne.
275 37,5 350
250 35 325
32,5 300
225 30 275
200 27,5 250
25
Czas [sek]
Czas [sek]
Czas [sek]
175 225
22,5
150
Średnia 20 Średnia 200
175
Średnia
125 17,5
150
15
100 125
12,5
75 10 100
50 7,5 75
5 50
25
0
A B C D M 2,5
0
A B C D M 25
0
A B C D M
Komputer
Średnia Komputer
Średnia Komputer
Średnia
Czas [sek]
225
800
700 Średnia 200
175
Średnia
600
150
500
125
400 100
300 75
200 50
100
0
A B C D M 25
0
A B C D M
Komputer
Średnia Komputer
Średnia
Rys. 2. Wyniki pomiarów realizacji zadań na pojedynczych węzłach w rozproszonym systemie reali-
zacji zadań MARS
5. PODSUMOWANIE
Zaproponowana wieloagentowa architektura systemu rozproszonego przetwarzania
zadań w znaczący sposób pozwoliła zmniejszyć czas oczekiwania klienta na wykona-
nie zadania. Przedstawiony algorytm równowaŜenia zasobów zapewnia ponadto, Ŝe
moc komputerów wchodzących w skład systemu będzie wykorzystana w sposób rów-
nomierny.
Dalsze kierunki rozwoju systemu polegać będą na odejściu od stosowanej obecnie
miary uwzględniającej jedynie stopień obciąŜenia procesora na rzecz bardziej obiek-
tywnej miary uwzględniającej dostępną moc obliczeniową węzła oraz poziom zaso-
bów pamięci. Planowane jest równieŜ opracowanie algorytmów pozwalających na
odzyskanie zadań w przypadku uszkodzenia któregokolwiek z węzłów systemu.
LITERATURA
Article describes architecture of multiagent distributed task solving system and load balancing algo-
rithms used to distribute tasks among systems nodes to achieve better performance. First section present
system architecture and agents responsibility, next section describes details of load balancing algorithm.
Last section contains obtained results and possible future improvements.