
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
  <dc:title>Automated techniques for enhancing developer productivity on disaggregated software stacks</dc:title>
  <dc:creator>Tauro, Brian Richard</dc:creator>
  <dc:subject>Computer science</dc:subject>
  <dc:subject>compilers</dc:subject>
  <dc:subject>data centers</dc:subject>
  <dc:subject>emulation</dc:subject>
  <dc:subject>HPC systems</dc:subject>
  <dc:subject>memory disaggregation</dc:subject>
  <dc:subject>operating systems</dc:subject>
  <dc:description>The rapid advances in specialized hardware, capabilities including FPGAs, TPUs,microsecond network interconnects, RDMA, GPUs, and other technologies have posed
significant challenges for the traditional monolithic client/server model in efficiently man-
aging and scaling resources, both within industry and HPC systems. This challenge has in-
stigated the emergence of a new paradigm known as resource disaggregation, which tackles
the limitations of the monolithic client-server paradigm by enabling independent scaling of
components such as compute, memory, and storage. The disaggregation of resources can
be managed entirely through hardware or software solutions. Resource disaggregation en-
hances resource utilization by fine grained scheduling of hardware resources to support
dynamic workloads efficiently and empowers data centers to effectively address varying
computational demands, optimize performance, and curtail operational costs, marking a
pivotal evolution in modern computational infrastructure.
However, software based disaggregation, whether over a single server or across
multiple servers, has placed an increased burden on developers. They are compelled to
continuously adapt to new software stacks and migrate applications accordingly. In some
instances, despite the considerable porting efforts, the outcomes may not justify the in-
vestment. Unfortunately, much of the existing research fails to adequately address the
engineering investment challenge, instead prioritizing new software stacks primarily for
performance gains, albeit often at the expense of developer productivity.
This thesis focuses on improving developer productivity in software disaggregated
environments and advocates that unless a developer has evidence they should not have to
switch to a new software system or OS environment. Even when there is benefit for doing
so, software tools should be able to prioritize compatibility by leveraging advancements in
low-level system software stacks like the operating system and compilers.
We found initial evidence on ways to improve developer productivity in software
disaggregated systems by exploring analytical models backed with emulators to place bounds
on application performance. Our speedup models equip developers with a tool to decide
whether an application would benefit from resource disaggregation before actually trying to
use such a system. While analytical models help developers gain insight before adapting to
a new environment, developers may still have to port their applications to achieve high per-
formance. We found out through TrackFM that compilers can enable automatic porting of
applications with high performance, thereby improving developer productivity on memory
disaggregated systems. One of the limitations of TrackFM was that the runtime memory
policies had to be determined at static time for applications, which can lead to performance
overheads for certain applications. We overcome this problem by building CARDS, a sys-
tem that determines far memory policies proactively on software disaggregated systems
by combining compiler and runtime information for each data structure within an applica-
tion automatically. CARDS provides developers with a new alternative that determines far
memory polices dynamically instead of using a complex profiling based system to improve
policies. CARDS is built on top of TrackFM and overcomes the limitations of static com-
pilers by codesigning compiler analysis with the runtime which enables informed policy
decisions at data structure granularity.
The co-design of modern compiler analysis with runtime systems opens a unique
opportunity to create tools that enhance developer productivity within resource-disaggregated
architectures. We also envision that such codesign can be extremely helpful in emulation
of experimental hardware architectures to provide insights quickly without any application
porting effort. Leveraging my expertise in low-level system software, my thesis aims to ad-
vocate for the integration of automated tools in software disaggregated systems to prioritize
developer productivity in datacenter environments.</dc:description>
  <dc:contributor>Hale, Kyle</dc:contributor>
  <dc:date>2024</dc:date>
  <dc:type>Dissertation</dc:type>
  <dc:format>application/pdf</dc:format>
  <dc:identifier>islandora:1025486</dc:identifier>
  <dc:source></dc:source>
  <dc:source>Illinois Institute of Technology</dc:source>
  <dc:source>CS / Computer Science</dc:source>
  <dc:source></dc:source>
  <dc:language>en</dc:language>
  <dc:rights>In
                Copyright</dc:rights>
  <dc:rights>http://rightsstatements.org/page/InC/1.0/</dc:rights>
  <dc:rights>Restricted Access</dc:rights>
</oai_dc:dc>
