Ehilà Franco,<br><br><div class="gmail_quote">Il giorno 02 settembre 2009 14.50, Franco Bagnoli <span dir="ltr"><<a href="mailto:franco.bagnoli@gmail.com">franco.bagnoli@gmail.com</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
se vuoi usare una notazione tipo vet[i][j][k] basta allocare a mano i<br>
vettori di vettori<br>
<br>
int *** v;<br>
...<br>
v=malloc(Ni*sizeof(int**));<br>
for (i=0; i<Ni; i++) {<br>
v[i] = malloc(Nj*sizeof(int**));<br>
for (j=0; j<Nj; i++) { {<br>
v[i]j[j] = malloc(Nk*sizeof(int**));<br>
}<br>
}<br>
<br></blockquote><div>purtroppo questa soluzione chiama la malloc ~righe volte e i tempi di allocazione diventano veramente lunghi per grandi matrici (cosa che accade sempre, dovendola usare ogniqualvolta la dimensione supera il massimo di allocazione statica).<br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Comunque la stragegia migliore dipende da come devi memorizzare questi<br>
dati: sono sparsi (molti zeri) ocompatti? sono sequenziali? perché<br>
puoi usare hash table, alberi, o memorizzare su disco (cosa che<br>
comunque fai senza controllo se superi la memoria fisica..)<br></blockquote><div> </div></div>sono serie temporali di concentrazioni di reagenti in soluzione. Voglio ricavare uno spettro di potenza per vedere se c'è ordine temporale nel sistema, per farlo devo fare una media tra tante simulazioni. L'idea quindi sarebbe:<br>
<br>molecoline[TEMPO][NUM_SIMULAZ]<br><br>ma purtroppo la dimensione non va oltre 62 mega circa (è la quantità totale che il processo mi occupa in memoria), nonostante ci sia RAM a sufficienza (lo swap non viene toccato). Se lo alloco dinamicamente ho + spazio ma sempre un limite superiore molto inferiore alle possibilità della macchina. Volendo caco ogni singola simulazione su un file e la ripesco quando devo mediare, ma mi dà fastidio farlo xchè non vedo xchè non debba tenere tutto in ram che è + veloce.<br>
<br>Te come fai?<br><br>Ll.<br>