Immagino di aver bisogno di alcuni consigli avanzati su SSD, SATA, limiti di entrata / uscita ecc.
Sto programmando un'installazione video in cui continuo a leggere e scrivere molti dati:
Sul primo SSD, drive A, scrivo 50 frame al secondo (= 50 file al secondo) più leggo contemporaneamente altri 50 fps (dalla stessa unità!). Da un secondo SSD, drive B, ho letto altri 50 frame al secondo.
La domanda è: dov'è il collo della bottiglia? Sono riuscito a eseguire il mio programma a 25 fps ma non più velocemente (e avrei bisogno di farlo a 50 fps).
La quantità totale di dati non è in realtà così eccessiva: ogni frame è 1,8 MB, quindi ogni stream è di circa 90 MB / s, che scende a un totale di 180 MB / s in lettura più altri 90 MB / s in scrittura = 270 MB / s trasferimento dati totale in 150 operazioni di lettura / scrittura al secondo.
Ciò che mi confonde di più è il seguente:
- Ottengo le stesse prestazioni quando eseguo la patch da due SSD separati di quando eseguo tutti e tre i flussi da uno solo senza usare il secondo SSD.
- La velocità non aumenta sostanzialmente se riduco uno o due di questi flussi (e riduco la dimensione del file a 260 KB / file che equivale a soli 13 MB / s per flusso).
- Tuttavia, aumenta (a 40-60 fps) se cambio tutti e tre i flussi a 260 KB / file.
Questo mi fa chiedere cosa stia succedendo ... sono le unità? È SATA? O altre cose di cui forse non ho mai sentito parlare? E cosa posso fare al riguardo?
Uso un Macbook Pro (Retina, inizio 2013, i7 2,6 GHz, 16 GB RAM, OS 10.9.2), l'unità A è un SSD Samsung 840 pro 256 GB collegato tramite fulmine, l'unità B è l'SSD Macbook interno da 512 GB (integrato da Apple).
Il mio programma è realizzato in MAX / MSP e utilizzo un formato di dati binari arbitrario e non compresso (.jxf). Posso escludere problemi di caricamento della CPU / GPU.