SWT[5]#3

Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: SWT[5]#3

Beitrag von Thomas »

Edit: hat sich erledigt habs jetzt mit runnable gemacht und scheint zu funktionieren, ich werd nchert mal meine graphen posten ob die laufzeiten in die richtige richtung gehen
Edit2: ich wollte nochmal auf das thema mit dem warten auf das ende aller executions bei einem threadpool zu sprechen kommen. gibts es da überhaupt eine andere möglichkeit als awaitTermination? ich hab mal einige wait() notifyAll() konstruktionen mit pool.getactiveCount != 0 als bedingung aba damit hatte ich keinen erfolg, könnte mir jemand nen tipp geben?
Edit3: hätte noch ne andere frage, da ich das ganze auch mit threads implementiert habe und zwar hat jemand mal die cyclicbarrier wie in der vl verwendet? ich hab sie in einer run()-methode in einer inneren klasse benutzt, aber das bild war dann nie richtig. nachdem ich nun eine for-schleife gemacht habe und für jeden thread des thread-arrays join() aufgerufen habe geht das ganze, was ich nicht so wirklich verstehe...
scrats
Beiträge: 23
Registriert: Mo 10. Nov 2008, 10:52

Re: SWT[5]#3

Beitrag von scrats »

Hi zusammen hät da auch mal ne frage;

ich hab es parallel gmacht und scheint auch zu funtzen! bis auf die tatsache das er mir nix zeichnet! Hab schon geschaut ob er die Threads beendet, und das tut er aber es will das schöne Drogenbild nicht kommen wie bei SequentielleMandelbrot. compute return auch ein int[][] woran kann es liegen?
Benutzeravatar
salami
Beiträge: 179
Registriert: Mi 5. Nov 2008, 22:41
Wohnort: Karlsruhe

Re: SWT[5]#3

Beitrag von salami »

In welches Array schreiben denn deine Fäden das "Drogenbild" rein? ;)
In das, das am Ende auch gezeichnet wird?
scrats
Beiträge: 23
Registriert: Mo 10. Nov 2008, 10:52

Re: SWT[5]#3

Beitrag von scrats »

hehe, genau des Bild hatte immer die Flaschen drogen! merci! jetzt funtzt
Blurio
Beiträge: 56
Registriert: Do 20. Nov 2008, 21:39

Re: SWT[5]#3

Beitrag von Blurio »

Oh hi.

Mein Prozessor fickt mich.
Ich hab zwar ab zwei Threads beinahe doppelt so schnelle Laufzeit als beim sequentiellen, aber mit mehr Threads wird das nich schneller. Es bleibt rel gleich und wird gegen Ende langsamer. Is das normal?

Ich hab nen Intel Core 2 duo T8100 @ 2.10 GHz
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: SWT[5]#3

Beitrag von Thomas »

nein ist nicht normal dass es mit mehr threads langsamer wird, da stimmt dann iwas nicht, wenn du gar nichts mehr hinbekommen solltest, kannst ja den code mal reinstellen oder als pn schreiben vllt kann ich ja helfen.
wollte nochmal fragen ob jemand für threadpools ne bessere lösung hat als awaitTermination und könnte es sein dass eine cyclicbarrier nur funktioniert wenn man in ihrer run-methode auch das ergebnis ausgibt?
Blurio
Beiträge: 56
Registriert: Do 20. Nov 2008, 21:39

Re: SWT[5]#3

Beitrag von Blurio »

Naja langsamer is relativ. Es bleibt relativ gleich bei egal wieviel Threads. Hab zb bei 2000 Sequentiell etwas 9000ms(?) und parallel bei egal wievielen Threads etwa 4700ms(wieder ?).
scrats
Beiträge: 23
Registriert: Mo 10. Nov 2008, 10:52

Re: SWT[5]#3

Beitrag von scrats »

Ob das normal ist weis ich net aber bei mir sbraucht er bei 512Threads 288nano sec hab einen P8600 von Intel @ 2.4Ghz
kann auch sein das meins falsch ist^^
Edit: was mich stutzig macht ist das irgend wo hier steht das jemand T(1)/T(p) max 2.0 hat; das müsste zu deinen werten ja passen aber das passt dann bei net bin da 6499/288 = 22.5 klingt zu gut um wahr zu sein^^
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: SWT[5]#3

Beitrag von Thomas »

ich poste mal meine werte:

Code: Alles auswählen


Sequentieller Teil
Seitenlaenge 	 Laufzeit
100		30
200		117
300		256
400		451
500		701
600		1016
700		1363
800		1780
900		2268
1000		2776
1100		3371
1200		4010
1300		4703
1400		5474
1500		6267
1600		7125
1700		8040
1800		9016
1900		10068
2000		11151


Paralleler Teil

Threads: 2
Seitenlaenge 	 Laufzeit
100		23
200		84
300		184
400		323
500		502
600		721
700		983
800		1283
900		1620
1000		2012
1100		2417
1200		2875
1300		3371
1400		3934
1500		4495
1600		5136
1700		5774
1800		6480
1900		7233
2000		7994

Threads: 4
Seitenlaenge 	 Laufzeit
100		22
200		81
300		193
400		289
500		481
600		685
700		957
800		1206
900		1495
1000		1857
1100		2274
1200		2672
1300		3108
1400		3606
1500		4141
1600		4778
1700		5381
1800		6007
1900		6702
2000		7360

Threads: 8
Seitenlaenge 	 Laufzeit
100		29
200		64
300		163
400		232
500		358
600		531
700		719
800		960
900		1180
1000		1437
1100		1734
1200		2086
1300		2414
1400		2743
1500		3174
1600		3634
1700		4118
1800		4640
1900		5205
2000		5684

Threads: 16
Seitenlaenge 	 Laufzeit
100		19
200		68
300		134
400		256
500		356
600		530
700		694
800		914
900		1140
1000		1406
1100		1720
1200		2049
1300		2409
1400		2778
1500		3142
1600		3564
1700		4122
1800		4578
1900		5049
2000		5600

Threads: 32
Seitenlaenge 	 Laufzeit
100		20
200		64
300		136
400		230
500		369
600		510
700		701
800		928
900		1140
1000		1439
1100		1735
1200		2031
1300		2360
1400		2791
1500		3136
1600		3641
1700		4029
1800		4501
1900		5090
2000		5571

Threads: 64
Seitenlaenge 	 Laufzeit
100		22
200		65
300		136
400		234
500		362
600		509
700		693
800		909
900		1146
1000		1430
1100		1702
1200		2015
1300		2364
1400		2742
1500		3144
1600		3578
1700		4033
1800		4536
1900		5037
2000		5560

Threads: 128
Seitenlaenge 	 Laufzeit
100		29
200		71
300		145
400		242
500		365
600		516
700		702
800		909
900		1163
1000		1439
1100		1715
1200		2020
1300		2364
1400		2760
1500		3152
1600		3566
1700		4037
1800		4519
1900		5020
2000		5551

Threads: 256
Seitenlaenge 	 Laufzeit
100		43
200		84
300		157
400		250
500		378
600		535
700		712
800		981
900		1165
1000		1442
1100		1717
1200		2043
1300		2378
1400		2746
1500		3162
1600		3590
1700		4038
1800		4520
1900		5053
2000		5568

Threads: 512
Seitenlaenge 	 Laufzeit
100		72
200		118
300		185
400		278
500		404
600		557
700		737
800		947
900		1188
1000		1460
1100		1749
1200		2065
1300		2410
1400		2796
1500		3260
1600		3605
1700		4061
1800		4545
1900		5068
2000		5585
deine werte sehen also richtig aus bei mir gehts auch nicht schneller als 5000 millisekunden
das is übrigens eine implementierung ohne threadpool mit einfachen threads die dann mit join() aufeinander warten
@ scrats also dein wert kommt mir echt sehr sehr schnell vor solltest vllt mal schauen ob das bild überhaupt richtig ist
scrats
Beiträge: 23
Registriert: Mo 10. Nov 2008, 10:52

Re: SWT[5]#3

Beitrag von scrats »

hast recht das bild hat ein paar fehler drin! muss dann wohl weiter schaffen^^ so ein feadback ist immer gut!
Antworten

Zurück zu „Übung“