Minor stuff.

master
Julian M. Kunkel 2018-10-26 15:52:07 +01:00
parent 1f6e050647
commit 87ea53dab2
4 changed files with 34 additions and 19 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
# ---> TeX
*.pdf
## Core latex/pdflatex auxiliary files:
*.aux
*.lof

View File

@ -481,7 +481,8 @@ breaklinks=true,
\begin{titlepage}
\begin{center}
\textsc{\LARGE Research Proposal}\\[0.5cm] % Thesis type
\textsc{\LARGE Research Proposal}\\[0.2cm] % Thesis type
\textsc{\degreename}\\[0.5cm]
{\scshape submitted to the \par}

Binary file not shown.

View File

@ -1,13 +1,17 @@
\documentclass{ResearchProposal} % The class file specifying the document structure
\thesistitle[Optional Short Title]{PHD Thesis}
\thesistitle{Potential of Microservices in HPC}
\author{Kyle \textsc{ Spindler}}
\supervisor{Dr. Julian \textsc{Kunkel}} % Your prospect supervisor's name (if known already), leave empty if you are looking for one
\university{University of Reading} % The university you apply for
\department{Department of Computer Science} % The department's name
\degree{for a PhD at a distance in part-time}
\group{\href{http://hps.vi4io.org}{High-Performance, Storage Software Architectures}} % The research area/group
\keywords{Microservice, Serverless, HPC, Storage} % Use a few describing the thesis better
\RequirePackage{todonotes}
\newcommand{\jk}[1]{\todo[inline]{JK: #1}}
\addbibresource{example.bib}
@ -16,20 +20,21 @@
\section{Motivation}
Software Architecture invovles considering multiple characteristics such as separation of concerns, quality attributes (maintainability, scalability, loose coupling, high cohesion etc...) and architectural styles. Some architecture styles are more suited for performance while others are better at maintainability and loose coupling like microservices. Microservices is a very popular architecture that is used in many domains because of the benefits it offers.
Software Architecture involves considering multiple characteristics such as separation of concerns, quality attributes (maintainability, scalability, loose coupling, high cohesion etc...) and architectural styles. Some architecture styles are more suited for performance while others are better at maintainability and loose coupling like microservices.
Microservices is a very popular architecture that is used in many domains because of the benefits it offers.
\medskip
Scientic codes suffer from good software engineering practices. HPC and store applications are typically tightly coupled to utilize the available resources efficiently. While it is claimed that this provides the best performance, the benefit and drawbacks of alternative software architectures for HPC software is not thoroughly investigated. Microservices, for example, provide a scalable architecture and ease the software development process by providing separation of concerns by applying techniques from Domain Driven Design. When deciding a software architecture not only performance and scalability matters, but also flexibility and maintainability of the software.
Scientific codes suffer from good software engineering practices. HPC and store applications are typically tightly coupled to utilize the available resources efficiently. While it is claimed that this provides the best performance, the benefit and drawbacks of alternative software architectures for HPC software is not thoroughly investigated. Microservices, for example, provide a scalable architecture and ease the software development process by providing separation of concerns by applying techniques from Domain-Driven Design. When deciding a software architecture not only performance and scalability matters, but also flexibility and maintainability of the software.
\medskip
In this regard, the HPC community struggles to recruit sufficient developesr to keep up with the development of software which can often be seen in important utility tools. For example, existing tools for pre/post-processing of HPC workflows and the analysis of HPC data are typically not the main focus of scientists and developers; hence, they are implemented in a way that shows limited scalability, i.e. are executed sequentially in bash scripts.
In this regard, the HPC community struggles to recruit sufficient developers to keep up with the development of software which can often be seen in important utility tools. For example, existing tools for pre/post-processing of HPC workflows and the analysis of HPC data are typically not the main focus of scientists and developers; hence, they are implemented in a way that shows limited scalability, i.e., are executed sequentially in bash scripts.
\section{Research question}
Understand the impact of modern day software architectures (microservices, event driven) has on HPC and particularly the climate/weather domain
Understand the impact of modern day software architectures (microservices, event driven) has on HPC and particularly the climate/weather domain
The goal of this thesis is to see if HPC applications and storage systems can be redeveloped using modern day software architecture such as microservices with minimal or no overhead while gaining the benefits from the loosely coupled architecture.
@ -42,14 +47,21 @@ The goal of this thesis is to see if HPC applications and storage systems can be
\section{Related work}
Microservices are becoming very popular in today's world due to the main benefits and problems it solves. The application of microservices are used in many domains where maintainability, scalability and resilience is very important as opose to scientific applications that requires performance is their primary attribute. Although microservices are found in HPC applications the majority of research found has applied microservices in storage, pre/post processing, middleware, scheduling, workflow and caching services that wrap around the main HPC processing.Also storage services like iRODS harness microservices, however, these systems are not as performance-criticial as a typical HPC application which might be one of the reasons why iRODS is not used in HPC environments.
Relevant related work can be classified into: a) the usage of Microservices in different disciplines and particularly HPC; b) software engineering and architectures in HPC; and c) performance analysis of Microservices.
Given the scope of this document, an excerpt of related work is shown, focusing on b).
\jk{This section deserves a bit polishment, a structure like I suggested above. Not necessarily all points must be answered. I would add one paper for each topic at least. Where possible and that is what you have a focus on b)}
\jk{I suggest to write one section like the following for each of a,b,c and add the references inline.}
Microservices are becoming very popular in today's world due to the benefits and problems it solves.
The application of microservices are used in many domains where maintainability, scalability and resilience is very important as oppose to scientific applications that requires performance is their primary attribute.
\medskip
Relevant work can be classified into: a) LaTeX studies, b) performance analysis in HPC, ....
\paragraph{The usage of microservices in HPC.}
Although microservices are found in HPC applications the majority of research found has applied microservices in storage \jk{cite iRODS}, pre/post processing, middleware, scheduling, workflow and caching services that wrap around the main HPC processing. Also storage services like iRODS harness microservices, however, these systems are not as performance-critical as a typical HPC application which might be one of the reasons why iRODS is not used in HPC environments.
\paragraph{Caching Microservices.} Microservices were used as a distributed interpolation-based memoization cache. \citep{Jenkins2017}.
Microservices were used as a distributed interpolation-based memoization cache \citep{Jenkins2017}.
\paragraph{Containers for High Performance Computing.} Thoughts on how containers may or may not be used in HPC. Containers are commonly used in microservice architectures. \citep{Joab2018}.
@ -76,9 +88,9 @@ Firstly, I must understand the limitations and performance characteristics of al
\item Modelling of systems with different hardware / software architectures
\end{enumerate}
Next, from HPC use cases and scenarios must be derived and characterised with their pros/cons and performance chatacterisitcs.
Next, from HPC use cases and scenarios must be derived and characterised with their pros/cons and performance characteristics.
To prove the expectations, a prototype of selected applications must be made and compared to native applications. This may involve to adjust an existing package or create a new application that behaves similar but has limited feature set (so called mini-app).
Finally, to prove the expectations, a prototype of selected applications must be made and compared to native applications. This may involve to adjust an existing package or create a new application that behaves similar but has limited feature set (so called mini-app).
\medskip
@ -87,25 +99,26 @@ An orthogonal aspect is to conduct surveys with scientists / scientific develope
\section{Required infrastructure}
Access to HPC systems to benchmark existing software and the developed prototypes. Access to the scientific network to foster discussions and explore with scientists in co-development the benefits of the prototypes.
These requirements will be addressed by my supervisor -- there is no special requirement for the university to provide any of this infrastructure.
\section{Workplan}
The following sketches the workplan for the different years of the PhD.
The following sketches the tentative workplan for the different years of the PhD.
\paragraph{First year:} Setup of work environment, researching related work, Start Investigating system under study, send out surveys, analyise system under study, writing the chapters introduction and related work of the thesis.
\paragraph{First year:} Setup of work environment, researching related work, start investigating system under study, send out surveys, analyse system under study -- performing the performance analysis of the microservices architecture and frameworks to realize them, writing the chapters introduction and related work of the thesis.
\paragraph{Second year:} Continue researching related work, Add more details in thesis based on previous findings, Start Implementing Prototype.
\paragraph{Second year:} Continue researching related work, add more details in thesis based on previous findings, deriving performance models for microservices, start implementing a prototype for proofing the model.
\paragraph{Third year:} Continue Implementing Prototype, Add Quality Assurance and testing to prototype, continue researching, add implementation details to thesis
\paragraph{Third year:} Continue implementing the prototype, add quality assurance and testing to prototype, continue researching, improve the model, add design details to thesis.
\paragraph{Fourth year:} Run Benchmark Tests, Adjust Prototype, add benchmark findings into thesis, provide critical thinking.
\paragraph{Fourth year:} Conclude benchmark tests of benchmarks and mini-applications, adjust prototype, add benchmark findings into thesis, provide critical thinking.
\paragraph{Fifth year:} Finalise thesis, Prepare thesis for final stages and delivery
\paragraph{Fifth year:} Finalise thesis, prepare thesis for final stages and delivery.
\proposalAppendix
Add here any appendix, if needed
%Add here any appendix, if needed
\printbibliography[heading=bibintoc]