Optimized arraycopy implementation for improved runtime performance of OpenJ9 in AArch64

dc.contributor.advisorDueck, Gerhard
dc.contributor.advisorKent, Kenneth
dc.contributor.authorPonangi, Siri Sahithi
dc.date.accessioned2023-09-20T12:58:34Z
dc.date.available2023-09-20T12:58:34Z
dc.date.issued2022-04
dc.description.abstractThe Eclipse OMR – OpenJ9 pair is used to build robust language runtimes that support various hardware and operating system platforms. One of the architectures supported by OpenJ9, the AArch64 platform, is widely used in electronic devices because of its reasonable price and resource efficiency. We propose adding an optimization in the Just-In-Time (JIT) compiler of OpenJ9, to copy arrays, including the System.arraycopy() method, efficiently through the arraycopyEvaluator. The arraycopy nodes generated from the bytecode in Intermediate Language (IL) during runtime help in copying values from a specified source to the referenced destination of a given length. The optimizing JIT compiler function, arraycopyEvaluator, separates inlinable code for better performance. Making use of Vector Floating Point registers helps in copying up to 128 bits of any data type in a single load/store instruction. The situations where primitive values are copied or Garbage Collection checks are required to access the reference fields are handled. A comparision of optimized loops with traditional copying—using Java Class Library function System.arraycopy and a loop, without arraycopy optimization in JIT is investigated. We evaluate the benchmark results of the DaCapo Benchmark Suite and the BumbleBench Microbenchmarking test framework. We investigate the trace files and utilize the Perf tool to identify the reason for unexpected Benchmark results. We achieve an up to tenfold increase in performance. Also, we evaluate the performance improvement on AArch64, with arraycopyEvaluator added, against x86 64. Compared to x86 64, AArch64 shows an improvement of up to 45.7%.
dc.description.copyright© Siri Sahithi Ponangi, 2022
dc.format.extentxiii, 109
dc.format.mediumelectronic
dc.identifier.oclc(OCoLC)1418996825en
dc.identifier.otherThesis 10978en
dc.identifier.urihttps://unbscholar.lib.unb.ca/handle/1882/37429
dc.language.isoen
dc.publisherUniversity of New Brunswick
dc.relationAtlantic Canada Opportunities Agency (ACOA)
dc.relationAtlantic Innovation Fund (AIF)
dc.relationNew Brunswick Innovation Foundation
dc.rightshttp://purl.org/coar/access_right/c_abf2
dc.subject.disciplineComputer Science
dc.subject.lcshVirtual computer systems.en
dc.subject.lcshJava (Computer program language)en
dc.subject.lcshHigh performance computing.en
dc.titleOptimized arraycopy implementation for improved runtime performance of OpenJ9 in AArch64
dc.typemaster thesis
oaire.license.conditionother
thesis.degree.disciplineComputer Science
thesis.degree.grantorUniversity of New Brunswick
thesis.degree.levelmasters
thesis.degree.nameM.C.S.

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Siri Sahithi Ponangi - Thesis.pdf
Size:
1.04 MB
Format:
Adobe Portable Document Format
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
1.13 KB
Format:
Item-specific license agreed upon to submission
Description: