<node id="634751">
  <nid>634751</nid>
  <type>event</type>
  <uid>
    <user id="27707"><![CDATA[27707]]></user>
  </uid>
  <created>1588010478</created>
  <changed>1588010478</changed>
  <title><![CDATA[PhD Proposal by Caleb Voss]]></title>
  <body><![CDATA[<p><strong>Title:</strong> Addressing Logical Deadlocks through Task-Parallel Language Design</p>

<p>&nbsp;</p>

<p>Caleb Voss</p>

<p>Ph.D. student</p>

<p>School of Computer Science</p>

<p>Georgia Institute of Technology</p>

<p>&nbsp;</p>

<p><strong>Date:</strong> Wednesday, April 29, 2020</p>

<p><strong>Time:</strong> 11:00 am - 1:00 pm</p>

<p><strong>Location:</strong> <a href="https://bluejeans.com/cvoss9" id="LPlnk562046">https://bluejeans.com/cvoss9</a></p>

<p><strong>Committee:</strong></p>

<p>Dr. Vivek Sarkar (advisor), School of Computer Science, Georgia Institute of Technology</p>

<p>Dr. Alessandro Orso, School of Computer Science, Georgia Institute of Technology</p>

<p>Dr. David Devecsery, School of Computer Science, Georgia Institute of Technology</p>

<p>Dr. Qirun Zhang, School of Computer Science, Georgia Institute of Technology</p>

<p>Dr. Tiago Cogumbreiro, College of Science and Mathematics, University of Massachusetts Boston</p>

<p>&nbsp;</p>

<p><strong>Abstract:</strong></p>

<p>&nbsp;</p>

<p>Task-parallel programming languages offer a variety of high-level synchronization mechanisms that trade off between flexibility and deadlock safety. Fork-join approaches, such as spawn-sync and async-finish, are deadlock-free by construction, but support limited synchronization patterns. However, more powerful approaches, such as the promise, are trivial to deadlock. Viewing high-level task-parallel programming as the successor to low-level concurrent programming, it is imperative that language features offer both flexibility to avoid over-synchronization and sufficient protection against logical deadlock bugs. Lack of flexibility leads to code that does not take full advantage of the available parallelism in the computation. Lack of deadlock protection leads to error-prone code in which a single bug can involve arbitrarily many tasks, making it difficult to reason about. We make advances in both flexibility and deadlock protection for existing task-parallel synchronization mechanisms by carefully designing dynamically verifiable usage policies.</p>

<p>&nbsp;</p>

<p>We first define a policy for futures that is a maximally correct relaxation of a known deadlock-freedom policy. Our policy admits an additional class of deadlock-free programs and requires less overhead to verify at run-time compared to past work.</p>

<p>&nbsp;</p>

<p>We also introduce a deadlock-freedom policy for promises that, instead of precisely detecting cycles, raises an alarm on disorganized point-to-point synchronization occurring between trees of tasks. To establish both safety and flexibility, we prove that this approximation identifies all deadlocks, and we prove that deadlock-free programs can be made to comply with the policy without loss of parallelism through the use of a novel language feature, the guard block.</p>

<p>&nbsp;</p>

<p>Finally, we identify a lack of flexibility in an existing deadlock-freedom policy for the powerful phaser construct. As remaining dissertation work, we propose to relax the policy and introduce the concept of subphasers. By organizing phasers into trees, we can eliminate some over-synchronization and anti-modularity that occurs in phaser programs, while still enjoying efficiently verifiable deadlock-freedom.</p>
]]></body>
  <field_summary_sentence>
    <item>
      <value><![CDATA[Addressing Logical Deadlocks through Task-Parallel Language Design]]></value>
    </item>
  </field_summary_sentence>
  <field_summary>
    <item>
      <value><![CDATA[]]></value>
    </item>
  </field_summary>
  <field_time>
    <item>
      <value><![CDATA[2020-04-29T12:00:00-04:00]]></value>
      <value2><![CDATA[2020-04-29T14: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/cvoss9]]></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>102851</tid>
        <value><![CDATA[Phd proposal]]></value>
      </item>
      </field_keywords>
  <field_userdata><![CDATA[]]></field_userdata>
</node>
