Csak ismételni tudom Herr X konklúzióját: "Ha van felesleges kapacitása a leggyorsabb eszköznek, akkor tényleg nem érdemes a feladatot kiadni egy lassabbnak."
Ez a veleje az egész problémának. Igazán nem tudom mit kellene még ehhez hozzátennem, hogy végre megértsd a lényeget.
A többprocis gép sem lesz gyorsabb egy normál 1 procis gépnél, ha a számítási kapacitás bőven sok még 1 procira is.
Ellenben, ha bivaly számítás kell, akkor már gyorsabb a többprocis rendszer.
Tisztázzátok a peremfeltételeket. Szerintem ezen vitatkoztok. Ha van felesleges kapacitása a leggyorsabb eszköznek, akkor tényleg nem érdemes a feladatot kiadni egy lassabbnak.
Ellenben ha nincs, vagy nincs elegendő, akkor már érdemes (lehet).
Gondolkozz meg azon a SETI-n egy kicsit, hatha magad rajossz a tevedesedre. Vagy gondolkozz el azon, hogy miert vannak tobbprocesszoros gepek, miert vannak furtok. Ne hasznald a Googlet, szar!
Vagy meg jobb: a te agyad maximalis teljesitmenye sem a "leggyorsabb" idegsejted teljesitmenyevel egyenlo, es a tobbi idegsejt folosleges, bar itt adodna egy eleg gonosz poen.
Bubis peremfeltételei a következők:
- plus/4 + floppy drive
A plussy-ban tipikusan nincs több szálú eseménykezelés (legfeljebb a megszakítás időnként leállítja a programfutást, majd visszaadja a vezérlést) Szóval a plussy nem multitask.
A plussyban nincs coproci, a brute-force-hoz gyenge.
"Amennyiben az alapgépen több erőforrásod (ha úgy tetszik számítási kapacitásod) marad a mellékfeladat elvégzésére, mint amennyit a drájv biztosít, akkor egyszerűen butaság a drájvra bízni annak végrehajtását, mert csak lassulni fog tőle a rendszer!"
Viszont, ha az adott mellékszál kapacitását másra kell felhasználni, akkor mégis gyorsul a rendszer, illetve megoldható lesz a probléma.
És ez a helyzet a plussy esetében.
IF (szükséges_gépidő > kommunikációs_idő) or (főgépen_a_mellékfeladatra_jutó_számítási_kapacitás < drive_számítási_kapacitás) THEN számoljon_a_drive_is = TRUE
Na ez a baromi nagy tévedés!
Ez kábé olyan szintű kijelentés volt, mintha azt mondtad volna, hogy egy Porsche és egy Trabant ketten együtt gyorsabban célhoz érnek, mint egy Porsche egyedül.
Gondolkozz már egy kicsit az ég áldjon meg!
Amennyiben az alapgépen több erőforrásod (ha úgy tetszik számítási kapacitásod) marad a mellékfeladat elvégzésére, mint amennyit a drájv biztosít, akkor egyszerűen butaság a drájvra bízni annak végrehajtását, mert csak lassulni fog tőle a rendszer!
A számítási kapacitás ugyanis _nem adódik össze_, ugyanúgy ahogyan a párhuzamosan kötött ellenállások ellenállásértéke sem azok matematikai összege, hanem azok _eredője_. A párhuzamosan kapcsolt gépek esetén is épp ilyen eredő-teljesítményértéket kapsz (nem pedig azok matematikai összegét)! (Egyszerűen nem hiszem el, hogy ezt nem vagy képes megérteni a nagy matekzseni elméddel!)
Ha az alapgépen a mellékszámítás (a főprog. mellett egy mellékszálon futtatva) hamarabb kiszámolja az adatokat, mint azt a drájvon tenné, akkor - még egyszer és utoljára, csak a te kedvedért megismétlem - _nincs értelme a drájvra bízni ezt a feladatot_.
(Ha egyáltalán tudod mi az hogy "főszál" és "mellékszál". Mert ha nem, akkor valszeg spagettikódot gyártasz, ami elég gáz, mert ezzel a szemlélettel szinte lehetetlen erőforrás-kihasználtságra optimalizálni egy rendszert.)
A seti-projektben pedig egész egyszerűen azért osztják szét a feladatokat, mert abban az esetben a háttérgépek számítási kapacitása nagyobb.
Ilyen egyszerű ez.
Egyébiránt én a következő egyszerű állítást tettem:
Az, hogy háttérszámításra az alapgépet ill. a "segédgépet" éri-e meg inkább használni (vagyis hogy az alapgépen ill. a drájvon lesz-e hamarabb hozzáférhető a kiszámolt adat)
Es tevedsz. Nem ettol fugg. Mert amig a drive szamol, addig a gep csinalhat mast. Ha en gyorsabban hozza todok ferni ahhoz amit a drive kiszamolt mint amennyi ido azt nekem kiszamolni a gepen, akkor ezzel az eljarassal idot takaritok meg a gep oldlan. Es ekkor eri meg, ez a kriterium. Mindegy, hogy a drive meddig szamolt, nem szamit, hogy milyen a teljesitmenye! A gep es a drive szamitasi kapacitasa osszeadodik, ebbol csak a kommunikaciora szant eroforras igeny vonodik le. Egy ilyen esetben ugy kell parhuzamositani a feladatokat, hogy minnel kevesebbet kelljen kommunikalni. Ennyi.
Szetinted mi a fenenek hasznalnak a SETI@home projecben mindenfele gepet? Miert nem csak egy bikat?
Hát ez érvnek ölég gyenge... de legalább megpróbáltad! ;->
A valoszinuseg-egyenlet volt a gyonge. Egy matek tanar elott is igyekszel nem hulyesegeket beszleni, ugye? Akkor meg mit csodalkozol azon, hogy egy matematikus azt mondja neked, hogy ezt azert ne! Sajnalom!
"valószínűség-egyenlet"-rol meg az eletemben nem hallottam!
De ugye valószínűség-számításról már igen?
Egyébiránt én a következő egyszerű állítást tettem:
Az, hogy háttérszámításra az alapgépet ill. a "segédgépet" éri-e meg inkább használni (vagyis hogy az alapgépen ill. a drájvon lesz-e hamarabb hozzáférhető a kiszámolt adat) alapvetően a következő két dologtól függ:
1. A két gép közötti teljesítménykülönbségtől
2. A főprogram és háttérszámítást végző program teljesítményigényének a különbségétől
Ez a két tényező _együttesen_ határozza meg azt, hogy melyik megoldás nyújt jobb eredményt.
Hogy ebben az egyszerű és logikus összefüggésben neked mi nem tiszta, azt fel nem tudom fogni.
Ja és akkor még nem említettem a kérdéses háttérszámítási eljárás programszintű megvalósításának a módját, mely alapvetően meghatározza a háttérszámítás teljesítményigényét: mert könnyen lehet, hogy egy sebességre optimalizált /pl. táblázatból dolgozó/ rutin jobb teljesítményt nyújt az alapgépen, mint kódra optimalizált társa a segédgépen.
Szerintem amit es amihez nem ertessz abban ne akarjal okos lenni!
Hát ez érvnek ölég gyenge... de legalább megpróbáltad! ;->
ui: Megnéztem a heartfixert. Igazán jó.
De van benne egy baromi nagy hiba!...
...a "greetings" helyett "greatings"-et írtál. :-)
Es a quatro-t meg ket t-vel kell irni. Valamikor hajnal 3-4 ora korul gepeltem be ezeket...
A masikkal kapcsolatban: inkabb hagyjuk! :) Mellesleg megjegyzem: matematikus vagyok, de "valószínűség-egyenlet"-rol meg az eletemben nem hallottam! :) Szerintem amit es amihez nem ertessz abban ne akarjal okos lenni!
Na jó, még egyszer megpróbálom, hátha így érthetőbb lesz:
Számomra teljesen evidensnek látszik, hogy ha adva van két gép (alapgép & drájv) mindkettő azonos teljesítményű procival, és fizikailag (tehát hardveresen /azaz memórialapozás, címzés, csipszelekt, stb./) és logikailag (vagyis szoftver-protokoll szinten /azaz jelen esetben lda-sta/) az adatelérés is közel egyforma sebességgel megvalósítható, akkor pontosan 100 százalék a valószínűsége, hogy a drájvra kiosztott háttérszámítás minimum ugyanolyan sebességgel (de minden bizonnyal gyorsabban) fog végrehajtódni, mintha az - egyéb feladatokat is végző - alapgépen futtatnánk.
Ámde, amennyiben viszont a drájv teljesítménye kisebb mint az alapgépé (pl. 1MHz/1,8MHz), akkor a fentebb említett valószínűség már nem 100 százalékos. Vagyis minél nagyobb az alapgép sebessége a "háttérgéphez" képest, annál kisebb a valószínűsége, hogy megéri a háttérgépre bízni a mellékszámítások elvégzését. Ennek a valószínűség-egyenletnek a másik oldalán természetesen a főprogram és az elvégzendő mellékfeladat közötti teljesítményigény-hányados áll.
A definíciód (vagyis: a lényeg az hogy a háttérgépen vagy az alapgépen számoltatott adatokhoz lehet-e hamarabb hozzáférni) egyébként korrekt, én csupán arra szerettem volna rávilágítani, hogy nem cáfolja hanem kiegészíti az általam leírtakat. Ha úgy tetszik, elvi leegyszerűsítése annak a problémának, amelyet én a gépek közötti teljesítménykülönbségek mentén vezettem elő.
Szerinted hogy beszelhetunk pl. ugyanarrol amikor vilagosan leirtam es elmagyaraztam, hogy miert lehet akar sokkal gyengebb is a hatterszamitasra hasznalt drive mint a gep amit kiszolgal
Érdekes, én is pontosan ezt hajtogatom. Nem ilyenkor szokták mondani a magyarban hogy "ugyanarról beszélünk"? :-)
Azt hiszem Timna már látja a lényeget... :-D
ui: Megnéztem a heartfixert. Igazán jó.
De van benne egy baromi nagy hiba!...
...a "greetings" helyett "greatings"-et írtál. :-)
én sem értem mit nem ért a kollega :)
nyilván vannak olyan feladatok amik kevés (vagy kevés paraméter alapján meghatározott) kiindulóadatból, kisterjedelmű outputot produkálnak, viszont számításigényesek. Az ilyet lehet átküldeni a drive-nak, ahol ugye az adatátivtel egyrészt lassú, másrészt gazdaságtalan, mivel a számítás vele nem halad :)
Itt alapveto problemak vannak! Szerinted hogy beszelhetunk pl. ugyanarrol amikor vilagosan leirtam es elmagyaraztam, hogy miert lehet akar sokkal gyengebb is a hatterszamitasra hasznalt drive mint a gep amit kiszolgal. Egy kivulallo is el tudja donteni a magyar nyelv ismeretenek birtokaban, hogy mi teljesen masrol beszelunk! Akkor te aki latszolag konyitassz ezekhez a dolgokhoz, hogyhogy nem!?!
Bocs, de nagyon felhuztal az ertetlensegeddel!
Picit mas tema:
Plus-4est szeretnek szerezni, ebben kernem a segitsegeteket. Ha valaki tud bontot, vagy elado gepet, kerem irjon ide, vagy dobjon meg egy maillel. koszi. (Atarikat is keresek 1ebkent)
Szerintem ugyanarról beszélünk.
Én éppen arra céloztam a drájv/gép sebességkülönbséggel, hogy ha a háttérben számolt adatok előállítása a drájvon több időt vesz igénybe mint - a főprogram mellett pl. egy mellékszálon futtatva - a gépen, akkor nyilvánvalóan nem éri meg a drájvot használni e célra.
Ja, én is úgy gondolom, hogy nem sok különbség van, a 8502 meg lehet hogy a TED, a fene emléxik már :) Majd otthon megnézem :)))
A keret tényleg nagy, főként hogy vannak olyan részei ami a legtöbb megjelenítőn nem láccanak. Olyan 50-60% gépidő megy a kereten, tehát ez alapján átlag olyan 1.3-1.5Mhz körül lehet a gép normál esetben!
Ahhoz, hogy mikor eri meg hatterszamitasra hasznalni a driveot, nyilvanvalon az egvilagon semmi koze nincs annak, hogy az a drive milyen gyors a gephez kepest. Az a kerdes, hogy gyorsabb-e hozzaferni (a driveon kiszamolt) adatokhoz mint ugyanazt helyben eloallitani. Semmilyen mas kriterium nem szukseges. Meg egy nagyon lassu masodik CPU-val is megeri szamoltatni ha az emlitett kriterium teljesul, legfeljebb nem lesz latvanyos az eredmeny. A tobbprocesszoros gondolkodasmod egy kicsit mas... :)
A gépek egy jó része 7501-essel van szerelve. Ennek egy későbbi változata a 7510. Ezután jött a 8501-es, majd a 8510-es. (Lehet hogy megjelent néhány 8502-es is, de erről nem tudok.) A gyár állítása szerint egyébként semmi különbség nincs közöttük. (A számok változása talán csak néhány, csekély gyártástechnológiai változtatást jelez. De ez csak feltételezés részemről.)
Ami az órajelet illeti, nagyjából úgy van ahogy írtad. Amíg a TED a képszerkesztéshez szükséges infot olvassa ki a memóriából, addig a proc. egyszeres, utána kétszeres órajelet kap.
De nem szabad elfelejteni: jó nagy az a keret! :-)
Meg aztán le is lehet kapcsolni a TED képszerkesztését, bár ez a megoldás animoknál - érthető okokból - nem kifejezetten előnyös.
6510? Az valami Nokia? :)
Na de komolyan, a 7510 (nem 8502?) csak akkor megyen 1.8-on amikor a TED nem nyúlkál le karakterekért, én úgy tudom. Azaz a keret kirajzolásakor. Ahogy anno mondtuk, kereten. Amúgy 0.9-es.
Ja, bocs... figyelmetlen voltam, én a soros portról beszéltem. TIA-n keresztül természetesen egészen más a helyzet. (Mentségemre legyen szólva, annak idején - sok évvel ezelőtt - elkövettem néhány háttérbufferelő rutint 1541-esre, amelyek a standard soros porti kommunikációt használták.)
C64-nél egyébként biztos megéri háttérszámítás-végzésre használni a floppy 6510-esét, hiszen ott így két azonos teljesítményű proc. dolgozik egymás mellett. Pluszin a 7510-es viszont csaknem kétszer akkora órajellel ketyeg (1,8 MHz), szóval itt már nem ennyire egyértelmű a dolog. Könnyen elképzelhető, hogy egy rövidebb lélegzetű demónál csak lassítaná a programfutást. Egy nagyobb számítási kapacitást igénylő programnál viszont már lehet hogy megéri.
> A 1551-es a TIA-n keresztul 12 biten tud
> kommunikalni ebbol 8 bit kozvetlenul be van
> mappolva a memoriaba, tehat az adat atkuldes
> megfelelo szinkronizalassal egyszeru sta-lda.
Ugy ertem, hogy a 12 bit mindket oldalon ugy van mappelve a membe, hogy 8+2+2. Azaz az egyik 8 bit kommonikalhato sta/lda-val. A TIA egyebkent 3*8 bitet tudna, szoval nincs maximalisan kihasznalva, de ha ki is lenne, szerintem az nem jelentene, azt, hogy gyorsabb kommunikaciot lehetne folytatni a gepek kozott. Max kenyelmesebb lenne a programozasa.
Rakerestem a neten a 6510T-re, es tenyleg ugy tunk, hogy 1Mhz-es.
Az 1551-ben egy 6510T van, ami tudtommal 2Mhz-en ketyeg. Az 1541-ben valoban gyengebb proci van de nem 0,9Mhz-es hanen pontosan 1Mhz-es az orajele. A 1551-es a TIA-n keresztul 12 biten tud kommunikalni ebbol 8 bit kozvetlenul be van mappolva a memoriaba, tehat az adat atkuldes megfelelo szinkronizalassal egyszeru sta-lda.
Az 1541-eshez a leggyorsabb kommunikacios protokol is egyszerre csak ket bitet tud atkuldeni! (Most hallottam, hogy valaki talan megcsinalta, hogy kuldjon 3-at.) Mindezen kulondbegek ellenere C64-en sikeresen hasznaljak a driveot koltseges szamitasok elvegzesere, pl 3D-s animokhoz vegpontok kiszamitasa.
En sem azt mondtam, hogy a drive fog nekem rajzolni a kepernyore. De ha erdekel valoszinuleg meg ezt is meg lehet csinalni ugy, hogy kifejezetten megerje, mert a kommunikacio adott esetbe kevesebbe kerulhet, mint a plusin megcsainalni minden szamitast.