Sunteți pe pagina 1din 17

Lucrare de Laborator NR 4.

Aplicaţii tipice de procesare în GridGain

1 Obiective

1. Simularea de tip Monte Carlo


2. Numere aleatoare /pseudoaleatoare
3. Aplicaţii ale tehnicii simulării - Tehnica simulării folosită în analiza riscului

2 Breviar teoretic
2.1 Simularea de tip Monte Carlo

Simularea Monte Carlo asociază problemei reale un model probabilist şi prin


generarea unor variabile aleatoare legate funcţional de soluţie se realizează experienţe pe
model furnizându-se informaţii asupra soluţiei problemei.
Este una dintre cele mai generale metode de analiză a fenomenelor care se produc în
sistemele caracterizate printr-un număr mare de variabile, parametri, prin relaţii complexe
între componente, prin factori perturbatori etc. Sub denumirea de metoda Monte Carlo (MC)
se găsesc mai multe metode sau modele de simulare, elementul comun îl constituie faptul că
fenomenul real este înlocuit cu un fenomen artificial. In esenţă, se înlocuieşte ansamblul
fenomenului real (mulţimea completă N) cu un eşantion reprezentativ făcându-se aproximarea
că acest eşantion va da o imagine suficient de clară şi adecvată asupra ansamblului.
Aplicarea metodei constă în asocierea problemei descrise cu un proces stochastic de
calcul. Aceasta constă apoi, în efectuarea unui volum mare de calcule aritmetice, pe baza unor
relaţii logice descrise printr-un model economico-matematic, în funcţie de valorile unor
variabile generate întâmplător (variabile aleatoare). Există cazuri în care metoda Monte Carlo
constituie un auxiliar al unor instrumente matematice devenite clasice (de exemplu, metoda
lanţurilor Markov) sau al unor tehnici folosite în teoria deciziilor multidimensionale etc.
Elaborarea unui model de simulare MC este legată de principiul metodei cu acelaşi
nume: fie o funcţie de variabile aleatoare Z =F ( x 1 , x2 ,. .. , x n ) unde fiecare variabilă
urmează o repartiţie bine definită. Atunci pentru fiecare xi se extrage o valoare aparţinând
repartiţiei respective şi se evaluează o valoare a lui Z. Aceasta se repetă de n ori, când
n→ ∞ valoarea astfel obţinută aproximează (în sensul teoriei probabilităţilor) adevărata
valoare a repartiţiei lui Z .
Metoda MC se bazează pe o tehnică stochastică care utilizează numere aleatoare şi
statistica probabilistă. Ideea centrală constă în: generarea de numere aleatoare, urmând
repartiţii predeterminate care se introduc în forma analitică a lui Z şi apoi calculul valorii
acesteia. Operaţiunea se repetă de multe ori, algoritmul oprindu-se conform unui criteriu (de
convergenţă).

2.1.1 Numere aleatoare /pseudoaleatoare

Definim o secvenţă de numere aleatoare r1, r2, ... în intervalul [a,b] dacă nu există nici
o corelaţie între diferitele numere din cadrul secvenţei.
Numerele sunt aleatoare cu distribuţia P(x) dacă probabilitatea de a găsi numărul ri în
intervalul [xi, xi+1] este P( x)dx .

Numerele pseudoaleatoare satisfac următoarele condiţii:

a) sunt repartizate uniform într-un interval dat.


b) sunt statistic independente (nu sunt autocorelate);
c) sunt reproductibile (pentru a testa programe sau a efectua comparaţii);
d) funcţia de repartiţie este stabilă, adică nu se schimbă în cursul rulării programului de
simulare;
e) şirul generat are o perioadă de repetiţie mare care poate fi predeterminată (cel puţin ca o
limită inferioară).

Şirurile de numere pseudoaleatoare aproximează şirurile de numere aleatoare1.


Cele mai des folosite pentru generarea numerelor aleatoare sunt metodele analitice;
acestea constau în utilizarea unui algoritm de calcul prin care se generează de fapt, numere
pseudoaleatoare, bazat pe relaţii de recurenţă:
- se consideră funcţiile fj, aparţinând unei clase de funcţii F şi un şir iniţial u1,
u2, …ur.
- pe baza funcţiilor fj şi a şirului iniţial, se vor genera numerele ur+1, ur+2, …, uj.
Un număr pseudoaleator uj+1 se generează cu ajutorul unei relaţii:
u j+1 =f j (u j , u j−1 , . .. , u j−r+1)
Deci, un număr ur+1 provine din cele r numere precedente. Şirul astfel obţinut poate
fi reprodus şi are o perioadă finită (după un anumit număr de generări se reproduce şirul
iniţial u1, u2, …ur).

Un procedeu aritmetic recurent de producere a unor numere aleatoare se numeşte


generator. Deşi folosirea unui generator nu va produce numere întâmplătoare, pentru anumite
alegeri ale funcţiei de recurenţă f, şi a numărului de valori din şirul iniţial, se pot produce
şiruri de numere pseudo-aleatoare de calitate rezonabilă. Pentru aceasta, un generator va
trebui să îndeplinească anumite cerinţe (caseta 1) şi ulterior şirul de numere generate să fie
test prin teste statistice adecvate (numite teste de concordanţă).
Caseta 1. Caracteristici ale unui generator de numere pseudo-aleatoare
Generatorul să fie simplu şi rapid.

Cu cât cele 5 condiţii (cu excepţia celei de a treia) sunt mai riguros respectate cu atât
1

aproximaţia este mai corectă.


Generatorul să producă şiruri de numere oricât de lungi şi care să nu conţină
repetiţii (sau cu perioadă de repetiţii foarte mare).
Generatorul să producă numere independente statistic unele faţă de altele
(numerele să nu fie dependente stochastic şi cât mai puţin corelate).
Generatorul să producă numere a căror repartiţie să fie uniformă.

2.1.2 Etape de de lucru

1. se stabileşte numărul şi semnificaţia variabilelor aleatoare considerate. Cu cât numărul


acestora este mai mare, cu atât problema este mai greu de rezolvat, iar rezultatele sunt
mai susceptibile de erori.
2. se desfăşoară seria de observaţii (într-un număr considerabil de mare - de cele mai
multe ori, de ordin al miilor) - pentru fiecare variabilă studiată în parte se înregistrează
câte un interval de valori ale variabilei şi frecvenţele corespunzătoare de apariţie (se
construiesc atâtea tabele câte variabile au fost luate în considerare);
3. pe baza acestor tabele, pentru fiecare variabilă în parte se întocmeşte un tabel al
frecvenţelor cumulate; se trasează grafic, eventual, curbele de frecvenţe cumulate
pentru fiecare variabilă aleatoare;
4. se alege un procedeu de generare a numerelor aleatoare/pseudoaleatoare (astfel încât
numerele să fie cuprinse în intervalul sau gama de valori reale ale variabilelor
studiate);
5. pentru fiecare variabilă întâmplătoare se asociază valori simulate (sau virtuale) ale
variabilei studiate şi, în majoritatea cazurilor, vor fi diferite de valorile obţinute
anterior;
6. pentru valorile alese se caută prin interpolare valorile corespunzătoare pentru
variabilele de interes;
7. se studiază valorile obţinute calculând media aritmetică2 / abaterea standard/
dispersia / coeficientul de variaţie3;
8. dacă abaterea standard este mare (mai mare decât gradul de precizie impus) se măreşte
numărul de observaţii asupra fenomenului studiat n→ N .

Caseta 2. Schema de aplicare a simulării MC

In cazul variabilelor aleatoare (v.a.) descrise prin distribuţii empirice discrete


de probabilitate, datele pot fi organizate prin grupări statistice conform tabelului 1:
Valoarea variabilei Frecvenţa de apariţie
aleatoare

2
Alături de medie (ca valoare de echilibru a unei repartiţii) se mai pot calcula: modul
(valoarea cu frecvenţa maximă), mediana – valoarea sub care se găsesc 50% dintre valorile
repartiţiei, amplitudinea (diferenţa între valorile maximă şi minimă), intervalul inter-
cuartile (diferenţa dintre cuartilele de ordinul 3 şi cea de ordinul 1).
3
Coeficientul de variatie este ponderea abaterii (deviaţiei) standard din valoarea
medie a unei repartiţei/serii de variaţie.
x1 f1
x2 f2
. .
. .
. .
xm fm

Pasul 1. Se calculează:
fi
pi= m
∑ fi
 probabilităţile relative i =1 , i=1,...,m; p0=0,
k
P k = ∑ pi
 probabilităţile cumulate i=0 , k=1,...,m. Probabilitatea cumulată Pk
reprezintă probabilitatea ca valoarea variabilei aleatoare X să fie mai mică sau egală cu
valoarea xk, adică Pk = P(X ≤ xk)

Pasul 2. Se asociază intervale de numere aleatoare fiecărei valori a v.a.


- fiecărei valori xk i se asociază intervalul [Pk-1, Pk).
Valoarea Probabilit Probabilitate Intervale
variabilei ate relativă cumulată
x1 p1 P1 = p 0 + p 1 [P0, P1)
x2 p2 P2 = P 1 + p 2 [P1, P2)
... ... ... ...
xm pm Pm = Pm-1 + pm [Pm-1, Pm)
Pasul 3. Se generează un număr aleator ui uniform repartizat în intervalul [0,1]
utilizând un generator de numere aleatoare (de exemplu, funcţia RAND() din
Excel).
Pasul 4. Obţinerea valorilor simulate se poate realiza tabelar.
Pasul 5. Se reia procedura de la Pasul 3 până când se obţine volumul dorit al selecţiei
simulate.
Datele selecţiei simulate pot fi folosite ca date exogene pentru alte modele
sau pot fi utilizate pentru calculul caracteristicilor distribuţiei de probabilitate a
variabilei aleatoare cercetate: media, abaterea standard, coeficientul de variaţie şi
intervalul de încredere pentru medie.
N
∑ xi
x̄= i=1
- media N ;
N

- abaterea standard
σ=
√ ∑ ( x i − x̄ )2
i =1
N −1
σ
CV =
- coeficientul de variaţie x̄
- intervalul de încredere (1-) pentru media x̄ poate fi construit cu relaţia: (
σ σ
x−t α x+ t α
, n−1 √ N ,n−1 √ N
2 , 2 ),
t/2, N-1 se obţine din tabelele distribuţiei t (Student),
 este, de obicei, 0,05 (la 95% nivel de semnificaţie),
N reprezintă numărul de experimente de simulare4.

Experienţe repetate cu metoda Monte Carlo arată că precizia rezultatelor nu creşte


odată cu mărimea numărului de numere întâmplătoare / pseudoaleatoare luate în considerare.
Sporirea numărului de încercări poate să conducă la rezultate mai puţin corespunzătoare decât
cele obţinute iniţial, acesta fiind unul dintre dezavantajele majore ale metodei.
Dacă Δ este precizia cu care se cere să se obţină x valoarea medie a mărimii
aleatoare ε atunci pentru aceasta se va cere un număr de realizări determinat de formula
2
4⋅σ
N= 2
Δ unde σ este dispersia.

2.1.3 Aplicaţii ale tehnicii simulării - Tehnica simulării folosită în analiza riscului

Importanţa riscului în luarea unei decizii este dată de locul pe care acesta îl ocupă în
teoria deciziei, de rangul în ideologia managerială şi de interesul - în ascensiune - pentru
evaluarea riscurilor de management. Evaluarea şi modelarea riscului este o activitate
complexă care presupune abordări multidisciplinare (economie, tehnologie, sociologie,
politică, etc). Rezultatele evaluării riscului influenţează decisiv deciziile şi strategiile adoptate
atât la nivel macro cât şi microeconomic.
Analiza riscurilor presupune evaluarea sistematică a riscurilor la care este expusă o
organizaţie. Prima etapă constă în identificarea ameninţărilor la care este expusă organizaţia,
apoi se estimează probabilitatea de materializare pentru fiecare ameninţare, precum şi efectul
pe care îl poate avea asupra activităţilor organizaţiei. Fiecărui risc i se asociază o valoare a
probabilităţii de manifestare (cât de des apare în mod normal riscul respectiv într-un an), apoi
se estimează cât de grav este impactul asupra organizaţiei (niveluri de gravitate). Produsul
valorilor din aceste două coloane reprezintă probabilitatea de pierdere cauzată de riscul
respectiv. Pe baza acestor date se determină care riscuri trebuie abordate cu prioritate şi ce
resurse sunt necesare pentru aceste măsuri. Este posibil ca organizaţia să fie supusă unui risc
de mare gravitate, dar a cărui probabilitate de apariţie este infimă, deci să aibă un nivel mediu.
4
Cu cât intervalul de încredere este mai îngust cu atât este mai precis rezultatul. Se observă
că lungimea intervalului se va reduce dacă va creşte numărul N al experimentelor de simulare.
Precizia metodei variază invers proporţional cu N½.
Pe de altă parte, unele riscuri cu gravitate mică pot să se manifeste des, astfel încât efectul lor
cumulat să fie mare. Riscul are două componente principale, pentru un eveniment dat:
 Probabilitatea de apariţie a evenimentului
 Impactul acestei apariţii (mărimea riscului)
Conceptual, pentru orice eveniment, riscul poate fi definit în funcţie de probabilitate şi
impact: R i s c = f ( p r o b a b i l i t a t e , i m p a c t ) . Astfel, dacă probabilitatea de apariţie sau
impactul ei creşte, riscul creşte, de aceea în managementul de risc, amândouă trebuie atent
luate în consideraţie. Riscul poate fi prezentat în funcţie de componentele lui – figura 1.
Figura 1. Corelaţia impact - probabilitate

În condiţiile creşterii frecvenţei şi complexităţii situaţiilor de risc este necesară


stabilirea dimensiunii riscului reflectată prin mărimea efectelor pe care le generează.
Multitudinea metodelor care constituie instrumentul determinării mărimii efectelor riscului au
la bază folosirea unor indicatori de nivel care caracterizează dimensiunile efectelor la un
moment dat. Mărimea efectelor riscului poate fi exprimată prin indicatori cantitativi sau
calitativi. În această situaţie, gestionarea riscului şi restricţionarea fenomenelor care
perturbează activitatea agenţilor economici comportă două mărimi complementare. Una care
poate fi cuantificată şi măsurată prin nivelul gravităţii şi consecinţelor financiare asociate cu
riscul şi care permite evaluarea financiară a eventualelor pagube. O a doua se referă la relaţia
dintre costuri şi gestiunea riscului. Aceste două componente reprezintă suportul pentru
diagnosticarea şi aplicarea unor soluţii acceptabile sau mai puţin acceptabile, în modelarea
dimensiunii efectelor.
Un model de analiză a riscurilor se poate baza pe trei elemente generale: variabilitatea,
costul riscului şi “tratamentul” (reacţia) riscului. Prin variabilitate5 se înţelege dimensiunea
pagubei, gravitatea şi mărimea consecinţelor. Costul riscului evaluează dimensiunea
pagubelor probabile şi posibile. Tratamentul riscului corespunde ansamblului de tehnici pe
care un agent economic le aplică în vederea diminuării consecinţelor şi, implicit, al costului
riscului.
Analiza cantitativă a riscului este procesul prin care se urmăreşte evaluarea numerică a
probabilităţii şi impactului fiecărui risc asupra obiectivelor proiectului şi influenţa asupra
riscului general al proiectului. Acest proces utilizează tehnici cantitative (cum ar fi simularea
Monte Carlo, analiza de senzitivitate şi metoda arborilor de decizie) cu scopul de a dezvolta

Variabilitatea este nivelul maxim de pierderi (prejudiciul) care se poate asocia la


5

asumarea unui risc. Dacă riscul ar putea fi asigurat în totalitate, variabilitatea ar fi nulă.
modele valide pentru:
1 a determina probabilitatea de a nu atinge obiectivele specifice ale proiectului;
2 a cuantifica expunerea la risc a proiectului şi a determina mărimea rezervelor
neprevăzute pentru costuri şi pentru program care ar putea fi necesare;
3 a identifica riscurile care implică o atenţie mai mare prin cuantificarea
contribuţiei lor relative la riscul general al proiectului;
4 a identifica realist costurile, programul şi obiectivele ce pot fi realizate.
Analiza riscului în abordarea probabilistă se bazează pe estimarea
proprietăţilor statistice (media, dispersia etc.) ale riscului, date fiind proprietăţile statistice ale
mărimilor de stare. Modelul de simulare a variabilei de răspuns / ale variabilelor de ieşire este
o funcţie cunoscută, deterministă (se va considera că variabila de stare urmează o distribuţie
normală sau log-normală). In cazuri mai complicate (în care funcţia de răspuns/ de ieşire, cu o
distribuţie non-normală saui non-lognormală a variabilei de stare sau în cazul unor variabile
de stare dependente), abordarea analitică nu mai este aplicabilă şi se poate utiliza chiar tehnica
de simulare Monte Carlo:
- pas 1 - generarea unui şir de numere aleatoare ale variabilei de stare în acord cu
distribuţia cunoscută;
- pas 2 - calcularea răspunsului y pentru fiecare dintre variabilele de stare;
- repetarea paşilor 1 şi 2 de n ori (n este numărul de rulări ale experimentului de
simulare) şi construirea unei distribuţii de frecvenţă pentru y.
Numărul de rulări ale experimentului de simulare poate fi selectat ca o funcţie de erori
dat în funcţie de modul de estimare a funcţiei de densitate de probabilitate a lui y din
distribuţia frecvenţei simulate.

3 Desfăşurarea lucrări
Algoritmul pleacă de la un set de credite iniţiale.
Creditul
- Cât a rămas din credit
- Câte zile a rămas
- Rata anuală
- Probabilitatea de risc
Pentru fiecare credit se calculează pierderile aleatoriu cu ajutorul unei valori random şi
cu probabilitatea de risc iniţială. Daca valoarea aleatoare este mai mare decât valoarea iniţială
atunci se consideră pierdere dacă nu câştig.
Se repetă de un număr ales de ori.
Se crează alt şir de porbabilităţi pe baza celui vechi în care se însumează
probabilităţile astfel.
 Componenta 0 are porbabilitatea calculată
 Componenta i are valoare componentei i-1 daca ponderele calculate pt i şi i-1
sunt identice şi dacă nu suma intre componeta i-1 si procentul calculat pentru i.
Riscul final este prima valoare mai mare decât Percentile din ultimul vector.

Pentru demonstare programul este iniţializat cu valori random ale creditelor astfel:
o Valoarea creditului între 0 şi 50000
o Termenul creditului în zile între 0 şi 1000
o Rata anuală între 0 şi 0.1
o Probabilitatea de risk între 0.02 şi 0.07

3.1 Împărţirea în grid


Pentru rularea în grid şi împărţirea jobului între noduri trebuie definite metode de
divizare jobului şi colectare a rezultatelor. La acest algoritm se împarte iteraţie alese pentru
calculul aleatoriu ca în figura 1 Împărţirea jobului în grid

CreditRisk(10000 Iteraţii)

Split Split Split

CreditRisk(10000/nr de noduri În grid)


CreditRisk(10000/nr de noduri În grid) CreditRisk(10000/nr de noduri În grid)

Reduce
Reduce Reduce

Media aritmetica a riscurilor

figura 1 Împărţirea jobului în grid

Codul Java care divizează jobul

public class CreditRiskGridTask extends


GridTaskSplitAdapter<GridifyArgument, Double> {
@Override
protected Collection<? extends GridJob> split(int gridSize, final
GridifyArgument arg) {
Integer iterations = ((Integer)arg.getMethodParameters()[2])ş
int iterPerNode = Math.round(iterations / (float)gridSize);
int lastNodeIter = iterations - (gridSize - 1) * iterPerNode;
List<GridJobAdapter<Integer>> jobs = new
ArrayList<GridJobAdapter<Integer>>(gridSize);
for (int i = 0; i < gridSize; i++) {
jobs.add(new GridJobAdapter<Integer>(i == gridSize - 1 ?
lastNodeIter : iterPerNode) {
public Double execute() throws GridException {
Object[] params = arg.getMethodParameters();
return new
CreditRiskManager().calculateCreditRiskMonteCarlo((Credit[])params[0],
(Integer)params[1], getArgument(),
(Double)params[3]);
}
});
}
return jobs;
}
La colectarea rezultatului se calculează o medie a riscurilor.

public Double reduce(List<GridJobResult> results) {


double taskRes = 0;
for (GridJobResult res : results) {
taskRes += (Double)res.getData();
}
return taskRes / results.size();
}

3.2 Exemplu de rulare cu 3 noduri


Cele trei noduri sunt împărţite după cum urmează
1. Primul nod este cel care lansează procesul, Windows Xp Sp2, P4 E2160
2x1.8 Ghz, nod lansat din Eclipse doar pe perioada execuţiei.
2. Nod permanent, pornit la iniţializarea sistemului cu serviciu Windows,
Windows 2003 Standard, P4 Q6600 4x2.4 Ghz
3. Nod temporar, pornit manual, rulează pe acelaşi sistem ca şi nodul 2.
Rezultatele afişate pe cele trei noduri

3.2.1 Nodul 1.
[12:52:02,718][INFO ][main][GridKernal%null]
_____ _ _ _____ _
/ ____| (_) | |/ ____| (_)
| | __ _ __ _ __| | | __ __ _ _ _ __
| | |_ | '__| |/ _` | | |_ |/ _` | | '_ \
| |__| | | | | (_| | |__| | (_| | | | | |
\_____|_| |_|\__,_|\_____|\__,_|_|_| |_|

>>> GridGain ver. 2.0.1-07032008


>>> Copyright (C) 2005-2008 GridGain Systems.

[12:52:02,718][INFO ][main][GridKernal%null] GRIDGAIN_HOME=C:\Program


Files\gridgain-2.0.1
[12:52:02,718][INFO ][main][GridKernal%null] VM arguments: [-ea,
-javaagent:C:\Program, Files\gridgain-2.0.1\libs\aspectjweaver-1.5.3.jar]
[12:52:02,843][INFO ][main][GridKernal%null] License file can be
found at: C:\Program Files\gridgain-2.0.1\license.txt
[12:52:02,843][INFO ][main][GridKernal%null] 3-rd party licenses can
be found at: C:\Program Files\gridgain-2.0.1\libs\licenses
[12:52:02,843][INFO ][main][GridKernal%null] P2P exclude path: []
[12:52:02,843][INFO ][main][GridKernal%null] P2P enabled: true
[12:52:02,843][INFO ][main][GridKernal%null] Metrics expiration time:
0
[12:52:02,843][INFO ][main][GridKernal%null] Metrics history size: 0
[12:52:05,093][INFO ][main][GridLocalMetricsManager] Starting SPI
implementation: org.gridgain.grid.spi.metrics.jdk.GridJdkLocalMetricsSpi
[12:52:05,109][INFO ][main][GridJdkLocalMetricsSpi] Using parameter
[isPreferSigar=true]
[12:52:05,265][INFO ][main][GridJdkLocalMetricsSpi] Hyperic Sigar
'CpuPerc.getCombined()' method will be used to detect average CPU load.
Note that Hyperic Sigar is licensed under GPL. For more information visit:
http://support.hyperic.com/confluence/display/SIGAR/Home
[12:52:05,796][INFO ][main][GridJdkLocalMetricsSpi] SPI started ok
[startMs=687, spiMBean=org.gridgain:spi=GridJdkLocalMetricsSpi]
[12:52:06,062][INFO ][main][JChannel] JGroups version: 2.6.0 GA

-------------------------------------------------------
GMS: address is 192.168.96.116:7800
-------------------------------------------------------
[12:52:13,296][WARN ][FD_SOCK
pinger,grid.jgroups.stack,192.168.96.116:7800][FD_SOCK] received null
cache; retrying
[12:52:13,468][INFO ][main][GridCommunicationManager] Starting SPI
implementation:
org.gridgain.grid.spi.communication.jgroups.GridJgroupsCommunicationSpi
[12:52:13,484][INFO ][main][GridJgroupsCommunicationSpi] Using
parameter [cfgFile=config/jgroups/tcp/jgroups.xml]
[12:52:13,484][INFO ][main][GridJgroupsCommunicationSpi] Using
parameter [grpName=grid.comm.jgroups]
[12:52:13,484][INFO ][main][GridJgroupsCommunicationSpi] Using
parameter [sendTimeout=10000]
[12:52:13,500][INFO ][main][GridJgroupsCommunicationSpi] SPI started
ok [startMs=32, spiMBean=org.gridgain:spi=GridJgroupsCommunicationSpi]
[12:52:13,546][INFO ][main][GridCheckpointManager] Starting SPI
implementation:
org.gridgain.grid.spi.checkpoint.sharedfs.GridSharedFsCheckpointSpi
[12:52:13,562][INFO ][main][GridSharedFsCheckpointSpi] Using
parameter [folder=C:\Program Files\gridgain-2.0.1\work\checkpoint\sharedfs]
[12:52:13,562][INFO ][main][GridSharedFsCheckpointSpi] SPI started ok
[startMs=16, spiMBean=org.gridgain:spi=GridSharedFsCheckpointSpi]
[12:52:13,578][INFO ][main][GridEventStorageManager] Starting SPI
implementation:
org.gridgain.grid.spi.eventstorage.memory.GridMemoryEventStorageSpi
[12:52:13,578][INFO ][main][GridMemoryEventStorageSpi] Using
parameter [expireAgeMs=9223372036854775807]
[12:52:13,578][INFO ][main][GridMemoryEventStorageSpi] Using
parameter [expireCnt=10000]
[12:52:13,578][INFO ][main][GridMemoryEventStorageSpi] SPI started ok
[startMs=0, spiMBean=org.gridgain:spi=GridMemoryEventStorageSpi]
[12:52:13,671][INFO ][main][GridDeploymentManager] Starting SPI
implementation:
org.gridgain.grid.spi.deployment.local.GridLocalDeploymentSpi
[12:52:13,671][INFO ][main][GridLocalDeploymentSpi] SPI started ok
[startMs=0, spiMBean=org.gridgain:spi=GridLocalDeploymentSpi]
[12:52:13,765][INFO ][main][GridLoadBalancingManager] Starting SPI
implementation:
org.gridgain.grid.spi.loadbalancing.roundrobin.GridRoundRobinLoadBalancingS
pi
[12:52:13,765][INFO ][main][GridRoundRobinLoadBalancingSpi] Using
parameter [isPerTask=true]
[12:52:13,765][INFO ][main][GridRoundRobinLoadBalancingSpi] SPI
started ok [startMs=0,
spiMBean=org.gridgain:spi=GridRoundRobinLoadBalancingSpi]
[12:52:13,765][INFO ][main][GridFailoverManager] Starting SPI
implementation: org.gridgain.grid.spi.failover.always.GridAlwaysFailoverSpi
[12:52:13,765][INFO ][main][GridAlwaysFailoverSpi] Using parameter
[maximumFailoverAttempts=5]
[12:52:13,781][INFO ][main][GridAlwaysFailoverSpi] SPI started ok
[startMs=16, spiMBean=org.gridgain:spi=GridAlwaysFailoverSpi]
[12:52:13,796][INFO ][main][GridCollisionManager] Starting SPI
implementation:
org.gridgain.grid.spi.collision.fifoqueue.GridFifoQueueCollisionSpi
[12:52:13,796][INFO ][main][GridFifoQueueCollisionSpi] Using
parameter [parallelJobsNum=100]
[12:52:13,796][INFO ][main][GridFifoQueueCollisionSpi] SPI started ok
[startMs=0, spiMBean=org.gridgain:spi=GridFifoQueueCollisionSpi]
[12:52:13,828][INFO ][main][GridTopologyManager] Starting SPI
implementation: org.gridgain.grid.spi.topology.basic.GridBasicTopologySpi
[12:52:13,828][INFO ][main][GridBasicTopologySpi] Using parameter
[isLocalNode=true]
[12:52:13,843][INFO ][main][GridBasicTopologySpi] Using parameter
[isRmtNodes=true]
[12:52:13,843][INFO ][main][GridBasicTopologySpi] SPI started ok
[startMs=15, spiMBean=org.gridgain:spi=GridBasicTopologySpi]
[12:52:14,046][INFO ][main][GridDiscoveryManager] Starting SPI
implementation:
org.gridgain.grid.spi.discovery.jgroups.GridJgroupsDiscoverySpi
[12:52:14,046][INFO ][main][GridJgroupsDiscoverySpi] Using parameter
[cfgFilePath=C:\Program Files\gridgain-
2.0.1\config\jgroups\tcp\jgroups.xml]
[12:52:14,046][INFO ][main][GridJgroupsDiscoverySpi] Using parameter
[joinTimeout=10000]
[12:52:14,046][INFO ][main][GridJgroupsDiscoverySpi] Using parameter
[grpName=grid.disco.jgroups]
[12:52:14,046][INFO ][main][JChannel] JGroups version: 2.6.0 GA

-------------------------------------------------------
GMS: address is 192.168.96.116:7801
-------------------------------------------------------
[12:52:17,250][ERROR][FD_SOCK
pinger,grid.jgroups.stack,192.168.96.116:7800][FD_SOCK] socket address for
192.168.96.116:7801 could not be fetched, retrying
[12:52:19,250][ERROR][FD_SOCK
pinger,grid.jgroups.stack,192.168.96.116:7800][FD_SOCK] socket address for
192.168.96.116:7801 could not be fetched, retrying
[12:52:20,312][INFO ][main][GridJgroupsDiscoverySpi] Discovered local
node: GridJgroupsDiscoveryNode [id=75b88f0b-f619-4578-a0a1-ee35539ef796,
addr=/192.168.96.116, port=7801, suspect=false, status=READY, metrics=null]
[12:52:20,484][INFO ][main][JChannel] JGroups version: 2.6.0 GA

-------------------------------------------------------
GMS: address is 192.168.96.116:2482
-------------------------------------------------------
[12:52:20,812][INFO ][main][GridJgroupsDiscoverySpi] SPI started ok
[startMs=6766, spiMBean=org.gridgain:spi=GridJgroupsDiscoverySpi]
[12:52:20,828][INFO ][main][GridDiscoveryManager]
>>> ------------------
>>> Topology Snapshot.
>>> ------------------
>>> Number of nodes: 3
>>> Topology hash: 0x50B2F3B5
>>> Local: 75B88F0B-F619-4578-A0A1-EE35539EF796, 192.168.96.116,
Windows XP x86 5.1, Administrator
>>> Remote: 619707FC-9D6F-4A28-9B61-55AAEAF93888, 192.168.96.101,
Windows 2003 x86 5.2, SYSTEM
>>> Remote: 0C22335F-A67F-4BAF-9F44-1FCBA021BF99, 192.168.96.101,
Windows 2003 x86 5.2, Administrator
>>> Total number of CPUs: 10
>>> Number of unique IP interfaces: 2
>>> Unique IP interface: 192.168.96.116, Realtek RTL8139 Family PCI
Fast Ethernet NIC - Packet Scheduler Miniport, Windows XP x86 5.1, 2 CPU(s)
>>> Unique IP interface: 192.168.96.101, Realtek RTL8168/8111 PCI-E
Gigabit Ethernet NIC, Windows 2003 x86 5.2, 4 CPU(s)

[12:52:20,984][WARN ][main][GridUpdateNotifier] New version is


available at www.gridgain.org: 2.0.3-05202008
[12:52:21,000][INFO ][main][GridKernal%null]

>>> ---------------------------------------------------
>>> GridGain ver. 2.0.1-07032008 STARTED OK in 18359ms.
>>> ---------------------------------------------------
>>> OS name: Windows XP 5.1 x86, 2 CPU(s)
>>> OS user: Administrator
>>> VM information: Sun Microsystems Inc. Java HotSpot(TM) Client VM
10.0-b19
>>> VM name: 6140@upit-t209
>>> Optional grid name: null
>>> Local node ID: 75B88F0B-F619-4578-A0A1-EE35539EF796
>>> Local node physical address: 192.168.96.116, Realtek RTL8139
Family PCI Fast Ethernet NIC - Packet Scheduler Miniport
>>> GridGain documentation: http://www.gridgain.org/product.html

[12:52:21,156][INFO ][main][GridLocalDeploymentSpi] Successfully


locally deployed task: class CreditRiskGridTask
[12:52:21,390][INFO ][gridgain-#10%null%][GridDeploymentManager] Task
deployed from deployment SPI is initialized: class CreditRiskGridTask

>>> Calculating credit risk for portfolio [size=5000, horizon=365,


percentile=0.95, iterations=3333] <<<

Credit risk [crdRisk=593744.5450309335, duration=6375ms.]

[12:52:28,687][INFO ][main][GridJgroupsDiscoverySpi] Local grid node


has left grid topology.
[12:52:28,687][INFO ][main][GridJgroupsDiscoverySpi] SPI stopped ok.
[12:52:28,687][INFO ][main][GridBasicTopologySpi] SPI stopped ok.
[12:52:28,687][INFO ][main][GridFifoQueueCollisionSpi] SPI stopped
ok.
[12:52:28,687][INFO ][main][GridAlwaysFailoverSpi] SPI stopped ok.
[12:52:28,687][INFO ][main][GridRoundRobinLoadBalancingSpi] SPI
stopped ok.
[12:52:28,687][INFO ][main][GridLocalDeploymentSpi] SPI stopped ok.
[12:52:28,687][INFO ][main][GridMemoryEventStorageSpi] SPI stopped
ok.
[12:52:28,687][INFO ][main][GridSharedFsCheckpointSpi] SPI stopped
ok.
[12:52:28,687][ERROR][ConnectionTable.Connection.Sender
local_addr=192.168.96.116:7800 [192.168.96.116:2476 -
192.168.96.116:7801],grid.jgroups.stack,192.168.96.116:7800]
[ConnectionTable] exception is java.net.SocketException: Socket closed
[12:52:30,687][WARN ][main][Multiplexer] failed to collect all
service ACKs (3) for [dst: <null>, src: 192.168.96.116:7800 (3 headers),
size=0 bytes] after 2000ms, missing ACKs from [192.168.96.101:7800]
(received=[192.168.96.101:7801, 192.168.96.101:7802, 192.168.96.116:7800,
192.168.96.101:7803]), local_addr=192.168.96.116:7800
[12:52:34,671][ERROR][ConnectionTable.Connection.Sender
local_addr=192.168.96.116:7800 [192.168.96.116:2457 -
192.168.96.101:7800],grid.jgroups.stack,192.168.96.116:7800]
[ConnectionTable] exception is java.net.SocketException: Socket closed
[12:52:34,781][INFO ][main][GridJgroupsCommunicationSpi] SPI stopped
ok.
[12:52:34,781][INFO ][main][GridJdkLocalMetricsSpi] SPI stopped ok.
[12:52:34,796][INFO ][main][GridKernal%null]

>>> --------------------------------------------------
>>> GridGain ver. 2.0.1-07032008 STOPPED OK in 7360ms.
>>> --------------------------------------------------
>>> Optional instance name: null
>>> Grid up time: 00:00:13:797

3.2.2 Nodul 2
>>> ------------------
>>> Topology Snapshot.
>>> ------------------
>>> Number of nodes: 3
>>> Topology hash: 0x50B2F3B5
>>> Local: 0C22335F-A67F-4BAF-9F44-1FCBA021BF99, 192.168.96.101,
Windows 2003 x8
6 5.2, Administrator
>>> Remote: 619707FC-9D6F-4A28-9B61-55AAEAF93888, 192.168.96.101,
Windows 2003 x
86 5.2, SYSTEM
>>> Remote: 75B88F0B-F619-4578-A0A1-EE35539EF796, 192.168.96.116,
Windows XP x86
5.1, Administrator
>>> Total number of CPUs: 6
>>> Number of unique IP interfaces: 2
>>> Unique IP interface: 192.168.96.116, Realtek RTL8139 Family PCI
Fast Etherne
t NIC - Packet Scheduler Miniport, Windows XP x86 5.1, 2 CPU(s)
>>> Unique IP interface: 192.168.96.101, Realtek RTL8168/8111 PCI-E
Gigabit Ethe
rnet NIC, Windows 2003 x86 5.2, 4 CPU(s)

[12:52:25,484][INFO ][gridgain-#36%null%][GridDeploymentManager] Task


was deployed from peer node [taskName=CreditRiskGridTask,
peerNode=75b88f0b-f619-4578-a0a1-ee35539ef796,
clsLoader=GridDeploymentPeerClassLoader [endTime=9223372036854775807,
taskName=CreditRiskGridTask, ver=1, node=GridJgroupsDiscoveryNode
[id=75b88f0b-f619-4578-a0a1-ee35539ef796, addr=/192.168.96.116, port=7801,
suspect=false, status=READY, metrics=GridDiscoveryMetricsAdapter
[lastUpdateTime=1213869144265, maxActiveJobs=0, curActiveJobs=0,
avgActiveJobs=0.0, maxWaitingJobs=0, curWaitingJobs=0, avgWaitingJobs=0.0,
maxRejectedJobs=0, curRejectedJobs=0, avgRejectedJobs=0.0,
maxCancelledJobs=0, curCancelledJobs=0, avgCancelledJobs=0.0,
totalRejectedJobs=0, totalCancelledJobs=0, totalExecutedJobs=0,
maxJobWaitTime=0, curJobWaitTime=0, avgJobWaitTime=0.0, maxJobExecTime=0,
curJobExecTime=0, avgJobExecTime=0.0, totalIdleTime=0, curIdleTime=0,
availProcs=2, load=0.06287312796370212, avgLoad=0.0, heapInit=0,
heapUsed=23210592, heapCommitted=38158336, heapMax=66650112,
nonHeapInit=12779520, nonHeapUsed=19240864, nonHeapCommitted=19431424,
nonHeapMax=100663296, upTime=22094, startTime=1213869118734, threadCnt=74,
peakThreadCnt=74, startedThreadCnt=77, daemonThreadCnt=35]]]]

>>> Calculating credit risk for portfolio [size=5000, horizon=365,


percentile=0.95, iterations=3334] <<<

[12:52:31,000][INFO][Incoming,grid.jgroups.stack,192.168.96.101:7803]
[GridJgroupsDiscoverySpi] Removed ready node: GridJgroupsDiscoveryNode
[id=75b88f0b-f619-4578-a0a1-ee35539ef796, addr=/192.168.96.116, port=7801,
suspect=false, status=READY, metrics=GridDiscoveryMetricsAdapter
[lastUpdateTime=1213869150265, maxActiveJobs=1, curActiveJobs=1,
avgActiveJobs=0.6666667, maxWaitingJobs=0, curWaitingJobs=0,
avgWaitingJobs=0.0, maxRejectedJobs=0, curRejectedJobs=0,
avgRejectedJobs=0.0, maxCancelledJobs=0, curCancelledJobs=0,
avgCancelledJobs=0.0, totalRejectedJobs=0, totalCancelledJobs=0,
totalExecutedJobs=0, maxJobWaitTime=110, curJobWaitTime=0,
avgJobWaitTime=110.0, maxJobExecTime=1859, curJobExecTime=1859,
avgJobExecTime=0.0, totalIdleTime=17516, curIdleTime=0, availProcs=2,
load=0.5131666666666667, avgLoad=0.21241689356872176, heapInit=0,
heapUsed=28212840, heapCommitted=40644608, heapMax=66650112,
nonHeapInit=12779520, nonHeapUsed=20352640, nonHeapCommitted=20480000,
nonHeapMax=100663296, upTime=28094, startTime=121386911873
4, threadCnt=94, peakThreadCnt=94, startedThreadCnt=100,
daemonThreadCnt=35]]
[12:52:31,000][INFO][Incoming,grid.jgroups.stack,192.168.96.101:7803]
[GridDiscoveryManager] Grid node left topology: GridJgroupsDiscoveryNode
id=75b88f0b-f619-4578-a0a1-ee35539ef796, addr=/192.168.96.116, port=7801,
suspect=false, status=READY, metrics=GridDiscoveryMetricsAdapter
[lastUpdateTime=1213869150265, maxActiveJobs=1, curActiveJobs=1,
avgActiveJobs=0.6666667, maxWaitingJobs=0, curWaitingJobs=0,
avgWaitingJobs=0.0, maxRejectedJobs=0, curRejectedJobs=0, avgRejectedJo
bs=0.0, maxCancelledJobs=0, curCancelledJobs=0, avgCancelledJobs=0.0,
totalRejectedJobs=0, totalCancelledJobs=0, totalExecutedJobs=0,
maxJobWaitTime=110, curJobWaitTime=0, avgJobWaitTime=110.0,
maxJobExecTime=1859, curJobExecTime=1859, avgJobExecTime=0.0,
totalIdleTime=17516, curIdleTime=0, availProcs=2, load=0.5131666666666667,
avgLoad=0.21241689356872176, heapInit=0, heapUsed=28212840, heapCommi
tted=40644608, heapMax=66650112, nonHeapInit=12779520,
nonHeapUsed=20352640, nonHeapCommitted=20480000, nonHeapMax=100663296,
upTime=28094, startTime=1213869118734, threadCnt=94, peakThreadCnt=94,
startedThreadCnt=100, daemonThreadCnt=35]]
[12:52:31,000][INFO][Incoming,grid.jgroups.stack,192.168.96.101:7803]
[GridDiscoveryManager]

>>> ------------------
>>> Topology Snapshot.
>>> ------------------
>>> Number of nodes: 2
>>> Topology hash: 0x980E5D4B
>>> Local: 0C22335F-A67F-4BAF-9F44-1FCBA021BF99, 192.168.96.101,
Windows 2003 x8
6 5.2, Administrator
>>> Remote: 619707FC-9D6F-4A28-9B61-55AAEAF93888, 192.168.96.101,
Windows 2003 x
86 5.2, SYSTEM
>>> Total number of CPUs: 4
>>> Number of unique IP interfaces: 1
>>> Unique IP interface: 192.168.96.101, Realtek RTL8168/8111 PCI-E
Gigabit Ethe
rnet NIC, Windows 2003 x86 5.2, 4 CPU(s)

3.2.3 Nodul 3

>>> ------------------
INFO | jvm 1 | 2008/06/19 12:52:23 | >>> Topology Snapshot.
INFO | jvm 1 | 2008/06/19 12:52:23 | >>> ------------------
INFO | jvm 1 | 2008/06/19 12:52:23 | >>> Number of nodes: 3
INFO | jvm 1 | 2008/06/19 12:52:23 | >>> Topology hash: 0x50B2F3B5
INFO | jvm 1 | 2008/06/19 12:52:23 | >>> Local: 619707FC-9D6F-4A28-9B61-
55AAEAF93888, 192.168.96.101, Windows 2003 x86 5.2, SYSTEM
INFO | jvm 1 | 2008/06/19 12:52:23 | >>> Remote: 75B88F0B-F619-4578-A0A1-
EE35539EF796, 192.168.96.116, Windows XP x86 5.1, Administrator
INFO | jvm 1 | 2008/06/19 12:52:23 | >>> Remote: 0C22335F-A67F-4BAF-9F44-
1FCBA021BF99, 192.168.96.101, Windows 2003 x86 5.2, Administrator
INFO | jvm 1 | 2008/06/19 12:52:23 | >>> Total number of CPUs: 6
INFO | jvm 1 | 2008/06/19 12:52:23 | >>> Number of unique IP interfaces: 2
INFO | jvm 1 | 2008/06/19 12:52:23 | >>> Unique IP interface: 192.168.96.116, Realtek
RTL8139 Family PCI Fast Ethernet NIC - Packet Scheduler Miniport, Windows XP x86 5.1, 2 CPU(s)
INFO | jvm 1 | 2008/06/19 12:52:23 | >>> Unique IP interface: 192.168.96.101, Realtek
RTL8168/8111 PCI-E Gigabit Ethernet NIC, Windows 2003 x86 5.2, 4 CPU(s)
INFO | jvm 1 | 2008/06/19 12:52:23 |
INFO | jvm 1 | 2008/06/19 12:52:25 | [12:52:25,484][INFO ][gridgain-#89%null%]
[GridDeploymentManager] Task was deployed from peer node [taskName=CreditRiskGridTask,
peerNode=75b88f0b-f619-4578-a0a1-ee35539ef796, clsLoader=GridDeploymentPeerClassLoader
[endTime=9223372036854775807, taskName=CreditRiskGridTask, ver=1,
node=GridJgroupsDiscoveryNode [id=75b88f0b-f619-4578-a0a1-ee35539ef796,
addr=/192.168.96.116, port=7801, suspect=false, status=READY,
metrics=GridDiscoveryMetricsAdapter [lastUpdateTime=1213869144265, maxActiveJobs=0,
curActiveJobs=0, avgActiveJobs=0.0, maxWaitingJobs=0, curWaitingJobs=0, avgWaitingJobs=0.0,
maxRejectedJobs=0, curRejectedJobs=0, avgRejectedJobs=0.0, maxCancelledJobs=0,
curCancelledJobs=0, avgCancelledJobs=0.0, totalRejectedJobs=0, totalCancelledJobs=0,
totalExecutedJobs=0, maxJobWaitTime=0, curJobWaitTime=0, avgJobWaitTime=0.0,
maxJobExecTime=0, curJobExecTime=0, avgJobExecTime=0.0, totalIdleTime=0, curIdleTime=0,
availProcs=2, load=0.06287312796370212, avgLoad=0.0, heapInit=0, heapUsed=23210592,
heapCommitted=38158336, heapMax=66650112, nonHeapInit=12779520, nonHeapUsed=19240864,
nonHeapCommitted=19431424, nonHeapMax=100663296, upTime=22094,
startTime=1213869118734, threadCnt=74, peakThreadCnt=74, startedThreadCnt=77,
daemonThreadCnt=35]]]]

INFO | jvm 1 | 2008/06/19 12:52:26 | >>> Calculating credit risk for portfolio [size=5000,
horizon=365, percentile=0.95, iterations=3333] <<<

INFO | jvm 1 | 2008/06/19 12:52:31 | [12:52:31,000][INFO ]


[Incoming,grid.jgroups.stack,192.168.96.101:7801][GridJgroupsDiscoverySpi] Removed ready node:
GridJgroupsDiscoveryNode [id=75b88f0b-f619-4578-a0a1-ee35539ef796, addr=/192.168.96.116,
port=7801, suspect=false, status=READY, metrics=GridDiscoveryMetricsAdapter
[lastUpdateTime=1213869150265, maxActiveJobs=1, curActiveJobs=1, avgActiveJobs=0.6666667,
maxWaitingJobs=0, curWaitingJobs=0, avgWaitingJobs=0.0, maxRejectedJobs=0, curRejectedJobs=0,
avgRejectedJobs=0.0, maxCancelledJobs=0, curCancelledJobs=0, avgCancelledJobs=0.0,
totalRejectedJobs=0, totalCancelledJobs=0, totalExecutedJobs=0, maxJobWaitTime=110,
curJobWaitTime=0, avgJobWaitTime=110.0, maxJobExecTime=1859, curJobExecTime=1859,
avgJobExecTime=0.0, totalIdleTime=17516, curIdleTime=0, availProcs=2, load=0.5131666666666667,
avgLoad=0.21241689356872176, heapInit=0, heapUsed=28212840, heapCommitted=40644608,
heapMax=66650112, nonHeapInit=12779520, nonHeapUsed=20352640,
nonHeapCommitted=20480000, nonHeapMax=100663296, upTime=28094,
startTime=1213869118734, threadCnt=94, peakThreadCnt=94, startedThreadCnt=100,
daemonThreadCnt=35]]
INFO | jvm 1 | 2008/06/19 12:52:31 | [12:52:31,000][INFO ]
[Incoming,grid.jgroups.stack,192.168.96.101:7801][GridDiscoveryManager] Grid node left topology:
GridJgroupsDiscoveryNode [id=75b88f0b-f619-4578-a0a1-ee35539ef796, addr=/192.168.96.116,
port=7801, suspect=false, status=READY, metrics=GridDiscoveryMetricsAdapter
[lastUpdateTime=1213869150265, maxActiveJobs=1, curActiveJobs=1, avgActiveJobs=0.6666667,
maxWaitingJobs=0, curWaitingJobs=0, avgWaitingJobs=0.0, maxRejectedJobs=0, curRejectedJobs=0,
avgRejectedJobs=0.0, maxCancelledJobs=0, curCancelledJobs=0, avgCancelledJobs=0.0,
totalRejectedJobs=0, totalCancelledJobs=0, totalExecutedJobs=0, maxJobWaitTime=110,
curJobWaitTime=0, avgJobWaitTime=110.0, maxJobExecTime=1859, curJobExecTime=1859,
avgJobExecTime=0.0, totalIdleTime=17516, curIdleTime=0, availProcs=2, load=0.5131666666666667,
avgLoad=0.21241689356872176, heapInit=0, heapUsed=28212840, heapCommitted=40644608,
heapMax=66650112, nonHeapInit=12779520, nonHeapUsed=20352640,
nonHeapCommitted=20480000, nonHeapMax=100663296, upTime=28094,
startTime=1213869118734, threadCnt=94, peakThreadCnt=94, startedThreadCnt=100,
daemonThreadCnt=35]]
INFO | jvm 1 | 2008/06/19 12:52:31 | [12:52:31,000][INFO ]
[Incoming,grid.jgroups.stack,192.168.96.101:7801][GridDiscoveryManager]
INFO | jvm 1 | 2008/06/19 12:52:31 |

INFO | jvm 1 | 2008/06/19 12:52:31 | >>> ------------------


INFO | jvm 1 | 2008/06/19 12:52:31 | >>> Topology Snapshot.
INFO | jvm 1 | 2008/06/19 12:52:31 | >>> ------------------
INFO | jvm 1 | 2008/06/19 12:52:31 | >>> Number of nodes: 2
INFO | jvm 1 | 2008/06/19 12:52:31 | >>> Topology hash: 0x980E5D4B
INFO | jvm 1 | 2008/06/19 12:52:31 | >>> Local: 619707FC-9D6F-4A28-9B61-
55AAEAF93888, 192.168.96.101, Windows 2003 x86 5.2, SYSTEM
INFO | jvm 1 | 2008/06/19 12:52:31 | >>> Remote: 0C22335F-A67F-4BAF-9F44-
1FCBA021BF99, 192.168.96.101, Windows 2003 x86 5.2, Administrator
INFO | jvm 1 | 2008/06/19 12:52:31 | >>> Total number of CPUs: 4
INFO | jvm 1 | 2008/06/19 12:52:31 | >>> Number of unique IP interfaces: 1
INFO | jvm 1 | 2008/06/19 12:52:31 | >>> Unique IP interface: 192.168.96.101, Realtek
RTL8168/8111 PCI-E Gigabit Ethernet NIC, Windows 2003 x86 5.2, 4 CPU(s)

4 Cerinţe
- Extrageţi ca mai sus datele de rulare de pe două din cele 10 staţii
- Observaţi numărul de iteraţii
- Observaţi timpul de execuţie raportat de primul nod

S-ar putea să vă placă și