[MATLAB] alternativa a maxNumCompThreads()

Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

Avatar utente
Foto UtenteDanteCpp
4.730 3 9 13
Master EY
Master EY
Messaggi: 1106
Iscritto il: 15 dic 2011, 17:51
0
voti

[11] Re: [MATLAB] alternativa a maxNumCompThreads()

Messaggioda Foto UtenteDanteCpp » 27 gen 2016, 14:39

Si si, il mio algoritmo è in c :mrgreen:

Pero non regge il confronto.

Comunque sia malgrado loro ci lavorino da tempo, penso che le performance di algoritmi del genere sono strettamente dipendenti dall'architettura. Quindi con il cambio generazionale anche loro hanno dovuto "reiniziare".

Oltretutto ci sono tre livelli: BLAS-LAPACK-APP

Credo proprio che matlab utilizzi le blas della intel, e chi meglio di loro conosce le architetture. :mrgreen: :mrgreen: :mrgreen:

Avatar utente
Foto Utentedimaios
30,2k 7 10 12
G.Master EY
G.Master EY
Messaggi: 3381
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes
0
voti

[12] Re: [MATLAB] alternativa a maxNumCompThreads()

Messaggioda Foto Utentedimaios » 27 gen 2016, 14:46

Se vuoi ottenere performance degne di nota devi impiegare librerie in C++ mirate per il calcolo.
La Armadillo è una di queste.
Il segreto primario consiste nell'utilizzo dei template metaprogramming quindi è anche una questione di stile di programmazione e capacità nel software engineering.
Ingegneria : alternativa intelligente alla droga.

Avatar utente
Foto UtenteDanteCpp
4.730 3 9 13
Master EY
Master EY
Messaggi: 1106
Iscritto il: 15 dic 2011, 17:51
0
voti

[13] Re: [MATLAB] alternativa a maxNumCompThreads()

Messaggioda Foto UtenteDanteCpp » 27 gen 2016, 15:05

Armadillo About ha scritto:Various matrix decompositions are provided through integration with LAPACK, or one of its high performance drop-in replacements (eg. multi-threaded Intel MKL, or AMD ACML, or OpenBLAS)


Cosi non sarebbe più divertente, se avessi la necessità di fattorizzare matrici; userei matlab, mathematica o armadillo. Ma essendo un gioco... ;-)

Io penso, che molto si possa ottenere ottimizzando dal punto di vista dell'architettura di memoria. Per esempio sul mio sandy bridge a tre livelli di cache.

Per fattorizzare una matrice di ordine 10k, se implemento la matrice in un unico vettore di memoria è necessario circa un decimo del tempo di un'implementazione come vettore di vettori.

Il classico

Codice: Seleziona tutto

float *


contro

Codice: Seleziona tutto

float **

per intenderci.

Questo perche i dati sono molto più localizzati nel primo caso, quindi diminuiscono i cache miss.

Avatar utente
Foto Utentedimaios
30,2k 7 10 12
G.Master EY
G.Master EY
Messaggi: 3381
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes
0
voti

[14] Re: [MATLAB] alternativa a maxNumCompThreads()

Messaggioda Foto Utentedimaios » 27 gen 2016, 15:38

Se vuoi giocare puoi fare qualsiasi cosa ma ti assicuro che il "C" puro non è più il linguaggio principe per questo tipo di applicazioni ormai da molto tempo.
Se guardi il codice sorgente di alcune librerie matematiche moderne prendi paura, le ottimizzazioni sono incredibili e fanno spesso riferimento ad articoli specialistici recenti.

Comunque puoi fare qualche esperimento e confrontarlo con le librerie in rete.
Facci sapere dove riesci ad arrivare. ;-)
Buon divertimento. :ok:
Ingegneria : alternativa intelligente alla droga.

Avatar utente
Foto UtenteDanteCpp
4.730 3 9 13
Master EY
Master EY
Messaggi: 1106
Iscritto il: 15 dic 2011, 17:51
0
voti

[15] Re: [MATLAB] alternativa a maxNumCompThreads()

Messaggioda Foto UtenteDanteCpp » 27 gen 2016, 15:40

dimaios ha scritto:Facci sapere dove riesci ad arrivare. ;-)
Buon divertimento. :ok:


Senz'altro, grazie! :mrgreen:


Torna a “Programmi applicativi: simulatori, CAD ed altro”