Masters of storage, please step forward...
I guess I need some technically advanced advice on SSD, SATA, in/out limits etc.
I'm programming a video installation where I continously read and write quite a lot of data:
To the first SSD, drive A, I write 50 frames per second (= 50 files per second) plus simultaneously read some other 50 fps (from the same drive!).
From a second SSD, drive B, I read an additional 50 frames per second.
The question is: Where is the bottle neck? I succeed running my program at 25 fps but not faster (and i would need to get it to 50 fps).
The total amount of data is actually not that excessive: Each frame is 1,8 MB so each stream is about 90 MB/s which comes down to a total of 180 MB/s read plus another 90 MB/s write = 270 MB/s total data transfer in 150 read/write operations per second.
What confuses me most is the following:
- I get the same performance when I run the patch from two separate SSDs as when I run all three streams from a single one without using the second SSD at all.
- The speed does not increase substantially if I make one or two of these streams smaller (and reduce the file size to 260 KB/file which equals only 13 MB/s per stream).
- It does increase however (to 40-60 fps) if I switch all three streams to 260 KB/file.
This makes me wonder what is going on... is it the drives? Is it SATA? Or some other stuff I maybe even never heard of? And what can I do about it?
I use a Macbook Pro (Retina, early 2013, i7 2,6 GHz, 16 GB RAM, OS 10.9.2), drive A is a Samsung 840 pro 256 GB SSD connected via thunderbolt, drive B is the internal 512 GB Macbook SSD (built-in from Apple).
My program is built in MAX/MSP and I use a an arbitrary, uncompressed binary data format (.jxf). I can rule out CPU-/GPU-load issues.
Thanks for any help, it is appreciated a lot!
Karl
I guess I need some technically advanced advice on SSD, SATA, in/out limits etc.
I'm programming a video installation where I continously read and write quite a lot of data:
To the first SSD, drive A, I write 50 frames per second (= 50 files per second) plus simultaneously read some other 50 fps (from the same drive!).
From a second SSD, drive B, I read an additional 50 frames per second.
The question is: Where is the bottle neck? I succeed running my program at 25 fps but not faster (and i would need to get it to 50 fps).
The total amount of data is actually not that excessive: Each frame is 1,8 MB so each stream is about 90 MB/s which comes down to a total of 180 MB/s read plus another 90 MB/s write = 270 MB/s total data transfer in 150 read/write operations per second.
What confuses me most is the following:
- I get the same performance when I run the patch from two separate SSDs as when I run all three streams from a single one without using the second SSD at all.
- The speed does not increase substantially if I make one or two of these streams smaller (and reduce the file size to 260 KB/file which equals only 13 MB/s per stream).
- It does increase however (to 40-60 fps) if I switch all three streams to 260 KB/file.
This makes me wonder what is going on... is it the drives? Is it SATA? Or some other stuff I maybe even never heard of? And what can I do about it?
I use a Macbook Pro (Retina, early 2013, i7 2,6 GHz, 16 GB RAM, OS 10.9.2), drive A is a Samsung 840 pro 256 GB SSD connected via thunderbolt, drive B is the internal 512 GB Macbook SSD (built-in from Apple).
My program is built in MAX/MSP and I use a an arbitrary, uncompressed binary data format (.jxf). I can rule out CPU-/GPU-load issues.
Thanks for any help, it is appreciated a lot!
Karl