<node id="342631">
  <nid>342631</nid>
  <type>event</type>
  <uid>
    <user id="28077"><![CDATA[28077]]></user>
  </uid>
  <created>1415294226</created>
  <changed>1475892609</changed>
  <title><![CDATA[Ph.D. Proposal by Sangho Lee]]></title>
  <body><![CDATA[<p>Title: <strong>Mitigating the performance impact of memory bloat</strong></p><p>&nbsp;</p><p><strong>Sangho Lee</strong></p><p>School of Computer Science</p><p>College of Computing</p><p>Georgia Institute of Technology</p><p>&nbsp;</p><p>Date:&nbsp;November 11th, 2014&nbsp;(Thursday)</p><p>Time: 1:00 PM - 3:00 PM (ET)</p><p>Location: KACB 2100</p><p>&nbsp;</p><p>Committee:</p><p>------------</p><p>Dr. Santosh Pande (Advisor, School of Computer Science, Georgia Tech)</p><p>Dr. Alessandro Orso (School of Computer Science, Georgia Tech)</p><p>Dr. Karsten Schwan (School of Computer Science, Georgia Tech)</p><p>Dr. Hyesoon Kim (School of Computer Science, Georgia Tech)</p><p>&nbsp;</p><p><strong>Abstract:</strong></p><p>Memory bloat is loosely defined as an excessive use of memory than is</p><p>necessary in an application. Due to the complexity of efficient memory</p><p>management, memory bloat is pervasive and is often neglected in favor of</p><p>lower application development time. Unfortunately, when the bloat</p><p>becomes severe, unwanted performance issues may occur.</p><p>&nbsp;</p><p>In this proposal, we identify 3 pervasive causes of performance issues</p><p>due to memory bloat and present feedback-driven solutions for each.</p><p>&nbsp;</p><p>First, memory bloat often manifests in the form of memory leaks. To</p><p>prevent the consequences of memory bloats, we first need to detect the</p><p>presence of memory leaks. We tackle this issue by augmenting a class of</p><p>dynamic memory leak detectors based on staleness tracking using a</p><p>machine learning framework. The proposed solution improves the accuracy</p><p>and utility of the detection technique by selecting good staleness</p><p>predicates for detecting memory leaks. Significant memory bloat savings</p><p>are incurred upon weeding out such memory leaks.</p><p>&nbsp;</p><p>Second, memory bloat prevention mechanism in multi-threaded memory</p><p>allocators is another source of performance issues. When the bloat</p><p>prevention mechanism is frequently triggered unnecessarily as an</p><p>artifact of intensive memory allocations/deallocations, an application</p><p>may experience a suboptimal performance. To address this, we propose a</p><p>feedback-directed tuning mechanism for TCMalloc, a widely used memory</p><p>allocator for high performance systems. The proposed optimization</p><p>technique tunes the thread cache management mechanism in TCMalloc to the</p><p>memory allocation behavior of an application and reduces the management</p><p>cost of the internal data structures in TCMalloc. With the proposed</p><p>technique integrated into FDO in GCC, we observed up to 10% improvement in application performance.</p><p>&nbsp;</p><p>Third, implicit memory management in managed languages such as Java is</p><p>inherently vulnerable to memory bloat as the detection and reclamation</p><p>of dead objects are performed lazily by garbage collectors. The</p><p>interruptions caused by frequent garbage collections can adversely</p><p>impact performance as well as timing properties of the applications. To</p><p>prevent the program slowdown due to excessive garbage collection</p><p>pressure, we propose a hybrid approach that identifies must-deallocation</p><p>sites of allocated objects using a static shape analysis and that</p><p>transforms an application to selectively recycle the dead objects using</p><p>a profile driven approach. With the technique, we observed a 4x</p><p>performance improvement on an application with a high garbage collection</p><p>pressure. Further improvements to object recycling framework and its</p><p>evaluation on timing properties are proposed as future work.</p><p>&nbsp;</p>]]></body>
  <field_summary_sentence>
    <item>
      <value><![CDATA[Mitigating the performance impact of memory bloat]]></value>
    </item>
  </field_summary_sentence>
  <field_summary>
    <item>
      <value><![CDATA[]]></value>
    </item>
  </field_summary>
  <field_time>
    <item>
      <value><![CDATA[2014-11-11T12:00:00-05:00]]></value>
      <value2><![CDATA[2014-11-11T14:00:00-05: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[]]></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>1808</tid>
        <value><![CDATA[graduate students]]></value>
      </item>
          <item>
        <tid>913</tid>
        <value><![CDATA[PhD]]></value>
      </item>
      </field_keywords>
  <userdata><![CDATA[]]></userdata>
</node>
