[HN Gopher] Performance of Persistent Memory: 300 nanoseconds
       ___________________________________________________________________
        
       Performance of Persistent Memory: 300 nanoseconds
        
       Author : pbalcer
       Score  : 77 points
       Date   : 2020-05-13 12:23 UTC (1 days ago)
        
 (HTM) web link (pmem.io)
 (TXT) w3m dump (pmem.io)
        
       | kragen wrote:
       | I don't know about this persistent memory thing, but I sure want
       | one of the tape drives this guy uses that can seek to anywhere on
       | the tape in [?]100ms. (It says ~100ms, but I feel sure that
       | that's a typo -- ~100 is -101, after all, and it's even more
       | improbable that his tape drive is a time-travel device.)
        
         | pbalcer wrote:
         | OP here, yes - you are right, mea culpa. I'll try to correct
         | that particular picture.
         | 
         | Thanks for pointing it out.
        
           | kragen wrote:
           | While you're at it, maybe you could fix the Y-axis scale on
           | that graphic. It's more like something from Soviet-era Pravda
           | than something from a company I'd want to design my CPU.
           | Logarithmic scales are all very well, that 10-100 ms is
           | absolutely not the same distance from <1 ms* as ~80-100 ns
           | is. (And for some reason the latency numbers are labeling
           | horizontal separator lines, while the memory types are in
           | between those lines, falsely suggesting that, for example,
           | "DDR DRAM" occupies the range between 1-10ns and
           | "~80-100ns".) Also, "m" is the SI symbol for "micro", not
           | "u". And what is "Bock Granularity"?
           | 
           | The whole graphic is just a train-wreck of carelessness and
           | unconcern for accuracy. It reframes the entire post as an
           | exercise in marketing (to people without critical thinking
           | skills) rather than a source of reliable technical
           | information.
        
         | craftinator wrote:
         | Oh, the pedantry is strong on HN today!
        
           | kragen wrote:
           | What is your comment intended to add to this discussion?
           | 
           | It's not pedantry to point out that tape drives do not have
           | hundred-millisecond access latency. That's low by two or
           | three orders of magnitude; hardly a pedantic distinction --
           | it's as large as the difference between SSDs and spinning
           | rust. By contrast, it would be pedantic to complain, for
           | example, that many spinning-rust disks now have access
           | latencies closer to 8ms than to 10ms.
        
         | Arnavion wrote:
         | >It says ~100ms, but I feel sure that that's a typo -- ~100 is
         | -101
         | 
         | Using tilde to mean "approximately" is way more common than
         | using it to mean "bitwise-negation in two's complement", not in
         | the least because the latter meaning is specific to programming
         | and even more specific to certain programming languages.
        
           | cogman10 wrote:
           | Not even programming language but in fact hardware
           | architectures. While everything now-a-days does twos
           | compliment there were a few early architectures that did ones
           | compliment and a few that did just signed bits (Heck, IEEE
           | 754 floats use signed bits, not two's complement. But that's
           | mostly because there are no advantages AFAIK to a two's
           | complement float)
        
             | kragen wrote:
             | I would be surprised to learn that there were
             | implementations of C on sign-magnitude or one's-complement
             | architectures that implemented "~" as anything other than
             | bit inversion interpreted in two's-complement, and yet were
             | sufficiently compatible that they could run large C
             | programs developed on more traditional architectures. Are
             | you familiar with any?
             | 
             | C does not permit the application of "~" to floating-point
             | numbers. JS does, but it converts them to integers first,
             | and interprets it as bit inversion in two's-complement.
        
               | AnimalMuppet wrote:
               | If I understand correctly, ~ means raw "invert the bits".
               | Two's complement doesn't enter into the picture - it
               | relates to how the bits are interpreted, which is a layer
               | above what ~ does. One's complement, two's complement,
               | unsigned... we don't care, _just invert the bits_.
        
         | sudosysgen wrote:
         | This is a good point. Tape drives can have latencies in the
         | seconds, if you're doing anything but sequential operations.
        
       | Rafuino wrote:
       | Part 2 is here: https://pmem.io/2020/03/26/performance-2.html
        
       | danharaj wrote:
       | I think it would be fun to futz around with persistent memory but
       | AFAIK it would mean working specifically with Intel tech. Will
       | there be a point in time when I will be able to program against
       | something that's not Optane as well with the same interface?
        
         | wmf wrote:
         | Probably not. 3D XPoint can't be used in non-Intel DIMMs due to
         | licensing. Samsung and Micron gave up on PCM. MRAM isn't dense
         | enough. IBM has done a lot of research on non-DRAM DIMMs but
         | none of it can come to market without suitable media.
        
           | loeg wrote:
           | There are NVDIMMs that are just DRAM with a battery/supercap
           | and some NAND to store on powerloss that implement the same
           | spec.
        
         | pbalcer wrote:
         | Disclaimer: I work at Intel on Persistent Memory
         | 
         | If you are asking just about the OS interfaces - you can
         | already emulate persistent memory with DRAM [1], which allows
         | you to play around with the programming model. There are also
         | NVDIMM-N devices available on the market today that expose the
         | same interface. IBM also has a product called Virtual
         | Persistent Memory [2].
         | 
         | I expect that once CXL [3] becomes adopted, there will be more
         | diversity in terms of Persistent Memory hardware vendors.
         | 
         | [1] - https://docs.pmem.io/persistent-memory/getting-started-
         | guide...
         | 
         | [2] - https://www.ibm.com/downloads/cas/09ERZEVQ
         | 
         | [3] - https://pirl.nvsl.io/PIRL2019-content/PIRL-2019-Stephen-
         | Bate...
        
           | danharaj wrote:
           | Thank you! My question was deliberately vague but you hit all
           | the points I cared about and gave me keywords to read further
           | about.
        
           | trentnelson wrote:
           | Can you share anything public about when the consumer-level
           | gear is going to hit the market?
        
       ___________________________________________________________________
       (page generated 2020-05-14 23:01 UTC)