<node id="636011">
  <nid>636011</nid>
  <type>event</type>
  <uid>
    <user id="27707"><![CDATA[27707]]></user>
  </uid>
  <created>1591625350</created>
  <changed>1591625350</changed>
  <title><![CDATA[PhD Defense by Sanidhya Kashyap]]></title>
  <body><![CDATA[<p><strong>Title</strong>: Scaling Synchronization Primitives</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>Sanidhya Kashyap</p>

<p>Ph.D. Candidate</p>

<p>School of Computer Science</p>

<p>College of Computing</p>

<p>Georgia Institute of Technology</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><strong>Date</strong>: Thursday, June 11th</p>

<p><strong>Time</strong>: 1:00 PM-3:00 PM (EST)</p>

<p><strong>Location</strong>: <a href="https://bluejeans.com/209362103">https://bluejeans.com/209362103</a> (remote)</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><strong>Committee</strong>:</p>

<p>&nbsp;</p>

<p>Dr. Taesoo Kim (Advisor), School of Computer Science, Georgia Institute of Technology</p>

<p>Dr. Changwoo Min (Co-advisor), Virginia Tech</p>

<p>Dr. Ada Gavrilovska, School of Computer Science, Georgia Institute of Technology</p>

<p>Dr. Irina Calciu, VMware Research</p>

<p>Dr. Joy Arulraj, School of Computer Science, Georgia Institute of Technology</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><strong>Abstract</strong>:</p>

<p>&nbsp;</p>

<p>Over the past decade, multicore machines have become the norm. A single machine is</p>

<p>capable of having thousands of hardware threads or cores. Even cloud providers offer such</p>

<p>large multicore machines for data processing engines and databases. Thus, a fundamental</p>

<p>question arises is how efficient are existing synchronization primitives&mdash;timestamping and</p>

<p>locking&mdash;that developers use for designing concurrent, scalable, and performant applications.</p>

<p>Hence, this dissertation focuses on understanding the scalability aspect of these primitives,</p>

<p>and presents new algorithms and approaches, that either leverage the hardware or the</p>

<p>application domain knowledge, to scale up to hundreds of cores.</p>

<p>&nbsp;</p>

<p>First, the thesis presents Ordo, a scalable ordering or timestamping primitive, that forms</p>

<p>the basis of designing scalable timestamp-based concurrency control mechanisms. Ordo</p>

<p>relies on invariant hardware clocks and provides a notion of a globally synchronized clock</p>

<p>within a machine. We use the Ordo primitive to redesign a synchronization mechanism and</p>

<p>concurrency control mechanisms in databases and software transactional memory.</p>

<p>&nbsp;</p>

<p>Later, this thesis focuses on the scalability aspect of locks in both virtualized and</p>

<p>non-virtualized scenarios. We identify that synchronization primitives suffer from various</p>

<p>preemption problems that happen because of the double scheduling problem. We then</p>

<p>leverage the hypervisor&rsquo;s scheduler to address this problem by bridging the semantic gap in</p>

<p>the form of scheduling information between the hypervisor and VMs.</p>

<p>&nbsp;</p>

<p>Finally, we focus on the design of lock algorithms in general. We find that locks in</p>

<p>practice have discrepancies from locks in design. For example, popular spinlocks suffer</p>

<p>from excessive cache-line bouncing in multicore (NUMA) systems, while scalable,</p>

<p>NUMA-aware locks exhibit sub-par single-thread performance. We classify several</p>

<p>dominating factors that impact the performance of lock algorithms. We then propose</p>

<p>a new technique, shuffling, that can dynamically accommodate all these factors, without</p>

<p>slowing down the critical path of the lock. The key idea of shuffling is to re-order the queue</p>

<p>of threads waiting to acquire the lock with some pre-established policy. Using shuffling, we</p>

<p>propose a family of locking algorithms, called ShflLocks that respect all factors, efficiently</p>

<p>utilize waiters, and achieve the best performance.</p>
]]></body>
  <field_summary_sentence>
    <item>
      <value><![CDATA[Scaling Synchronization Primitives]]></value>
    </item>
  </field_summary_sentence>
  <field_summary>
    <item>
      <value><![CDATA[]]></value>
    </item>
  </field_summary>
  <field_time>
    <item>
      <value><![CDATA[2020-06-11T14:00:00-04:00]]></value>
      <value2><![CDATA[2020-06-11T16: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[Public]]></value>
      </item>
          <item>
        <value><![CDATA[Graduate 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[https://bluejeans.com/209362103]]></url>
      <title><![CDATA[BlueJeans Link]]></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>100811</tid>
        <value><![CDATA[Phd Defense]]></value>
      </item>
      </field_keywords>
  <field_userdata><![CDATA[]]></field_userdata>
</node>
