<node id="626141">
  <nid>626141</nid>
  <type>event</type>
  <uid>
    <user id="27707"><![CDATA[27707]]></user>
  </uid>
  <created>1568388842</created>
  <changed>1568388842</changed>
  <title><![CDATA[Phd Proposal by Pradeep Fernando]]></title>
  <body><![CDATA[<p><strong>Title:</strong>&nbsp;Adding Persistence to Main Memory Programming</p>

<p>&nbsp;</p>

<p>Pradeep Fernando</p>

<p>School of Computer Science</p>

<p>College of Computing</p>

<p>Georgia Institute of Technology</p>

<p><a href="https://www.cc.gatech.edu/grads/p/pfernand">https://www.cc.gatech.edu/grads/p/pfernand</a></p>

<p>&nbsp;</p>

<p><strong>Date:</strong> Thursday, October 3rd, 2019</p>

<p><strong>Time:</strong> 10:00 AM - Noon (EDT)</p>

<p><strong>Location:</strong> KACB 3100</p>

<p>&nbsp;</p>

<p><strong>Committee:</strong></p>

<p>Dr. Ada Gavrilovska (Advisor, School of Computer Science, Georgia Tech)<br />
Dr. Umakishore Ramachandran (School of Computer Science, Georgia Tech)</p>

<p>Dr. Joy Arulraj (School of Computer Science, Georgia Tech)<br />
Dr. Tushar Krishna (School of Electrical Engineering, Georgia Tech)</p>

<p>Dr. Amitabha Roy (Software Engineer, Google)</p>

<p>&nbsp;</p>

<p><strong>Abstract:</strong></p>

<p>Unlocking the true potential of the new non-volatile memories (NVMs) requires eliminating traditional persistent I/O abstractions altogether, by introducing persistent semantics directly into main memory programming. Such a programming model elevates failure atomicity to a first-class application property in addition to in-memory data layout, concurrency-control, and fault tolerance, and therefore requires redesign of programming abstractions for both program correctness and maximum performance gains. To address these challenges, this thesis proposes a set of system software designs that integrate persistence with main memory programming, and makes the following contributions.<br />
<br />
First, this thesis proposes an NVM-aware I/O runtime, NVStream, that supports fast durable streaming I/O. NVStream uses a memory-friendly I/O API that plugs into existing I/O data movement points of an application to accelerate persistent data writes. &nbsp;NVStream carefully designs its persistent data storage layout and crash-consistent semantics to match both application and NVM characteristics. Specifically we use a log-structured NVM storage engine with append only failure-atomic semantics to support streaming I/O produced during HPC simulations. Furthermore, the thesis acknowledges the NVM bandwidth bottlenecks during parallel HPC I/O writes and proposes a novel &nbsp;data movement design -- PHX. PHX uses alternative network data movement paths available in data-centers to ease up the bandwidth pressure on the NVM memory interconnects, all while maintaining the correctness of the persistent data.<br />
<br />
Next, the thesis explores the challenges and opportunities of using NVM for true main memory persistent programming -- a single data domain for both runtime and persistent application state. Such a programming model includes maintaining ACID properties during each and every update to application&rsquo;s persistent structures. ACID-qualified persistent programming for multi-threaded applications is hard, as the programmer has to reason about &nbsp;both crash-consistency and synchronization -- crash-sync -- semantics for programming correctness. The thesis introduces NVMTSX, that extends the popular hardware transactional memory (HTM) primitive with durability semantics, and offers a hardware accelerated crash-sync primitive that supports both low overhead synchronization and correct crash-consistency.<br />
<br />
Finally, the application state stored on node-local persistent memory is still vulnerable to catastrophic node failures. The thesis proposes a replicated persistent memory runtime, &nbsp;Blizzard, that supports truly fault tolerant, concurrent and persistent data-structure programming. Blizzard carefully integrates userspace networking with byte addressable NVM for a fast, persistent memory replication runtime. Further, the design &nbsp;also supports a replication aware crash-sync protocol that supports consistent and concurrent updates on persistent data-structures.</p>

<p>&nbsp;</p>

<p>&nbsp;</p>
]]></body>
  <field_summary_sentence>
    <item>
      <value><![CDATA[Adding Persistence to Main Memory Programming]]></value>
    </item>
  </field_summary_sentence>
  <field_summary>
    <item>
      <value><![CDATA[]]></value>
    </item>
  </field_summary>
  <field_time>
    <item>
      <value><![CDATA[2019-10-03T11:00:00-04:00]]></value>
      <value2><![CDATA[2019-10-03T13:00:00-04:00]]></value2>
      <rrule><![CDATA[]]></rrule>
      <timezone><![CDATA[America/New_York]]></timezone>
    </item>
  </field_time>
  <field_fee>
    <item>
      <value><![CDATA[]]></value>
    </item>
  </field_fee>
  <field_extras>
      </field_extras>
  <field_audience>
          <item>
        <value><![CDATA[Faculty/Staff]]></value>
      </item>
          <item>
        <value><![CDATA[Public]]></value>
      </item>
          <item>
        <value><![CDATA[Graduate students]]></value>
      </item>
          <item>
        <value><![CDATA[Undergraduate students]]></value>
      </item>
      </field_audience>
  <field_media>
      </field_media>
  <field_contact>
    <item>
      <value><![CDATA[]]></value>
    </item>
  </field_contact>
  <field_location>
    <item>
      <value><![CDATA[]]></value>
    </item>
  </field_location>
  <field_sidebar>
    <item>
      <value><![CDATA[]]></value>
    </item>
  </field_sidebar>
  <field_phone>
    <item>
      <value><![CDATA[]]></value>
    </item>
  </field_phone>
  <field_url>
    <item>
      <url><![CDATA[]]></url>
      <title><![CDATA[]]></title>
            <attributes><![CDATA[]]></attributes>
    </item>
  </field_url>
  <field_email>
    <item>
      <email><![CDATA[]]></email>
    </item>
  </field_email>
  <field_boilerplate>
    <item>
      <nid><![CDATA[]]></nid>
    </item>
  </field_boilerplate>
  <links_related>
      </links_related>
  <files>
      </files>
  <og_groups>
          <item>221981</item>
      </og_groups>
  <og_groups_both>
          <item><![CDATA[Graduate Studies]]></item>
      </og_groups_both>
  <field_categories>
          <item>
        <tid>1788</tid>
        <value><![CDATA[Other/Miscellaneous]]></value>
      </item>
      </field_categories>
  <field_keywords>
          <item>
        <tid>102851</tid>
        <value><![CDATA[Phd proposal]]></value>
      </item>
      </field_keywords>
  <field_userdata><![CDATA[]]></field_userdata>
</node>
