<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="static/style.xsl"?><OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"><responseDate>2026-09-18T23:01:24Z</responseDate><request verb="GetRecord" identifier="oai:repository.rice.edu:1911/61832" metadataPrefix="dim">https://repository.rice.edu/server/oai/request</request><GetRecord><record><header><identifier>oai:repository.rice.edu:1911/61832</identifier><datestamp>2024-01-11T20:59:18Z</datestamp><setSpec>com_1911_8299</setSpec><setSpec>col_1911_13110</setSpec></header><metadata><dim:dim xmlns:dim="http://www.dspace.org/xmlns/dspace/dim" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:doc="http://www.lyncode.com/xoai" xsi:schemaLocation="http://www.dspace.org/xmlns/dspace/dim http://www.dspace.org/schema/dim.xsd">
   <dim:field mdschema="dc" element="contributor" qualifier="advisor">Kennedy, Ken</dim:field>
   <dim:field mdschema="dc" element="contributor" qualifier="advisor">Sarkar, Vivek</dim:field>
   <dim:field mdschema="dc" element="contributor" qualifier="advisor">Budimlic, Zoran</dim:field>
   <dim:field mdschema="dc" element="creator">Joyner, Mackale</dim:field>
   <dim:field mdschema="dc" element="date" qualifier="accessioned">2011-07-25T01:38:31Z</dim:field>
   <dim:field mdschema="dc" element="date" qualifier="available">2011-07-25T01:38:31Z</dim:field>
   <dim:field mdschema="dc" element="date" qualifier="issued">2009</dim:field>
   <dim:field mdschema="dc" element="identifier" qualifier="citation">Joyner, Mackale. &amp;quot;Array optimizations for high productivity programming languages.&amp;quot; (2009) Diss.,  Rice University.  &amp;lt;a href=&amp;quot;https://hdl.handle.net/1911/61832&amp;quot;&amp;gt;https://hdl.handle.net/1911/61832&amp;lt;/a&amp;gt;.</dim:field>
   <dim:field mdschema="dc" element="identifier" qualifier="uri">https://hdl.handle.net/1911/61832</dim:field>
   <dim:field mdschema="dc" element="identifier" qualifier="callno">THESIS COMP. SCI. 2009 JOYNER</dim:field>
   <dim:field mdschema="dc" element="description" qualifier="abstract">While the HPCS languages (Chapel, Fortress and X10) have introduced improvements in programmer productivity, several challenges still remain in delivering high performance. In the absence of optimization, the high-level language constructs that improve productivity can result in order-of-magnitude runtime performance degradations.
This dissertation addresses the problem of efficient code generation for high-level array accesses in the X10 language. The X10 language supports rank-independent specification of loop and array computations using  regions and points. Three aspects of high-level array accesses in X10 are important for productivity but also pose significant performance challenges: high-level accesses are performed through  Point objects rather than integer indices, variables containing references to arrays are rank-independent, and array subscripts are verified as legal array indices during runtime program execution.
Our solution to the first challenge is to introduce new analyses and transformations that enable automatic inlining and scalar replacement of Point objects. Our solution to the second challenge is a hybrid approach. We use an interprocedural rank analysis algorithm to automatically infer ranks of arrays in X10. We use rank analysis information to enable storage transformations on arrays. If rank-independent array references still remain after compiler analysis, the programmer can use X10&amp;apos;s dependent type system to safely annotate array variable declarations with additional information for the rank and region of the variable, and to enable the compiler to generate efficient code in cases where the dependent type information is available. Our solution to the third challenge is to use a new interprocedural array bounds analysis approach using regions to automatically determine when runtime bounds checks are not needed.
Our performance results show that our optimizations deliver performance that rivals the performance of hand-tuned code with explicit rank-specific loops and lower-level array accesses, and is up to two orders of magnitude faster than unoptimized, high-level X10 programs. These optimizations also result in scalability improvements of X10 programs as we increase the number of CPUs. While we perform the optimizations primarily in X10, these techniques are applicable to other high-productivity languages such as Chapel and Fortress.</dim:field>
   <dim:field mdschema="dc" element="format" qualifier="mimetype">application/pdf</dim:field>
   <dim:field mdschema="dc" element="language" qualifier="iso">eng</dim:field>
   <dim:field mdschema="dc" element="rights">Copyright is held by the author, unless otherwise indicated. Permission to reuse, publish, or reproduce the work beyond the bounds of fair use or other exemptions to copyright law must be obtained from the copyright holder.</dim:field>
   <dim:field mdschema="dc" element="subject">Computer science</dim:field>
   <dim:field mdschema="dc" element="subject">Applied sciences</dim:field>
   <dim:field mdschema="dc" element="title">Array optimizations for high productivity programming languages</dim:field>
   <dim:field mdschema="dc" element="type">Thesis</dim:field>
   <dim:field mdschema="dc" element="type" qualifier="material">Text</dim:field>
   <dim:field mdschema="thesis" element="degree" qualifier="department">Computer Science</dim:field>
   <dim:field mdschema="thesis" element="degree" qualifier="discipline">Engineering</dim:field>
   <dim:field mdschema="thesis" element="degree" qualifier="grantor">Rice University</dim:field>
   <dim:field mdschema="thesis" element="degree" qualifier="level">Doctoral</dim:field>
   <dim:field mdschema="thesis" element="degree" qualifier="name">Doctor of Philosophy</dim:field>
   <dim:field mdschema="others" element="access-status">open.access</dim:field>
</dim:dim>
</metadata></record></GetRecord></OAI-PMH>