Post-graduate theses
Current Record: 51 of 824
|
Identifier |
000449841 |
Title |
Design level software optimization of structural analysis tool through memoization and application of concurrent computing methods |
Alternative Title |
Σχεδιαστική βελτιστοποίηση εφαρμογής στατικών κτηριακών μελετών μέσω μεθόδων υπομνηματισμού και κατανεμημένου υπολογισμού |
Author
|
Τσατσαράκης, Μύρων Χ.
|
Thesis advisor
|
Πρατικάκης, Πολύβιος
|
Reviewer
|
Μπίλας, Άγγελος
Μαγκούτης, Κωνσταντίνος
|
Abstract |
Performance is an important concern for the end user of an application. Latency,
unresponsiveness of commands and long wait times can make or break the experience. Some
of the factors that prevent software engineers from achieving their performance goals are the
presence of legacy code and the inability to exploit all the available hardware resources.
Legacy code acts as a barrier that prevents both feature extensibility and optimizationoriented refactoring. It is considered to be a no-man's-land, preventing any fruitful discussion
about its detailed functionality and side effects in performance. On the other hand, hardware
resources, such as CPU cores, can be exploited to reduce the time cost of computationally
expensive operations by the application of concurrency. Data-oriented design for concurrency
can provide an increase in performance by distributing workload among cores, fully utilizing
the available hardware.
Our work is applied on a commercial structural design and analysis application which suffers
from the aforementioned setbacks. It comes with a large code-base, guaranteeing a sizeable
number of legacy modules. Furthermore, efficient hardware utilization, was not possible
during the early development times of the application since the technological research
regarding concurrent computation was not sufficiently developed.
In the first part of this thesis we present a way to memoize the return values of
computationally expensive legacy code operations by designing an extensible Memoization
Model. We identify the computationally expensive operations by conducting performance
analysis using an external profiling tool and apply our Memoization Model to the legacy code
base in a non-intrusive way. We present the requirements, design and implementations of
our Memoization Model using C++. Our evaluation indicates that the application of our
Memoization Model, yields up to 100% increase in performance and has been scheduled for
a commercial release, in a future update of the application.
In the second part of this thesis we present a way to concurrently calculate computationally
expensive properties of structural elements. We extend the design of the manager
component, responsible for calculating these expensive properties, by applying concurrency
semantics. We use the concept of asynchronous tasks and our own implementation of a
thread pool to aid our design. We present the requirements, design and implementation of
our concurrent manager component using C++. Our evaluation indicates that our concurrent
manager component, yields up to 420% increase in performance and has been scheduled for
a commercial release, in a future update of the application.
|
Language |
English |
Subject |
Concurrency |
|
Distributed Systems |
|
Parallelism |
|
Structural Design |
Issue date |
2022-07-29 |
Collection
|
School/Department--School of Sciences and Engineering--Department of Computer Science--Post-graduate theses
|
|
Type of Work--Post-graduate theses
|
Permanent Link |
https://elocus.lib.uoc.gr//dlib/0/a/1/metadata-dlib-1657696793-563635-11011.tkl
|
Views |
575 |