Mostra notizie nelle discussioni
Avatar
☺
Scritto da
il 2010-11-17 15:43:00.0 alle 2010-11-17 15:43:00.0
Trollate totali: 3444
Re: alex.tg perchè non sei andata all'un
> > Puo` darsi, ma gia` anche cosi`, da non
> laureati,
> > si rischia di impelagarsi in LAVORI. Avessi
> > proseguito, a 34 anni mi sa che avrei scoperto
> > che il posto dove sarei andato a finire, quale
> > che fosse, non era quel che volevo, e avrei
> avuto
> > remore a buttar tutto nel cesso. O forse hai
> > ragione. Boh. Comunque sono domande spinose che
> > mi confondono.
> > In lacrime
>
> Alex tu sei confuso pure sessualmente In lacrime

E` la mia nuova strategia terapeutica, lasciarsi andare alla confusione. Mi sta riuscendo benissimo. Triste

Vieni anche tu a scuola in Svezia!

Ad https://www.breitbart.com/europe/2019/01/11/swedish-journalist-teachers-have-given-up-rising-school-violence/
Qui accettiamo qualunque tipo di animale! Non facciamo discriminazioni noi! Mica siamo razzisti!!!‎
Avatar
☺
Scritto da
il 2010-11-17 00:50:00.0 alle 2010-11-17 00:50:00.0
Trollate totali: 3444
Re: alex.tg perchè non sei andata all'un
Puo` darsi, ma gia` anche cosi`, da non laureati, si rischia di impelagarsi in LAVORI. Avessi proseguito, a 34 anni mi sa che avrei scoperto che il posto dove sarei andato a finire, quale che fosse, non era quel che volevo, e avrei avuto remore a buttar tutto nel cesso. O forse hai ragione. Boh. Comunque sono domande spinose che mi confondono. In lacrime
Avatar
☺
Scritto da
il 2010-11-17 00:10:00.0 alle 2010-11-17 00:10:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
E` peggio, infatti.

"libraries"

    hmi/conout;
    math/random;
    utils/msecs24;

"directors"

    unit = 32;
    display status = engage;

"constants"

    k = 10 000 000;    (di elementi)
    rep = 50;    (ripetizioni)

"variables"

    t filling source range = { filling_source_range...\lf } : 8;
    t filling lookup table = { filling_lookup_table...\lf } : 8;
    t testing integer maths = { testing_integer_maths...\lf } : 8;
    t testing lookups = { testing_lookups...\lf } : 8;
    t elapsed maths time = { elapsed_maths_time:_ } : 8;
    t elapsed lookups time = { elapsed_lookups_time:_ } : 8;
    t lf = { \lf } : 8;

"workspace"

    r source * k;
    r target * k;
    r lookup * 65536;    (65536 risultati in tabella)

    n to go;
    n start time;
    n stop time;

"programme"

    mt . sgenrand: 12345;

    conout . t say: t filling source range;

        a # a;
        b = k;
        
        "filling source range"

            [r source [a]] <- mt . i rnd;
            [r source [a]] & ffffh;

            + a;

        ? b ^ filling source range;

    conout . t say: t filling lookup table;

        a # a;
        b = 65536;

        "filling lookup table"

            as,

                c = a;
                c / 25;

            [r lookup [a]] = c;

            + a;

        ? b ^ filling lookup table;

    conout . t say: t testing integer maths;

    [n to go] = rep;
    [n start time] <- msecs 24;

    "repeating integer maths"

        a # a;
        b = k;

        "testing integer maths"

            as,

                c = [r source [a]];
                c / 25;

            [r target [a]] = c;

            + a;

        ? b ^ testing integer maths;

    ? [n to go] ^ repeating integer maths;

    [n stop time] <- msecs 24;
    [n stop time] - [n start time];

    conout . t say: t elapsed maths time;
    conout . n say: [n stop time];
    conout . t say: t lf;

    conout . t say: t testing lookups;

    [n to go] = rep;
    [n start time] <- msecs 24;

    "repeating lookups"

        a # a;

        "testing lookups"

            as,

                c = [r source [a]];

            [r target [a]] = [r lookup [c]];

            + a;

        ? a ! k > testing lookups;

    ? [n to go] ^ repeating lookups;

    [n stop time] <- msecs 24;
    [n stop time] - [n start time];

    conout . t say: t elapsed lookups time;
    conout . n say: [n stop time];
    conout . t say: t lf;

    as,

        [thread command] = suspend thread;
        [thread suspend timeout] = 10 000 (milliseconds);

    isocall;

    end;


Piu` semplice ma piu` lento: 0,0000000032 per divisione.
Avatar
☺
Scritto da
il 2010-11-16 23:54:00.0 alle 2010-11-16 23:54:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
Ok fatto.
Nuovo listato:

"libraries"

    hmi/conout;
    math/random;
    utils/msecs24;

"directors"

    unit = 32;
    display status = engage;

"constants"

    k = 10 000 000;    (di elementi)
    rep = 1000;    (ripetizioni)

"variables"

    t filling source range = { filling_source_range...\lf } : 8;
    t filling lookup table = { filling_lookup_table...\lf } : 8;
    t testing integer maths = { testing_integer_maths...\lf } : 8;
    t testing lookups = { testing_lookups...\lf } : 8;
    t elapsed maths time = { elapsed_maths_time:_ } : 8;
    t elapsed lookups time = { elapsed_lookups_time:_ } : 8;
    t lf = { \lf } : 8;

"workspace"

    r source * k;
    r target * k;
    r lookup * [65536 multiplied 16] as bit size;    (65536 valori di 16 bit)

    n to go;
    n start time;
    n stop time;

"programme"

    mt . sgenrand: 12345;

    conout . t say: t filling source range;

        a # a;
        b = k;
        
        "filling source range"

            [r source [a]] <- mt . i rnd;
            [r source [a]] & ffffh;

            + a;

        ? b ^ filling source range;

    conout . t say: t filling lookup table;

        a # a;
        b # b;
        c = 65536 div 2;

        "filling lookup table"

            as,

                d = a;
                d / 25;

            [r lookup [b]] = d;

            + a;

            as,

                d = a;
                d / 25;
            @    d < 16;
            
            [r lookup [b]] | d;

            + a;
            + b;

        ? c ^ filling lookup table;

    conout . t say: t testing integer maths;

    [n to go] = rep;
    [n start time] <- msecs 24;

    "repeating integer maths"

        a # a;
        b = k;

        "testing integer maths"

            as,

                c = [r source [a]];
                c / 25;

            [r target [a]] = c;

            + a;

        ? b ^ testing integer maths;

    ? [n to go] ^ repeating integer maths;

    [n stop time] <- msecs 24;
    [n stop time] - [n start time];

    conout . t say: t elapsed maths time;
    conout . n say: [n stop time];
    conout . t say: t lf;

    conout . t say: t testing lookups;

    [n to go] = rep;
    [n start time] <- msecs 24;

    "repeating lookups"

        a # a;
        b = k;

        "testing lookups"

            as,

                c = [r source [a]];
                d = c;

            '    d > 1;
                c & 1;

            @    c < 4;
                e = [r lookup [d]];
                
            @    e > c;
                + a;

                e & ffffh;
                - b;

            [r target [a minus 1]] = e;

        ? b ! zero > testing lookups;

    ? [n to go] ^ repeating lookups;

    [n stop time] <- msecs 24;
    [n stop time] - [n start time];

    conout . t say: t elapsed lookups time;
    conout . n say: [n stop time];
    conout . t say: t lf;

    as,

        [thread command] = suspend thread;
        [thread suspend timeout] = 10 000 (milliseconds);

    isocall;

    end;


Risultati:

filling source range...
filling lookup table...
testing integer maths...
elapsed maths time: 38475
testing lookups...
elapsed lookups time: 27043


Danno ragione al gcc con:

0,0000000027043 contro
0,0000000022

Voglio vedere che succede a cestinare la considerazione sui 16 bit per valore e allinearli a un'unita` di memoria di 32 bit.
Avatar
☺
Scritto da
il 2010-11-16 23:47:00.0 alle 2010-11-16 23:47:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
> 0,000000056s per divisione (listato C su ARM);
> 0,00000000235s per divisione (listato Linoleum su
> questo Core2
> Duo).
>
> C'e` uno zero di piu` dopo la virgola e un ordine
> di grandezza in meno in favore di Linoleum. O i
> tempi vengono misurati male o il compilatore si
> fa le seghe
> mentali.

Pero` l'altra versione, che usava time_t in secondi, fatta girare per 10 miliardi di divisioni (REP 1000), dava 22 secondi, il che significherebbe 0,0000000022 secondi per divisione, che e` perfino un pochino meno del listato Linoleum (0,0000000235). Ora provo a misurare meglio il listato Lino comunque, implementando anch'io un bel REP che equalizzi le condizioni.

NO NOn lo so

Ad sallo.it
LO SAI? Allora NON fa per te. NON LO SAI? Allora non ti serve ‎
Avatar
☺
Scritto da
il 2010-11-16 23:36:00.0 alle 2010-11-16 23:36:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
> > > E` in microsecondi?
> > > Sarebbe 1,063 secondi e 1,073? Newbie, inesperto

Comunque, 1,063 diviso 50milioni fa:

0,00000002126 secondi per divisione.

Di contro a:

0,000000056s per divisione (listato C su ARM);
0,00000000235s per divisione (listato Linoleum su questo Core2 Duo).

C'e` uno zero di piu` dopo la virgola e un ordine di grandezza in meno in favore di Linoleum. O i tempi vengono misurati male o il compilatore si fa le seghe mentali.
Avatar
☺
Scritto da
il 2010-11-16 23:32:00.0 alle 2010-11-16 23:32:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
> > E` in microsecondi?
> > Sarebbe 1,063 secondi e 1,073? Newbie, inesperto
>
> Si`, stai ottenendo risultati diversi rispetto ai
> miei e a quelli di
> frenchi.

Dev'essere Windoze che incasina tutto nei bassifondi, e bara anche sui tempi. Qualunque cosa succeda, e` sempre colpa sua. Regola fondamentale. Ficoso
Avatar
☺
Scritto da
il 2010-11-16 23:31:00.0 alle 2010-11-16 23:31:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
> Il mio MacBook late 2008 con Core 2 Duo REP=200
> ci mette 9 secondi per le divisioni, 13 per i
> lookup.

Boh, questo e` un iMac dell'inizio del 2009... o era il 2008? Boh, comunque sembra TROPPO piu` veloce. Ora cerco d'interpretare i tempi della versione che invoca gettimeofday.
Avatar
☺
Scritto da
il 2010-11-16 23:29:00.0 alle 2010-11-16 23:29:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
E` in microsecondi?
Sarebbe 1,063 secondi e 1,073? Newbie, inesperto

NON DIRMELO SE LO SAI MA SE NON LO SAI SAPPILO

Ad http://sallo.it
LO SAI? Allora NON fa per te. NON LO SAI? Allora non ti serve.‎
Avatar
☺
Scritto da
il 2010-11-16 23:28:00.0 alle 2010-11-16 23:28:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
Questa restituisce:

Alex@IMAC-ALEX /C/MinGW/stuff
$ prova2
Divisioni: 1063000
Lookups: 1073000
Avatar
☺
Scritto da
il 2010-11-16 23:25:00.0 alle 2010-11-16 23:25:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
Alex@IMAC-ALEX /C/MinGW/stuff
$ prova
Inizio divisioni: 1289946180
Divisioni: 22
Inizio lookups: 1289946202
Lookups: 22


Ho portato REP a 1000 e ci mette 22 secondi.

Ma chissa` se sta facendo le cose per bene... i tempi col REP 50 sono brevissimi. O il mio processore e` un mostro o quello che usavi era uno scassone. Ma avevi specificato che era un Core2 Duo.

Boh.
O i tempi non erano in secondi?
Avatar
☺
Scritto da
il 2010-11-16 23:20:00.0 alle 2010-11-16 23:20:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
Alex@IMAC-ALEX /C/MinGW/stuff
$ prova.exe
Inizio divisioni: 1289946023
Divisioni: 1
Inizio lookups: 1289946024
Lookups: 2

Alex@IMAC-ALEX /C/MinGW/stuff
$


1 e 2?
Mah, sara` meglio aumentare i repeats.
Avatar
☺
Scritto da
il 2010-11-16 23:19:00.0 alle 2010-11-16 23:19:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
ah ecco, rand era in stdlib.
O almeno se l'aspettava li`.
Ho incluso stdlib.h e ha compilato.

Titolo di prova

Ad gtregtg
sfvgfgg‎
Avatar
☺
Scritto da
il 2010-11-16 23:17:00.0 alle 2010-11-16 23:17:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
> > > Nella root c'e` una bin ma non mi pare
> contenga
> > > tracce di compilatori. Suppongo si riferisca
> al
> > > sistema emulato. E il compilatore dove
> > > sara`?
> >
> > forse in /usr/bin/gcc
>
> gcc l'ho trovato in /C/MinGW/bin
>
> > per compilare: gcc -O3 -o file file.c
> >
> > dove -O3 specifica il livello di ottimizzazione
>
> ora provo...

Alex@IMAC-ALEX /C/MinGW/bin
$ gcc -O3 -o ../stuff/prova ../stuff/prova.cpp
../stuff/prova.cpp: In function 'int main()':
../stuff/prova.cpp:16:53: error: 'rand' was not declared in this scope


Palle.
Forse non e` gcc quello che serve.
Provero` con gli altri...
Avatar
☺
Scritto da
il 2010-11-16 23:13:00.0 alle 2010-11-16 23:13:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
> > Nella root c'e` una bin ma non mi pare contenga
> > tracce di compilatori. Suppongo si riferisca al
> > sistema emulato. E il compilatore dove
> > sara`?
>
> forse in /usr/bin/gcc

gcc l'ho trovato in /C/MinGW/bin

> per compilare: gcc -O3 -o file file.c
>
> dove -O3 specifica il livello di ottimizzazione

ora provo...
Avatar
☺
Scritto da
il 2010-11-16 23:12:00.0 alle 2010-11-16 23:12:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
Allora, c'e` una bin contenente varia roba tra cui gcc.exe, che se eseguito mi dice "no input files". Gia`, provero` a passargli un input file.
Avatar
☺
Scritto da
il 2010-11-16 23:10:00.0 alle 2010-11-16 23:10:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
Hah, ho trovato C.
/C, come nel paradigma di Linoleum.
Copioni.
Qui c'e` MinGW. Ora guardo un po'.

dgfhbfgh

Ad thh
thht‎
Avatar
☺
Scritto da
il 2010-11-16 23:08:00.0 alle 2010-11-16 23:08:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
um... allora, ~ era la directory home.
/ la root.

Nella root c'e` una bin ma non mi pare contenga tracce di compilatori. Suppongo si riferisca al sistema emulato. E il compilatore dove sara`?
Avatar
☺
Scritto da
il 2010-11-16 23:06:00.0 alle 2010-11-16 23:06:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
A chiedergli "ls" si direbbe nella cartella utenti/Alex.
Mah, e come si compila?
Avatar
☺
Scritto da
il 2010-11-16 23:04:00.0 alle 2010-11-16 23:04:00.0
Trollate totali: 3444
Re: alex,tg ha ragione e sassofono no
> Ok sto installando MinchiaW.

Oh ecco.
Mi dice:

Alex@IMAC-ALEX ~
$


E ora? Newbie, inesperto

Pagina generata in 210 millisecondi

Utenti attivi: 11 nell'ultimo minuto, 25 negli ultimi cinque minuti, 47 negli ultimi 15 minuti