master
Julian M. Kunkel 2018-10-28 18:05:32 +00:00
parent e1d90946ec
commit 0aad3cfba5
1 changed files with 32 additions and 30 deletions

View File

@ -49,42 +49,44 @@ The goal of this thesis is to see if HPC applications and storage systems can be
Relevant related work can be classified into:
\begin{enumerate}
\item a) The usage of microservices in different disciplines and particularly HPC
\item b) Software engineering and software architectures in HPC
\item c) Performance analysis of microservices
\item The usage of microservices in different disciplines and particularly HPC
\item Software engineering and software architectures in HPC
\item Performance analysis of microservices
\end{enumerate}
\paragraph{a) The usage of microservices in different disciplines and particularly HPC.}
\paragraph{1. The usage of microservices in different disciplines and particularly HPC.}
Although microservices are found in HPC applications the majority of research found has applied microservices in storage \citep{Orcutt2015}, 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{b) Software engineering and software architectures in HPC.} Software engineering has a focus on of having maintainable code using various designs, patterns and principles which has an influence on the software architecture \citep{Johanson2018}. Trade offs are an important decision making process when selecting an architecture, so by having an architecture that is close in performance to a traditional HPC with an increase of maintainability as opposed to an application with high performance an no maintainability might be worth that particular trade off \citep{Jenkins2017}. Other attributes may be included in the trade off besides performance such as security \citep{Joab2018}.
\paragraph{2. Software engineering and software architectures in HPC.} Software engineering has a focus on of having maintainable code using various designs, patterns and principles which has an influence on the software architecture \citep{Johanson2018}. Trade offs are an important decision making process when selecting an architecture, so by having an architecture that is close in performance to a traditional HPC with an increase of maintainability as opposed to an application with high performance an no maintainability might be worth that particular trade off \citep{Jenkins2017}. Other attributes may be included in the trade off besides performance such as security \citep{Joab2018}.
\paragraph{c) Performance analysis of microservices} Here we will see how the loosely coupled architecture has an influence on the performance aspect of this analysis \citep{Fatema2017}
\paragraph{3. Performance analysis of microservices}
The loosely coupled architecture has an influence on the performance aspect of this analysis, as shown, for example, in \citep{Fatema2017}
Some preliminary analysis of RESTful services exist, but this is only one potential framework for microservices.
\medskip
\paragraph{Other areas within an HPC and storage environment where microservices has been used:}
\paragraph{Caching Service.} 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}.
\paragraph{Distributed Virtual Machine Cloud Microservice for HPC:SPMD Applications} How Virtual Machines were used in a cloud based microservice architecture in an HPC environment:SPMD. \citep{Fatema2017}.
\paragraph{Scheduling Scientific Workflows in HPC} How to dynamically approach to scheduling reconfigurable scientific workflows in heterogeneous HPC environments. \citep{Cheptsov2016}.
\paragraph{Middleware cloud based microservice in HPC} Shows how middleware has made use of microservices within a HPC environment. \citep{Benchara2016}.
\paragraph{iRODS integrated Microservice Rulebook} Shows how iRODS uses Microservices for storage. \citep{Rajasekar2015}.
\paragraph{Microservices in Ocean Climate Data } Shows how Ocean-Derived Climate Data uses Microservices. \citep{Arne2016}
\paragraph{Software Engineering in Computational Science} How Software Engineering practices can be used in Computational Science environments. \citep{Johanson2018}
\paragraph{Workflow-Oriented Cyberinfrastructure for Sensor Data Analytics} How the use of iRODS was used with streaming sensors. \citep{Orcutt2015}
\paragraph {http://eprints.uni-kiel.de/42726/1/2018-04-19GeomarDataScience.pdf}
% \medskip
%
% \paragraph{Other areas within an HPC and storage environment where microservices has been used:}
%
% \paragraph{Caching Service.} 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}.
%
% \paragraph{Distributed Virtual Machine Cloud Microservice for HPC:SPMD Applications} How Virtual Machines were used in a cloud based microservice architecture in an HPC environment:SPMD. \citep{Fatema2017}.
%
% \paragraph{Scheduling Scientific Workflows in HPC} How to dynamically approach to scheduling reconfigurable scientific workflows in heterogeneous HPC environments. \citep{Cheptsov2016}.
%
% \paragraph{Middleware cloud based microservice in HPC} Shows how middleware has made use of microservices within a HPC environment. \citep{Benchara2016}.
%
% \paragraph{iRODS integrated Microservice Rulebook} Shows how iRODS uses Microservices for storage. \citep{Rajasekar2015}.
%
% \paragraph{Microservices in Ocean Climate Data } Shows how Ocean-Derived Climate Data uses Microservices. \citep{Arne2016}
%
% \paragraph{Software Engineering in Computational Science} How Software Engineering practices can be used in Computational Science environments. \citep{Johanson2018}
%
% \paragraph{Workflow-Oriented Cyberinfrastructure for Sensor Data Analytics} How the use of iRODS was used with streaming sensors. \citep{Orcutt2015}
%
% \paragraph {http://eprints.uni-kiel.de/42726/1/2018-04-19GeomarDataScience.pdf}
\section{Research methodology}
Firstly, I must understand the limitations and performance characteristics of alternatives software architectures. This is performed in two steps: