<node id="674461">
  <nid>674461</nid>
  <type>event</type>
  <uid>
    <user id="27707"><![CDATA[27707]]></user>
  </uid>
  <created>1714515352</created>
  <changed>1714515383</changed>
  <title><![CDATA[PhD Defense by Lechen Yu]]></title>
  <body><![CDATA[<p><strong>Title</strong>: Dynamic Analysis of Data Inconsistencies and Data Races in OpenMP Programs</p>

<p>&nbsp;</p>

<p><strong>Date</strong>: Monday, May 6, 2024</p>

<p><strong>Time</strong>: 2:00 pm - 4:00 pm ET</p>

<p><strong>Location</strong>: Klaus 3402 and Virtual (<a href="https://gatech.zoom.us/j/3092779704?pwd=SDVZaTlkTFpsZDRoYUU3Y0pzdmNvdz09">https://gatech.zoom.us/j/3092779704?pwd=SDVZaTlkTFpsZDRoYUU3Y0pzdmNvdz09</a>)</p>

<p><strong>Lechen Yu</strong></p>

<p>Ph.D. Student</p>

<p>School of Computer Science</p>

<p>Georgia Institute of Technology</p>

<p>&nbsp;</p>

<p><strong>Committee</strong>:</p>

<p>Dr. Vivek Sarkar (Advisor) – School of Computer Science, Georgia Institute of Technology</p>

<p>Dr. Santosh Pande – School of Computer Science, Georgia Institute of Technology</p>

<p>Dr. Qirun Zhang – School of Computer Science, Georgia Institute of Technology</p>

<p>Dr. Hyesoon Kim – School of Computer Science, Georgia Institute of Technology</p>

<p>Dr. Tiago Cogumbreiro – Department of Computer Science, University of Massachusetts Boston</p>

<p>&nbsp;</p>

<p><strong>Abstract</strong>:</p>

<p>&nbsp;</p>

<p>OpenMP is a popular intra-node parallel programming model that supports several</p>

<p>problem decomposition approaches, including task parallelism, data parallelism, and heterogeneous&nbsp;</p>

<p>parallelism. When OpenMP introduces new parallel paradigms or features, it must</p>

<p>ensure that these additions align with the existing constructs to maintain consistency and</p>

<p>avoid unspecified behaviors. New features can result in revisions to the behavior of existing</p>

<p>constructs, which may in turn require programmers to re-evaluate their understanding of</p>

<p>existing constructs and adapt their code accordingly. Consequently, writing correct OpenMP</p>

<p>programs can be challenging even for experienced programmers.</p>

<p>&nbsp;</p>

<p>To alleviate the intricacy of writing correct OpenMP programs, this proposal&nbsp;outlines</p>

<p>several dynamic analysis techniques that help programmers identify programming errors in</p>

<p>OpenMP programs. First, we describe various studies on device offloading, a recent OpenMP</p>

<p>feature still in its developmental phase. Our studies reveal discrepancies between the LLVM</p>

<p>implementation and the intended runtime behavior of device offloading. Additionally,</p>

<p>erroneous usage of device offloading constructs can lead to an assortment of memory</p>

<p>anomalies. Since these memory anomalies can generate disparities between host variables</p>

<p>and their corresponding counterparts on accelerator devices, we classify such bugs as data</p>

<p>inconsistencies. By establishing permissible memory accesses on the host and accelerator,</p>

<p>this proposal&nbsp;introduces a dynamic approach to detect data inconsistencies automatically.</p>

<p>The dynamic approach leverages a per-variable state transition model, which can be used to</p>

<p>establish the validity of the memory location before executing any memory accesses. Beyond</p>

<p>data inconsistencies, this proposal&nbsp;also delves into novel dynamic approaches for identifying</p>

<p>data races in OpenMP programs. By extending the SPD3 race detection algorithm, originally</p>

<p>designed for async-finish task parallelism, our dynamic race detection approach can handle a</p>

<p>large subset of parallel constructs in OpenMP, thereby checking more precise happens-before</p>

<p>relations among tasks relative to existing per-thread vector-clock-based approaches.</p>
]]></body>
  <field_summary_sentence>
    <item>
      <value><![CDATA[Dynamic Analysis of Data Inconsistencies and Data Races in OpenMP Programs]]></value>
    </item>
  </field_summary_sentence>
  <field_summary>
    <item>
      <value><![CDATA[<p>Dynamic Analysis of Data Inconsistencies and Data Races in OpenMP Programs</p>
]]></value>
    </item>
  </field_summary>
  <field_time>
    <item>
      <value><![CDATA[2024-05-06T14:00:00-04:00]]></value>
      <value2><![CDATA[2024-05-06T16: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>
      </field_audience>
  <field_media>
      </field_media>
  <field_contact>
    <item>
      <value><![CDATA[]]></value>
    </item>
  </field_contact>
  <field_location>
    <item>
      <value><![CDATA[ Klaus 3402 and Virtual ]]></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>100811</tid>
        <value><![CDATA[Phd Defense]]></value>
      </item>
      </field_keywords>
  <field_userdata><![CDATA[]]></field_userdata>
</node>
