> > 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.
> >
>
> Alex tu sei confuso pure sessualmente
E` la mia nuova strategia terapeutica, lasciarsi andare alla confusione. Mi sta riuscendo benissimo.
> 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.
> >

>
> Alex tu sei confuso pure sessualmente

E` la mia nuova strategia terapeutica, lasciarsi andare alla confusione. Mi sta riuscendo benissimo.
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!!!
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.
E` peggio, infatti.
Piu` semplice ma piu` lento: 0,0000000032 per divisione.
"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.
Ok fatto.
Nuovo listato:
Risultati:
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.
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.
> 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.
> 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.
> > > E` in microsecondi?
> > > Sarebbe 1,063 secondi e 1,073?
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.
> > > Sarebbe 1,063 secondi e 1,073?

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.
> > E` in microsecondi?
> > Sarebbe 1,063 secondi e 1,073?
>
> 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.
> > Sarebbe 1,063 secondi e 1,073?

>
> 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.
> 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.
> 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.
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.
Questa restituisce:
Alex@IMAC-ALEX /C/MinGW/stuff $ prova2 Divisioni: 1063000 Lookups: 1073000
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?
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.
ah ecco, rand era in stdlib.
O almeno se l'aspettava li`.
Ho incluso stdlib.h e ha compilato.
O almeno se l'aspettava li`.
Ho incluso stdlib.h e ha compilato.
> > > 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...
Palle.
Forse non e` gcc quello che serve.
Provero` con gli altri...
> 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...
> > 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...
> > 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...
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.
Hah, ho trovato C.
/C, come nel paradigma di Linoleum.
Copioni.
Qui c'e` MinGW. Ora guardo un po'.
/C, come nel paradigma di Linoleum.
Copioni.
Qui c'e` MinGW. Ora guardo un po'.
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`?
/ 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`?
A chiedergli "ls" si direbbe nella cartella utenti/Alex.
Mah, e come si compila?
Mah, e come si compila?
> Ok sto installando MinchiaW.
Oh ecco.
Mi dice:
E ora?
Oh ecco.
Mi dice:
Alex@IMAC-ALEX ~ $
E ora?