Sivut

Kommentit (134)

Kyttääjä
Seuraa 
Viestejä1163

Deimos kirjoitti:
Kyttääjä kirjoitti:
Tarvitsin muuten Windowsin FindFirstFile- ja FindNextFile -funktioita, ja ne tuhosivat kovalevyltä kaikki ohjelmat ja tiedostot? Kirosin vähän aikaa, ja rupesin koodaamaan kaikkia uudelleen. Tämä vain osoittaa jo tiedetyn asian varmaksi, että Windows on todella perseestä.

No, perkele. Tuliko iso urakka? Windows on tosiaan lelu.

Aika iso savotta tuli. Mutta uudelleen koodaus käy joutuisasti, koska minulla on tapana muistaa pääosin kirjoittamani koodit. Ja uudelleen koodattuna ja debugattuna syntyy ajatusvirheettömämpää ja lyhyempää koodia.

Kyttääjä
Seuraa 
Viestejä1163

Deimos]Muistan kun ensimmäisen kerran törmäsin videoon zoomauksesta. Se oli tehty sen ajan supertietokoneilla (Cray joku malli?). Video oli pitkä ja tuli muistaakseni jossain YLE:n ohjelmassa... </p> <p>Minäkin muistan tuon YLE:n ohjelman. Lumouduin silloin fraktaaleihin koko loppuiäkseni, ja silloin aloitin myös matematiikan harrastamisen tavoitteena ymmärtää fraktaaleja. </p> <p>Oli se hienoa, kun ensimmäisen kerran onnistui piirtämään utuisen fraktaalin 16 värillä ja 320x240 resoluutiolla. Tietokone mahtoi olla joku Commodore 128. </p> <p>[quote=Deimos kirjoitti:
Onko muuten rantaviiva tietyllä tapaa fraktaali?

Esimerkiksi Kochin käyrä on rantaviivan tavoin fraktaalinen ja ilmeisesti äärettömän pitkä.

Sisältö jatkuu mainoksen alla
Sisältö jatkuu mainoksen alla
Neutroni
Seuraa 
Viestejä33260

Kyttääjä kirjoitti:
Muutamaan sekuntiin pääsee pienemmällä resoluutiolla ja laskennalla, joka on toteutettu niin, että joka pixelistä lasketaan vain yksi piste. Silloin kaaokseen sisältyvä järjestys ilmenee kaaoksena eli värimössönä, kuten jäsen NytRiitti linkkaamassa videossa paikka paikoin näkyi. (Kaaosmetodilla lasketun kuvan suppeneminen kaaoksen ulkopuolella piirtyy kyllä tasaisena.)

Videossa oli videon pakkauksesta johtuvaa mössöä. Ylisämpläämällä saa siistimpää kuvaa, mutta 2x2 auttaa jo paljon ja 3x3 yli on hyödytöntä. Adaptiivisiakin menetelmiä on, mutta esimerkiksi tyhmä 3x3 vie vain 9 kertaisen ajan. Sitä en sitten tiedä kuinka hitaita nuo recomplex-luvut käytännössä ovat. Perusmandelbrot optimoituu erinomaisen hienosti. Se on ainoa minun koodaama ohjelma, jossa hyperthreading liki kaksinkertaistaa nopeuden ja AVX-käskyt liki nelinkertaistavat. Mutta ei sillä muutamalla sekunnilla kovin syvälle pääse tietenkään, ehkä muutama kymmenen sekuntia on realistisempi arvio nykynäytön kokoisille kuville tuhansien maksimi-iteraatiolle.

Tuo kaaosmetodi lienee jonkinlainen monte carlo, jossa lasketaan (pseudo)satunnaisia pisteitä?

Deimos
Seuraa 
Viestejä10927

Kyttääjä][quote=Deimos kirjoitti:
Muistan kun ensimmäisen kerran törmäsin videoon zoomauksesta. Se oli tehty sen ajan supertietokoneilla (Cray joku malli?). Video oli pitkä ja tuli muistaakseni jossain YLE:n ohjelmassa...

Minäkin muistan tuon YLE:n ohjelman. Lumouduin silloin fraktaaleihin koko loppuiäkseni, ja silloin aloitin myös matematiikan harrastamisen tavoitteena ymmärtää fraktaaleja.

Oli se hienoa, kun ensimmäisen kerran onnistui piirtämään utuisen fraktaalin 16 värillä ja 320x240 resoluutiolla. Tietokone mahtoi olla joku Commodore 128.

Deimos kirjoitti:
Onko muuten rantaviiva tietyllä tapaa fraktaali?

Esimerkiksi Kochin käyrä on rantaviivan tavoin fraktaalinen ja ilmeisesti äärettömän pitkä.

Lumouduin myös fraktaaleista. Mutta olen aina pitänyt itseäni matemaattisesti lahjattomana. En osaa sanoa pitääkö se paikkaansa. Ihailen ihmisiä jotka tuottavat matematiikan ja fysiikan avulla mitä ihmeellisempiä asioita. Fraktaalit ovat yksi matematiikan hienous. Nyt luulen että minun on hieman myöhäistä hypätä junaan. Mutta te joilla on tuo mahtava taito ohjemoida ja laskea niin jatkakaa ihmeessä. Minä vain ihailen tuotoksia. :-)

BW kirjoitti: "The mad man from Tikkurila, who eats (drinks) more than he earns!
Einstein:Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.
Einstein:The most beautiful experience we can have is the mysterious.It is the fundamental emotion that stands at the cradle of true art and true science.
Reifengas: Saattaa säilyäkin pimeä markkina jonkin aikaa, mutta ...tuoni vie.Valtion on otettava omansa, huolehdittava omistaan, ja valtio olemme me.

Neutroni
Seuraa 
Viestejä33260

Deimos kirjoitti:
Tästä en ole aivan varma. Mutta muistelisin jopa Amigassa olleen renderöintiohjelman.

Amigalle oli paljon fraktaaliohjelmia.

Lainaus:
Renderöinti oli älyttömän hidasta. Siinä keitti kahvit tai parit ja tarkkuus oli mitä oli. Muistan kun ensimmäisen kerran törmäsin videoon zoomauksesta. Se oli tehty sen ajan supertietokoneilla (Cray joku malli?). Video oli pitkä ja tuli muistaakseni jossain YLE:n ohjelmassa (1980-90 luvun vaihdetta???). Jokatapauksessa jatkaa ja laittakaa tuotoksia tänne. Fraktaaleissa on jotain mystisen hienoa.

Muistan sen videon, ja se innoitti minut koodaamaan C64:lla. Tein Basicilla ohjelman, joka laski jonkinlaisen 2-värisen kuvan yön yli. Sen videon värit ja zoomaus oli jotain utopistista.

Lainaus:
Onko muuten rantaviiva tietyllä tapaa fraktaali?

No rantaviivassa voi olla fraktaalimaisia piirteitä, se on yleisesti käytetty esimerkki, mutta toisin kuin fraktaali, rantaviivan detaljien määrä on äärellinen.

Deimos
Seuraa 
Viestejä10927

Neutroni kirjoitti:
Deimos kirjoitti:
Tästä en ole aivan varma. Mutta muistelisin jopa Amigassa olleen renderöintiohjelman.

Amigalle oli paljon fraktaaliohjelmia.

Lainaus:
Renderöinti oli älyttömän hidasta. Siinä keitti kahvit tai parit ja tarkkuus oli mitä oli. Muistan kun ensimmäisen kerran törmäsin videoon zoomauksesta. Se oli tehty sen ajan supertietokoneilla (Cray joku malli?). Video oli pitkä ja tuli muistaakseni jossain YLE:n ohjelmassa (1980-90 luvun vaihdetta???). Jokatapauksessa jatkaa ja laittakaa tuotoksia tänne. Fraktaaleissa on jotain mystisen hienoa.

Muistan sen videon, ja se innoitti minut koodaamaan C64:lla. Tein Basicilla ohjelman, joka laski jonkinlaisen 2-värisen kuvan yön yli. Sen videon värit ja zoomaus oli jotain utopistista.

Lainaus:
Onko muuten rantaviiva tietyllä tapaa fraktaali?

No rantaviivassa voi olla fraktaalimaisia piirteitä, se on yleisesti käytetty esimerkki, mutta toisin kuin fraktaali, rantaviivan detaljien määrä on äärellinen.

Juu, se selvisi eilen kun googlasin myöhemmin. Amigalle tosiaan oli iso läjä renderöintiohjelmia. Se olikin varmaan ensimmäinen törmäykseni niihin. Olihan siihen traytrackin ohjelmiakin. Minulla on onni omistaa miltei jokainen Amigan softa. Niin hyöty- kuin peliohjelmakin. En kerro mistä sain :-) Niin ja Amiga-emulaattori tietenkin. On myös Amiga 500 mutta vaatii hieman korjaamista. Luultavasti vaatisi vain piirien irroituksen, putsauksen ja takaisin laiton. Skrollissa on jossain numerossa ohjeet hommaan. Nyt vilkuttaa vikakoodia, en ole perehtynyt sen kummemmin.

BW kirjoitti: "The mad man from Tikkurila, who eats (drinks) more than he earns!
Einstein:Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.
Einstein:The most beautiful experience we can have is the mysterious.It is the fundamental emotion that stands at the cradle of true art and true science.
Reifengas: Saattaa säilyäkin pimeä markkina jonkin aikaa, mutta ...tuoni vie.Valtion on otettava omansa, huolehdittava omistaan, ja valtio olemme me.

Kyttääjä
Seuraa 
Viestejä1163

Ohessa recomplex-luvuilla laskettu zoomaus. recomplex-luvuilla laskeminen on todella hidasta (tarvitaan uuden sukupolven kannettava, kun sellainen Pentium 8 tai 9 tai 10 joskus tulee myyntiin).

recomplex-luvuilla on olemassa 4D Mandelbrotin joukko. Pitäisi vain löytää keino kuvata 4D-avaruus 3D:nä, koska recomplex-luvut käyvät 2^n dimensioissa (vain 2^2 dimensio on kiinnostava). Mutta työn alla on ensin kuvata 4D-avaruus tasossa.

Vierailija

Intel on ihan kusessa 10nm prosessin kanssa, joten hinta tulee olemaan aika korkea. Veikkaisin että noi skaalautuu hyvin monelle ytimelle, joten AMD taitaa olla parempi vaihtoehto.

Neutroni
Seuraa 
Viestejä33260

Kyttääjä kirjoitti:
Ohessa recomplex-luvuilla laskettu zoomaus. recomplex-luvuilla laskeminen on todella hidasta (tarvitaan uuden sukupolven kannettava, kun sellainen Pentium 8 tai 9 tai 10 joskus tulee myyntiin).

Ei niiden niin ihmeellisen hitaita pitäisi olla, jos teet vain kerto- ja yhteenlaskuja. Käytätkö jotain hidasta kieltä?

En odottaisi prosessoreilta merkittävää kehitystä näköpiirissä olevassa tulevaisuudessa. Ytimien määrä kasvaa hitaasti, mutta suorituskyky per ydin valitettavasti ei, jos ei keksitä jotain ihmeellistä.  Jos noista on oikeasti kiinnostunut, kannattanee perehtyä laskentaan grafiikkaprossulla, esim. CUDAlla tai OpenCL:llä. Mandelbrot ja vastaavat rinnakkaistuvat loistavasti, koska jokaisen pikselin voi laskea toisista riippumatta.

Lainaus:
recomplex-luvuilla on olemassa 4D Mandelbrotin joukko. Pitäisi vain löytää keino kuvata 4D-avaruus 3D:nä, koska recomplex-luvut käyvät 2^n dimensioissa (vain 2^2 dimensio on kiinnostava). Mutta työn alla on ensin kuvata 4D-avaruus tasossa.

No ainakin ortografinen projektio, jossa vain jätät dimensioita huomioimatta, on triviaali. Povrayssa on mahdollisuus renderöidä hyperkompleksiluvuilla laskettuja 4D-fraktaaleja, mutta ne ovat sekavaa sotkua. Ei niistä tule hienoja palloja ja säikeitä, niin kuin voisi odottaa Mandelbrotin ympyröistä.

Kyttääjä
Seuraa 
Viestejä1163

Neutroni kirjoitti:
Ei niiden niin ihmeellisen hitaita pitäisi olla, jos teet vain kerto- ja yhteenlaskuja. Käytätkö jotain hidasta kieltä?

En odottaisi prosessoreilta merkittävää kehitystä näköpiirissä olevassa tulevaisuudessa. Ytimien määrä kasvaa hitaasti, mutta suorituskyky per ydin valitettavasti ei, jos ei keksitä jotain ihmeellistä.  Jos noista on oikeasti kiinnostunut, kannattanee perehtyä laskentaan grafiikkaprossulla, esim. CUDAlla tai OpenCL:llä. Mandelbrot ja vastaavat rinnakkaistuvat loistavasti, koska jokaisen pikselin voi laskea toisista riippumatta.

Syy on prosessorien valmistajissa. He rahastavat joka sukupolven viimeiseen hengenvetoon saakka, vaikka olisi mahdollisuuksia jo pieneen supertietokoneeseen. Ongelmaksi muodostuu silloin prosessoreiden ja tietokoneiden valmistajille se seikka, että rahastus loppuu, jos jokaisen tarvitsee ostaa enää vain yksi kannettava.

En ole perehtynyt CUDAan tai OpenCL:ään. Ilmeisesti ovat tehokkaita, varsinkin jos niillä pystyisi laskemaan doubleilla. Uuden ohjelmointikielen opettelu tuntuu vain aika vaikealta tässä iässä - varsinkin jonkin spesifisen kielen opiskelu.

Käytän C++ kieltä, ja ohessa Mandelbrotin joukon iterointiluuppi kompleksiluvuilla optimoituna. Paljon siihen ei enää vauhtia saa:

int iteroi(lreal a, lreal b)
{
    int loop=0;
    lreal rr=0.00;
    lreal x=0, y=0, r, i;

    while (rr < 4096)
    {
        r=x*x;
        i=y*y;
        rr=r+i;
        y=2*x*y+b;
        x=r-i+a;
        if (++loop==MaxIter) return 0;
    }
    return loop;
}

Neutroni
Seuraa 
Viestejä33260

Kyttääjä kirjoitti:
Syy on prosessorien valmistajissa. He rahastavat joka sukupolven viimeiseen hengenvetoon saakka, vaikka olisi mahdollisuuksia jo pieneen supertietokoneeseen.

Osaongelma on toki Intelin monopoli, ja toivottavasti AMD:n uudet prosessorit ovat menestyksekkäitä ja pakottavat ison ja mahtavankin taas laittamaan rahaa kehitykseen. Toinen juttu on se, että viime vuosikymmenen tuotekehitys on suunnattu mobiililaitteisiin. Niissä käskyt per joule on tärkeämpi asia kuin käskyt per sekunti. Mutta teknisetkin ongelmat ovat hyvin todellisia nykyisellä kehitystasolla. Ei se ole pelkkää salaliittoilua.

Lainaus:
Ongelmaksi muodostuu silloin prosessoreiden ja tietokoneiden valmistajille se seikka, että rahastus loppuu, jos jokaisen tarvitsee ostaa enää vain yksi kannettava.

Tuollainen ei ole missään määrin realistista. Laskentateholle on aina tarvetta viihdesovelluksissa. Googolin kerroin laskentatehossa olisi hyvin helppo hyödyntää ja moni vaikea ongelma jäisi silti ratkaisematta.

Lainaus:
En ole perehtynyt CUDAan tai OpenCL:ään. Ilmeisesti ovat tehokkaita, varsinkin jos niillä pystyisi laskemaan doubleilla. Uuden ohjelmointikielen opettelu tuntuu vain aika vaikealta tässä iässä - varsinkin jonkin spesifisen kielen opiskelu.

Muistaakseni ainakin OpenCL on hyvin C:n kaltaista.

Lainaus:
Käytän C++ kieltä, ja ohessa Mandelbrotin joukon iterointiluuppi kompleksiluvuilla optimoituna. Paljon siihen ei enää vauhtia saa:

Tuohan on se triviaali lähtökohta, josta vauhtia lähdetään hakemaan. AVX-käskyillä saa nelinkertaistettua (tai enemmänkin niillä uusilla AVX512-käskyillä), säikeitä hyödyntämällä niin moninkertaistettua kun koneessasi on säikeitä.

Muutama outous tuossa on. Mikä tuo lreal on? Oletko varma, että se on sama kuin double? Kannattaa tsekata, ettei siinä ole mitään koiraa haudattuna, jos se yrittää olla jotain doublea fiskumpaa.

Mikset käytä rajana rr<4.0? Jos piste on sitä kauempana se on joukon ulkopuolella. Suurempi arvo voi olla tarpeen, jos käytät sitä kikkaa jatkuvan väriarvon laskemiseen, mutta perusmallissa 4 riittää rajaksi. Sillä säästää muutaman iteraation (ei paljon kuitenkaan).

Deimos
Seuraa 
Viestejä10927

NytRiitti kirjoitti:
https://subscription.packtpub.com/book/application_development/978178899...

/parallelization-and-amdahl-s-law

Kuis se nyt olikaan, joku kehaisi tilanensa RTV 2080:n ,vääntöähän riittäisi vaikka Mandelbrootteihin :)

RTX 2080Ti. Pelikäyttöön. Traytracking kortti. Tosin toimii jo ominaisuus 1080Ti kortillakin. Uusin ajuri toi ominaisuuden mukana. Minähän se pelle olin.

BW kirjoitti: "The mad man from Tikkurila, who eats (drinks) more than he earns!
Einstein:Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.
Einstein:The most beautiful experience we can have is the mysterious.It is the fundamental emotion that stands at the cradle of true art and true science.
Reifengas: Saattaa säilyäkin pimeä markkina jonkin aikaa, mutta ...tuoni vie.Valtion on otettava omansa, huolehdittava omistaan, ja valtio olemme me.

Deimos
Seuraa 
Viestejä10927

NytRiitti kirjoitti:

Okei, siis hyvä kortti muuhunkin kuin pelaamiseen. Harmi vain että olen kädetön ohjelmoinnissa.

BW kirjoitti: "The mad man from Tikkurila, who eats (drinks) more than he earns!
Einstein:Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.
Einstein:The most beautiful experience we can have is the mysterious.It is the fundamental emotion that stands at the cradle of true art and true science.
Reifengas: Saattaa säilyäkin pimeä markkina jonkin aikaa, mutta ...tuoni vie.Valtion on otettava omansa, huolehdittava omistaan, ja valtio olemme me.

Vierailija

Deimos kirjoitti:
NytRiitti kirjoitti:
https://subscription.packtpub.com/book/application_development/978178899...

/parallelization-and-amdahl-s-law

Kuis se nyt olikaan, joku kehaisi tilanensa RTV 2080:n ,vääntöähän riittäisi vaikka Mandelbrootteihin :)

RTX 2080Ti. Pelikäyttöön. Traytracking kortti. Tosin toimii jo ominaisuus 1080Ti kortillakin. Uusin ajuri toi ominaisuuden mukana. Minähän se pelle olin.


Ai ostit RTX2080tin? Ja sulla oli 1080ti? Ja poltat 2 maxitoppaa päivässä? Ja olet työkyvyttömyyseläkkeellä? Ja sulla on 5k€ velkaa?
Ei sun prossus riitä edes edelliselle kortille.

Noh. Kohta pääset omaan yksiöön, niin nauti vielä kun voit.

Kyttääjä
Seuraa 
Viestejä1163

Neutroni kirjoitti:
Mikset käytä rajana rr<4.0? Jos piste on sitä kauempana se on joukon ulkopuolella. Suurempi arvo voi olla tarpeen, jos käytät sitä kikkaa jatkuvan väriarvon laskemiseen, mutta perusmallissa 4 riittää rajaksi. Sillä säästää muutaman iteraation (ei paljon kuitenkaan).

Joo, eipä tuolla ole paljon merkitystä nopeuteen, oli rajana sitten 4 tai 4096. lreal on C++ tarkin liukulukutyyppi ja se on määritelty:

typedef long double lreal;
#define lr(xx)  (lreal)(xx)

NotYet
Seuraa 
Viestejä4091

Vähän < off-topic> ja vähän asiaa sivuten. Yritän saada aikaiseksi Intel 4(+4 )-core + AMD 6-core+ 1gigakytkin+ 384 ja 512 core GPU:t,kamat on kun tulis kasattua. Hieman kateeks käy tuo RTX 2080 Ti tosi hardcore! ja tensorcoret päälle. Mandelbrothan sopii testisovelluksena mun coputefarmiin , jotain muutakin on tarkoitus kyllä laskeskella.

Neutroni
Seuraa 
Viestejä33260

Kyttääjä kirjoitti:
Joo, eipä tuolla ole paljon merkitystä nopeuteen, oli rajana sitten 4 tai 4096. lreal on C++ tarkin liukulukutyyppi ja se on määritelty:

typedef long double lreal;
#define lr(xx)  (lreal)(xx)

Tietääkseni useimmat kääntäjät määrittelevät long doublen samaksi kuin double. Mutta kannattaa varmistaa asia, koska jos se on oikeasti tarkempi, sen laskeminen on hirvittävän hidasta. Kokeile vaikka sizeof(lreal) (8, jos se on double) ja isompi, jos se on hidas).

Mandelbrot on hyvä harjoitusohjelma rinnakkaislaskentaan. Tee threadit, jotka lukevat taulukosta ensimmäisen laskemattoman rivin, laskevat sen ja merkkaavat lasketuksi.

Intelillä on myös valmis tutoriaali AVX-käskyihin, jossa esimerkkinä on Mandelbrotin laskenta. Se löytyi joskus triviaalilla googletuksella.

Ja sitten vielä maltti antialiasointiin, kokeile 2x2 ja 3x3 kymmenien sijasta, niin minuutit muuttuvat helposti sekunneiksi.

Kyttääjä
Seuraa 
Viestejä1163

Neutroni kirjoitti:
Kyttääjä kirjoitti:
Joo, eipä tuolla ole paljon merkitystä nopeuteen, oli rajana sitten 4 tai 4096. lreal on C++ tarkin liukulukutyyppi ja se on määritelty:

typedef long double lreal;
#define lr(xx)  (lreal)(xx)

Tietääkseni useimmat kääntäjät määrittelevät long doublen samaksi kuin double. Mutta kannattaa varmistaa asia, koska jos se on oikeasti tarkempi, sen laskeminen on hirvittävän hidasta. Kokeile vaikka sizeof(lreal) (8, jos se on double) ja isompi, jos se on hidas).

Mandelbrot on hyvä harjoitusohjelma rinnakkaislaskentaan. Tee threadit, jotka lukevat taulukosta ensimmäisen laskemattoman rivin, laskevat sen ja merkkaavat lasketuksi.

Intelillä on myös valmis tutoriaali AVX-käskyihin, jossa esimerkkinä on Mandelbrotin laskenta. Se löytyi joskus triviaalilla googletuksella.

Ja sitten vielä maltti antialiasointiin, kokeile 2x2 ja 3x3 kymmenien sijasta, niin minuutit muuttuvat helposti sekunneiksi.

sizeof(lreal) = 10 tavua, kun sizeof(double) = 8 tavua.

Borland C++ 5.02 values.h kirjoitti:

#define MAXDOUBLE   1.7976931348623158E+308
#define MAXFLOAT    3.40282347E+38F
#define MINDOUBLE   2.2250738585072014E-308
#define MINFLOAT    1.17549435E-38F
#define MAXLDOUBLE  1.1897314953572317649E+4932L
#define MINLDOUBLE  3.362103143112094E-4917L /* This isn't accurate, but it */
                                             /* will do for now. The real   */
                                             /* value should be:            */
                                             /* 3.362103143112094E-4932L    */

lreal hidastaa laskentaa marginaalisesti, jolloin doublen ja lrealin välillä ei ole mainittavaa eroa. Prosessori käsittelee liukulukukäskyt muutenkin 80 bittisinä. 64 bittinen double muunnetaan siis 80 bittiseksi, kun koodi törmää liukulukuyksikköä vaativan käskyn.

Jos nuo AVX-käskyt tuovat nelinkertaisen nopeuden, niin se ei ole paljon. Pitäisi saada 1 000 kertainen nopeus, mutta pitää perehtyä AVX-tutorialiin.

Sivut

Suosituimmat

Uusimmat

Sisältö jatkuu mainoksen alla

Uusimmat

Suosituimmat