Enterprise Forever

:HUN => Programozás => Topic started by: endi on 2019.November.01. 16:53:24

Title: Párhuzamosított programozás
Post by: endi on 2019.November.01. 16:53:24
Tegnap azon gondolkodtam, van-e EP-n párhuzamosított programozás. :)
Egy eset jutott eszembe...
Title: Re: Párhuzamosított programozás
Post by: ergoGnomik on 2019.November.01. 17:14:42
Mire gondolsz? Nekem semmi nem jut eszembe, ami valamilyen xIxD feldolgozási párhuzamosságra hasonlítana, és szerintem valódi párhuzamos végrehajtás sincs.
Title: Re: Párhuzamosított programozás
Post by: Ferro73 on 2019.November.01. 17:53:08
Egy játék program úgy működött, hogy az 50Hz megszakításnál fútatot le mindig más program csokrot mikor végzett vissza tért a fő programba ami csak idő kitöltő volt.

A program csokor tagjainak futása nem lehetett több min 20 mSec.
Mert akkor a csokor a csokorból hívódik meg. Ami akár egy idő után össze omlik.

Lehet, hogy ilyenre gondolsz?
Title: Re: Párhuzamosított programozás
Post by: endi on 2019.November.01. 19:59:02
hát ügyebár az EP-ben van több proci: z80, dave, nick.
na most ügye mi mindhármat tudtuk programozni, a z80-on keresztül utasításokat adni a többinek.
de tudom, ez még nem párhuzamosított programozás. vagy mégis? :) szerintem tudok olyan esetet mondani, ahol az. :)
Title: Re: Párhuzamosított programozás
Post by: ergoGnomik on 2019.November.01. 22:05:07
hát ügyebár az EP-ben van több proci: z80, dave, nick.
na most ügye mi mindhármat tudtuk programozni, a z80-on keresztül utasításokat adni a többinek.
de tudom, ez még nem párhuzamosított programozás. vagy mégis? :) szerintem tudok olyan esetet mondani, ahol az. :)
Nemigen. A DAVE és a NICK nem processzorok, sosem nevezte őket senki annak, mivel fix funkciós egységek, amiknek külső beavatkozásra van szükségük az állapotuk befolyásolására. Ráadásul semmi olyat nem állítanak elő, ami további gépen beüli feldolgozásra alkalmas lehetne. Sz'tem.
Title: Re: Párhuzamosított programozás
Post by: endi on 2019.November.02. 18:41:22
na jó, nyilván ez a topik félig vicc akart lenni, de ki akartam belőle hozni valamit azért. de úgy látszik az ötlet még bénább volt mint gondoltam. :)
arra akartam kilyukadni, amikor a bias vagy border értéket soronkét többször állítjuk. ez valamiféle programozott összedolgozás a másik "procikkal". de persze ahogy ergoGnomik is írja, ezekből a procikból (amik nem is nevezhetők annak) nem jön vissza feldolgozandó adat... stb stb...
szóval béna volt. :)

amúgy egy cooproci is proci, és annak használata is párhuzamos feldolgozás. tehát azért procinak nevezhetők ilyesmik is...
Title: Re: Párhuzamosított programozás
Post by: ergoGnomik on 2019.November.02. 20:05:26
amúgy egy cooproci is proci, és annak használata is párhuzamos feldolgozás.
Ha szőrszálhasogatóan ragaszkodunk a párhuzamosság hagyományos értelmezéséhez, akkor amíg nem aszinkron módon működik a társprocesszor (értsd: amíg az végzi a feladatát, addig a fő processzor más munkával tud foglalkozni), addig nem igazán beszélhetünk párhuzamosságról. Ennél már a NICK vagy a DAVE is jobb példa akkor a párhuzamos feldolgozásra, mindamellett hogy azok sem jó példák. :mrgreen:
Title: Re: Párhuzamosított programozás
Post by: endi on 2019.November.02. 20:11:32
jó, hát igazából ügye a párhuzamosság azt jelenti hogy ugyanazt a feladatot csinálja több procin a gép. tehát nem azt hogy kiad bizonyos feladatokat.
Title: Re: Párhuzamosított programozás
Post by: Ferro73 on 2019.November.03. 11:00:07
jó, hát igazából ügye a párhuzamosság azt jelenti hogy ugyanazt a feladatot csinálja több procin a gép.
Annak meg mi értelme ?
PL.:
1. CPU  2+2=?
2. CPU  2+2=?
3. CPU  2+2=?
4. CPU  2+2=?
Title: Re: Párhuzamosított programozás
Post by: ergoGnomik on 2019.November.03. 13:25:15
Annak meg mi értelme ? ...
No! Ezt azért remélem csak viccnek szántad!

De ha történetesen komoly, akkor nézzünk egy példát!

Legyen egy számhalmazod, ami különböző értékekből áll! A feladat kiválasztani azt a maximális hosszúságú sorozatot az elemekből, amire a lehető legkisebb hibával (egyenestől mért távolság négyzetösszege) egy egyenest tudsz fektetni. Itt valamilyen elv szerint feldarabolod az összes lehetséges részhalmazt csoportokra, és a processzorok között szétosztod a munkát, hogy mindig egy-egy csoportra végezze el a számolást és keresse meg a csoporton belül legjobb eredményt, majd a végén az eredmények közül kiválasztod a legjobbat.
Title: Re: Párhuzamosított programozás
Post by: Ferro73 on 2019.November.03. 15:19:57
Akkor az már nem ugyanaz a feladat.

1. CPU  X=0 TO 9 ...   IF Y=1  then...
2. CPU  X=10 TO 19 ...  IF Y=1  then...
3. CPU  X=20 TO 29 ...  IF Y=1  then...
4. CPU  X=30 TO 39 ...  IF Y=1  then...

Max hasonló.

Ugyanaz a feladat akkor:
1. CPU  X=0 TO 9 ...   IF Y=1  then...
2. CPU  X=0 TO 9 ...   IF Y=1  then...
3. CPU  X=0 TO 9 ...   IF Y=1  then...
4. CPU  X=0 TO 9 ...   IF Y=1  then...

Néző pont kérdése.

Azonos feladat más változókkal.
Title: Re: Párhuzamosított programozás
Post by: gflorez on 2019.November.03. 15:26:23
Nem hiszem, hogy a legjobb az, ha több eredmény közül választunk ki, ez a processzor erőfeszítéseinek vesztesége lenne.

Van egy jó példa a párhuzamos feldolgozásra, a SymbOS. A Jörn (Prodatron) réseket használ. A feldolgozási idő fel van osztva és megoszlik a folyamatok között, hogy operációs rendszere többfeladatos legyen.

-------------

I don't think the better is to select from the better of several results, this would be a loss of processor effort.

There is a good example of parallel processing, SymbOS. Jörn(Prodatron) uses slots in it. Processing time is sliced and shared between processes to make his Operative System multitask.
Title: Re: Párhuzamosított programozás
Post by: endi on 2019.November.03. 16:02:44
Annak meg mi értelme ?
PL.:
1. CPU  2+2=?
2. CPU  2+2=?
3. CPU  2+2=?
4. CPU  2+2=?

nyilván a sebesség növelés az értelme...
2+2 esetén persze sok értelme nincs, bár ha ötszázcsilliárdszor kell elvégezni hasonló kis műveleteket, akkor megintcsak van értelme.
mondjuk a 2+2-t nem tudom hogy lehet részekre bontani, hogy több proci dolgozzon rajta, de bonyolultabbakat nyilván lehet. és hát nem csak matematikai műveleteket.
Title: Re: Párhuzamosított programozás
Post by: ergoGnomik on 2019.November.03. 16:25:36
Akkor az már nem ugyanaz a feladat.
Akkor nem létezik felépített ház sem, csak falak, nyílászárók, víz-, gáz- és fűtésrendszer, elektromos hálózat, stb. véletlenszerű találkozása. Mert hát ha nem ugyan az az egy ember csinálja, akkor nem is egy házat épít, igaz? ;)

I don't think the better is to select from the better of several results, this would be a loss of processor effort.

There is a good example of parallel processing, SymbOS. Jörn(Prodatron) uses slots in it. Processing time is sliced and shared between processes to make his Operative System multitask.
Google Translate sucked big time, again. Most probably it managed to completely mix up the meaning of my post.

It was an example for multi-processor systems. We were discussing true parallel processing. Therefore multi-tasking, no matter what single processor system does it, is irrelevant. Multi-tasking is only an emulation of true parallel processing.
Title: Re: Párhuzamosított programozás
Post by: Ferro73 on 2019.November.03. 19:04:19
Akkor nem létezik felépített ház sem, csak falak, nyílászárók, víz-, gáz- és fűtésrendszer, elektromos hálózat, stb. véletlenszerű találkozása. Mert hát ha nem ugyan az az egy ember csinálja, akkor nem is egy házat épít, igaz? ;)

???

Bocsi nincs érettségim.

Nem értem mi köze a a házépítésnek, épület gépészetnek és a Mesternek ehhez.
Title: Re: Párhuzamosított programozás
Post by: gflorez on 2019.November.03. 19:11:30
Tökéletesen megértettem, a SymbOS-ot pusztán példaként mutatom be, hogy miként érhető el a párhuzamos feldolgozás egyetlen processzorról: az idő szeletelése. A megvalósítás után szükség van a szeletek irányításának módjára ugyanazon cél elérése érdekében.

----------------------

I have understood it perfectly, I put SymbOS as a mere example of how to reach parallel processing from a single processor: slicing time. Once  achieved, what is needed is a way to control the slices to accomplish the same objective.
Title: Re: Párhuzamosított programozás
Post by: ergoGnomik on 2019.November.03. 19:27:50
???
Állításom: Egy feladat számítógépes megoldása során kijelölünk részfeladatokat és azokat a lehetőségekhez mérten egy időben, különböző feldolgozó egységekkel végeztetjük el = egy feladat párhuzamos elvégzése.

Állításod: Részfeladatokra felbontás = nem egy feladat elvégzése, hanem több feladaté.

Kérdésem: Ha tekintünk egy házépítést, ami különböző szakiparosok által végzett részfeladatok időben egymást átfedő elvégzése, annak a végeredménye egy ház lesz-e vagy sem? (Feltételezem, hogy az építtetőnek nincs végtelen ideje várni az építkezés befejezésére, ezért a párhuzamosan végezhető munkákat úgy is csináltatja. Pl. tetőt lehet fedni miközben épületgépészeti munkák folynak, a külső és belső burkolás sem akadályozza egymást, stb.)

Állításom: A te logikád szerint nem lesz ház, az enyém szerint meg igen. Kinek van igaza, és miért?
Title: Re: Párhuzamosított programozás
Post by: endi on 2019.November.03. 20:15:11
az hogy több különböző eszköz (proci) elvégez több különböző feladatot, amelyek egy közös feladat részei, nem párhuzamosítás!

a párhuzamosítás az, amikor van egy többprocis rendszer, aminek adsz feladatot, és a több proci közösen elvégzi, egyenrangú (ugyanolyan!!!) részfeladatokat végezve.

pl. ilyen a mai videókártyák rendszere is. ott több tucat (vagy több száz) mag számolja ki a képet.

az nem párhuzamosított feladat hogy pl van egy 2 magos géped, és játszol egy játékkal, ami lefoglalja egyik magot, míg az oprendszer a másik magot használja. a rendszered bár párhuzamosított rendszer, de ahogy használod (ebben a leírt esetben), az nem párhuzamosított feladat.
Title: Re: Párhuzamosított programozás
Post by: ergoGnomik on 2019.November.03. 20:38:07
az hogy több különböző eszköz (proci) elvégez több különböző feladatot, amelyek egy közös feladat részei, nem párhuzamosítás!
Értem. Tehát ha egy időben különböző dolgok történnek, akkor azok csak akkor történnek egy időben, ha azonosak. Vagy tulajdonképpen mi a fene az időbeli párhuzamosság meghatározása?

Quote
pl. ilyen a mai videókártyák rendszere is. ott több tucat (vagy több száz) mag számolja ki a képet.
És akkor gondolom az összes feldolgozott primitívre a videokártyák az összes shadert lefuttatják, és mindegyik shadernek az eredénye azonos mértékben jelen lesz az összes primitív megjelenített képében. Mert másként a magok más munkát végeznek és volt-nincs párhuzamosság!
Title: Re: Párhuzamosított programozás
Post by: Ferro73 on 2019.November.03. 20:38:34
A ház akkor is felépül ha az 1 fős Ezer Mester /sorosan/ dolgozik.   idő=1

A ház felépül ha egy 4 fős brigád egyszerre /párhuzamosan/ dolgozik.  idő=1/4
Title: Re: Párhuzamosított programozás
Post by: gflorez on 2019.November.03. 20:52:47
Meg akarom tanulni. Be kell vallanom, nem tudok egy szót a tényről. Nagyon speciális eljárásnak tűnik, bizonyos feladatokhoz jó, mások számára pedig rossz.

--------

I want to learn. I have to confess, I don't know a word about the fact. It seems a very specialised procedure, good for some tasks, but bad for others.
Title: Re: Párhuzamosított programozás
Post by: Ferro73 on 2019.November.03. 21:04:26
A szó amit keresel, azt én sem tudom.
De az okosok megmondják.

1db  Z80 -> 1 program fúttatás
1db 1core x86 /dos  -> 1 program fúttatás
1db 1core x86 /win  -> 1,2,3,4... program fúttatás    multi program???
Title: Re: Párhuzamosított programozás
Post by: Ferro73 on 2019.November.04. 05:50:18
A keresett szó a Multitask (https://pcforum.hu/szotar/multitask)
Title: Re: Párhuzamosított programozás
Post by: Povi on 2019.November.05. 15:19:59
attól, hogy egy ámítógépben kétszer annyi CPU lesz, még nem fog kétszer gyorsabban dolgozni :-)

ugyanis nem minden feladat párhuzamosítható (lásd például a 2+2-t)

ha a feladat 50%-a (időben mérve) párhuzamosítható, akkor a teljes futtatási idő még mindig csak 25%-kal fog csökkenni, két CPU esetén.
Az egyik proci elvégzi a 50+25%-ot, amíg a másik a maradék 25%-ot.

De pl. egy Mandelbrot halmaz számítása 100%-a párhuzamosítható, (egyik CPU pl. csak a páratlan sorokoat, a másik a páros sorokat számolja ki), és így valóban meg van az 50%-os időnyereség.
Title: Re: Párhuzamosított programozás
Post by: gflorez on 2019.November.05. 16:15:13
Nagy! Jó magyarázat!

Az olyan régi processzorrendszereken, mint például az Enterprise, a "párhuzamos számítástechnika" sikerének egyetlen módja a több feladat párhuzamos kezelése, amelyeket egyszerre kell elvégezni egy közös cél érdekében. Nekik már megszakítások vannak.

--------------

Great! Good explanation!

On old processor systems like the Enterprise, the only way to success with "parallel computing" is managing in parallel several tasks which need to be done at the same time for a common purpose. For them we already have interrupts.
Title: Re: Párhuzamosított programozás
Post by: Ferro73 on 2019.November.05. 17:45:38
Nagy! Jó magyarázat!

Az olyan régi processzorrendszereken, mint például az Enterprise, a "párhuzamos számítástechnika" sikerének egyetlen módja...
+ Z80 CPU