[Beowulf] Checkpointing using flash
Lux, Jim (337C)
james.p.lux at jpl.nasa.gov
Fri Sep 21 09:58:10 PDT 2012
On 9/21/12 9:44 AM, "Ellis H. Wilson III" <ellis at cse.psu.edu> wrote:
>On 09/21/12 12:29, Lux, Jim (337C) wrote:
>> Flash is slow, though... SLC NAND flash (pretty fast, 8 Gbit part) is
>> microseconds to write a 4kbyte (approx) page. Erasing is about 700
>> microseconds (reading is 25 microseconds)
>> MLC flash (say 512Gbit parts with 8 kBbyte pages) takes 1.3milliseconds
>> write a page, 3.8 ms to erase (75us to read)... And has a life of 3000
>> write/erase cycles.
>Modern MLC has at least a 10k cycle guarantee per-page, and research I'm
>doing at PSU has shown to me at least that this is a very low bar.
>Often it's way higher than that.
Yes.. I've tested 100k cycle SLC and it lasted way more than a million.
However, it's very temperature sensitive.. Get it warm and it forgets and
wears out faster.
>> That's 53 Mpbs streaming to the part. Yeah, any practical design is
>> to have multiple interleaved devices, etc. so you can probably do it
>> But still, say you are checkpointing 8Gbyte.. That's 1300 seconds (yep,
>> about 20 minutes), assuming you've previously erased everything.
>As you mention there are multiple interleaved devices. Specifically,
>modern flash devices (SSDs, which is what they plan to do this
>checkpointing with) have many layers of parallelism within them --
>channels, packages and dies to be exact. Something like 4-8 channels,
>each having multiple packages on each channel (8-16 I think in modern
>devices) and each package having multiple dies inside (2-4 is common).
>And inside of each die you finally are looking at an individual flash
>So you can't calculate their speeds like HDDs -- it doesn't work like
>Basic COTS SSDs can provide upwards of 200MB/s sustained writes until
>erases have to be done or you've filled greater than ~80% of the drive.
> So it's more like 40-60 seconds for 8GB, certainly not 1300 seconds.
>Use PCI-E flash devices and you're looking at much closer to 500MB/s to
>1GB/s, depending on what you are willing to spend.
>I mean, think about it -- modern HDDs can easily hit 100MB/s streaming
>sequential writes. At 1300s to do 8GB you're suggesting flash is much
>slower (around 6MB/s) than that, which is definitely not the case.
>Maybe for USB thumb drives or some ridiculous single-deviced medium, but
>not real SSDs (especially PCI-E flash devices).
Yes.. You raise good points. I suppose in this sort of application, one
can afford to use the "optimized for streaming write" sort of devices.
>> Fast compared to disk, maybe, but very slow. Why not just mirror memory
>> (other than cost and power: RAM is much less dense than flash)
>The cost and power concerns you mention with RAM mirroring are
>absolutely huge. Flash is a steal compared to RAM on both counts.
Is it.. I haven't looked at the power consumption of DRAM recently, but I
suppose compared to RAM the flash doesn't draw any power between
checkpoints, and the duty cycle is low, so even if the flash part *is*
drawing a lot of power it's ok (the 512Gb parts I was looking at are on
the order of 50mA at 3.3V during a program/write operation)
>> There's also the write cycle limit.. If you're looking for very high
>> densities (USB thumb drive) you're looking at
>> A) serial interfaces
>> B) MLC NAND with maybe 10k cycle life on each page
>Let's say you do one checkpoint that saturates your flash every 4 hours
>and let the flash trickle that out to the underlying HDDs over the next
>4 hours before your next checkpoint. Even with MLC (10k guarantee)
>that's around 5 years before you hit the guarantee, and I bet you'll be
>able to go a while after that. Given that major supers don't last 5
>years, this is a non-issue.
Yes.. If that's the frequency of checkpoints. I was thinking more like 1
checkpoint per second or 10 seconds.
More information about the Beowulf