kodtabla
Nemely Z
znemely at netposta.net
Mon Mar 21 19:06:05 CET 2005
Szia!
On Sun, 2005-03-20 at 21:07 +0200, ide.ne.irj at freemail.hu wrote:
Thus spake Auth Gábor:
>
> > Aham, tehát a fordÃtóprogram nem tud optimalizált kódot
készÃteni. A gcc
> > esetén a -O opciója mond neked valamit? Ezekben nagyon szépen
benne vannak
>
:)))) Es az szerinted az abszolut jo, optimalizalhatatlan forditas?
> Beixeli az options-ban az 'optimalizalas' negyzetet, es azt hiszi hogy o
> a nagy programozo. Megall az esz...
>
> > Minden egyszerűbb optimalizálás algoritmizálható.
>
> Ja igen, az egyszerubbek. En viszont agybol tudok olyan bonyolultat,
> hogy 100 evig, vagy talan sohasem lesz program ra.
>
ehhez sajnos elobb definialni kell az optimalitas fogalmat, addig
semmilyen szamitaselmeleti tetelt (amit Te ugy fogalmaztal meg, hgoy az
optimalizacio nem algoritmizalhato) nem lehet rahuzni. Te az
optimalitast mint legrovidebb futasidot (legkisebb fogyasztast vagy
legkisebb memoria hasznalatot) tekinted, Gabor pedig a legkisebb
kodolasba befektetett penzt, munkaorat.
A fenti ket optimalitast lehet atszamolni (mas-mas modon!!) penzbeli
optimalitasra, azaz maximalis haszonra. Nyilvan a haszon fog fuggeni a
termek keresleti gorbejetol (ha nem optimalizalom a progi meretet
annyira->tobb memoria kell, az mennyivel dragitja meg a termeket ->
mennyivel esik a kereslet -> mennyivel valtozik a haszon).
Aki ismeri az arrugalmassag fogalmat az azt is tudja, hogy azert, mert
egy termek dragabb (mert nem optimalizaltuk a meretet, futasidot), attol
meg az altala elert penzbeli haszon nagyobb lehet, mert mondjuk a
kereslet kevesbe csokkent, mint amennyivel megdragult a termek ->
nagyobb haszon->penzbeli optimalitas.
Innentol kezdve eleve meddo ezen vitazni, mivel barki tud olyan termeket
mondani ahol a kezzel valo optimalizalas megterul es olyat, ahol nem.
A geppel valo optimalizalas lehetoseget en adott penzert megvehetem es
cserebe adott futasidot/fogyasztast/kodmeretet nyertem. Megtehettem
volna hogy kezzel optimalizalok a fenti parameterekre. Az, hogy melyik
terul meg, a konkret termek hatarozza meg, nem pedig az, hogy ki tudja
meggyozobben eloadni, hogy oneki van igaza.
> Ekkora önellentmondás. :)))))))))))
> > Ember hogy tud optimalizálni, ha bizonyÃtott, hogy nem tud?
Továbbá vedd
> > már észre, hogy az egyszerűbb optimalizációkról van szó.
>
> ??? Optimalizacio != egyszeru optimalizacionak nevezett probalkozasok,
> amit egy gagyi fordito elkovet.
>
Sajnos meg toled sem lattunk semmilyen definiciot arra, hogy mi az
optimalitas. Ez nem is veletlen, mivel olyan hogy optimalitas, olyan nem
onmagaban nem letezik, oda kellene melle tenni azt is, hogy mi szerint
optimalis, akkor mar lehet teteleket kimondani ra.
>> Ha minosegi termeket akarsz csinalni, akkor a lehetosegekhez
> >> kepest optimalis, kezzel huzalozott nyakot tervezel, es a proginak a
> >> kritikus reszeit is optimalizalgatod.
> >
> > Vagy megteszi ezt a HotSpot. Ha nem ismered, nézz utána mit is
csinál.
> > Ahelyett, hogy vaktában lövöldözöl.
>
Az, hogy manapsag a Java programok az uj virtualis gepeknek koszonheton
nativ C/C++ sebesseggel mukodnek, teny. (Termesztesen mindenki tud
mutatni olyan C kodot es olyan Java kodot is ami gyorsabb adott esetben,
most atlagos esetrol beszelunk, tobb szazezer/millio kodsor eseten,
desktop PC eseten es altalanos uzleti celu programoknal).
> Es ez a csoda olyan minosegu nyakot tervez, mint ha en csinaltam volna
> kezzel? Honnan lehet letolteni? Valoszinuleg nem csak RISC procit nem
> lattal, nyakot sem terveztel meg soha...
>
Hogy jon ide a nyaktervezes? A nyaktervezes az a grafelmeleti
sikbarajzolas problemaja (csak itt persze tobb reteg lehet,stb) es
(a matematikusok jelenlegi sejtese szerint) nem polinomialis ido alatt
oldhato csak meg. Na es?
Ki mondta, hogy a mai nyaktervezokbe beepitett autorouter optimalis?
(akar penzben, akar EMC-ben, akar logikus elrendezesben,stb.)
>> Az optimalizacio kicsit tobb ennel.
> >
> > Ez nem az? Mitől optimalizáció egy optimalizáció?
>
> Benne van a neveben: optimalis megoldas keresese.
> Mi szerint optimalis?
>Ez magatol ertetodoen
Manapsag egyre kevesebb dolog magatol ertetodo..
> csak a feladat tokeletes atlatasa es a celhardver mukodesenek megertese
> utan lehetseges.
> Az elsore keptelen egy program.
> Az elobb mar celoztam ra: egy program nem tudja megmondani egy masik
> programrol hogy az le fog fagyni, vagy veges ido utan visszater.
> Az ember igen. Ez egy elvi kulonbseg! Mi atlatjuk a mukodest, egy
> program csak kovetni tudja. Mi tudunk valoban optimalizalni, egy program
> csak finomitani tud a programon.
>
Te most a megallasi problemat probalod rahuzni erre a temara, csak epp
nem jol. Eloszor is, talan megint definialni kellene, hogy milyen
parameterre vonatkozo optimalitasrol beszelsz, addig eleg nehez lesz
barmilyen elmeleti tetellel elohozakodni..
A bekezdesbol ugy tunik, hogy te a futasido optimalizalasat erted
"optimalizalas" alatt. Akkor tekintsuk most ezt (tekinthettem volna
program meretet, fogyasztast, stb.) Egy feladatnak futasido
szempontjabol akarhany optimalis megoldasa lehet:
0 = megoldhatatlan feladat
1 = van egy darab megoldas, ami minden mas megoldasnal jobb futasidoben
x = van x darab ugyanolyan futasideju megoldas, ami minden mas
megoldasnal gyorsabb
Na most tekintsuk csak a megoldhato feladatok halmazat, es a te
megoldasodat, amit kezzel optimalizaltal futasidore. Be tudod
bizonyitani, hogy a te megoldasod optimalis, azaz nincs nala jobb? Mert
en fogadni mernek,hogy ha raeresztunk a te kododra egy 100 fos
programozo brigadot, biztos talal x megsporolhato ciklust.
ERGO A TE KODOD SEM OPTIMALIS! Csak az optimalishoz KOZELIT!!!
Es a kutya itt van elasva. A te kodod is csak ugyanugy kozelit az
optimalishoz mint a forditoprogram altal keszitett. Lehet hogy a te
kodod nemileg kozelebb van az optimalishoz mint a forditoprogram altal
keszitett, na es? azt, hogy mennyire erdemes kozeliteni a futasido
optimumot azt az donti el, hogy mennyire _ERDEMES_! (pl. erdemes=mikor
lesz a penzbeli optimum maximalis). Viszont a penzbeli optimalitasba nem
csak a futasido,hanem 1000 masik dolog (arrugalmassag, elkeszulesi
ido,stb.) fog beleszamitani, ergo a penzbeli optimalitas egyaltalan nem
biztos, hogy ott maximalis ahol a futasido minimalis (szep is lenne..).
>> Pl lehet hogy eleve be vannak allitva a flagek, teljesen el is hagyhato
> >> az and.
> >
> > Nincs, mert össze kell hasonlÃtani. Párosság vizsgálat.
>
> ??? Es ha az elozo muvelet olyan volt, hogy pont jol vannak beallitva
> a flagek? Vagy kicsit at lehet rendezni ugy, hogy ez teljesuljon?
> Stb... Fociklusban tobb 10% CPU-ido nyeres.
>
es? ki mondta, hogy a 10% cpu ido nyereseg meg fog teruli penzugyileg?
mondhatsz egy olyan termeket ahol meg fog, mas tud mondani olyat ahol
nem.. na es?
> Valóban egyszerű fejben lekezelni, hogy a 10 pipe és 200
regiszter közül
> > melyik mire képes, és a párhuzamos végrehajtás miatt melyik
utasÃtást hova
> > lehet áthelyezni, hogy ne várjon a pipe. Te tudod. Hiszen csodagyerek
> > vagy.
>
> Hulyeseget beszelsz, mar nem is lepodom meg.
> Ha kell, akar 1000 regisztert es 40 pipe-t is vegiganalizal az ember,
> ha jelentos CPU idot lehet megtakaritani vele. Mi ezzel a problema?
> Valakinek 32-t is lehetetlen, de 3-at is. Az keressen mas munkat.
> Masreszt a szamokbol jol latszik hogy mennyi kozod van a temahoz...
>
Es pl. a powerPC processzor? 32 atlanos celu es 32 lebegopontos
regisztere van, ami ugyan meg mindig nem 200, de az emberileg egyszerre
nyomon kovetheto hataron mar boven felul van..
Ja hogy te most csak 8bites mikrovezerlokben gondolkodsz? Pardon.
> Ezek valoban egy tipikus RISC processzor jellemzo adatai :)
>
> >> Dehogy jarunk... Meg elviekben sem. A fordito csak felismer mintakat,
> >> alkalmaz ra szabalyokat. Majd ha mondjuk valami minimax szeru
> >> algoritmussal kiprobal egy csomo elmeleti lehetoseget, minden inputra,
> >> meg akkor sem. Mert azt meg nem fogja tudni hogy mi a gyakori input,
> >> hiaba atlagosan jobb mint amit az ember csinal, ha az ugyes programozo
> >> az adatok tipusahoz optimalizalja a feldolgozast. Stb...
>
Nyilvan igy van. Es? Most epp megint mire optimalizalunk? Mert az
lemaradt ismetelten..
> Egyedi programok esetén nagyon sokat lehet nyerni azon, ha minél
kevesebb
> > élőmunkát teszel a termékbe.
>
> Ha meg nem egyedi, akkor bukta.
>
Gabor azt mondja, hogy 1+2=3, te azt mondod, hogy 1+1+1=3. Nyilvan barki
tud mondani olyan termeket amit egyedileg is megeri gyartani es olyat
amit nem. Na es?
Ne beszeljunk mar el egymas mellett..
Zoli
More information about the Elektro
mailing list