From f28865a92edae274458727b9708e62dc69fc4b72 Mon Sep 17 00:00:00 2001 From: NikolajDanger Date: Tue, 16 May 2023 11:17:55 +0200 Subject: [PATCH] :sparkles: --- bachelor-project-nikolaj.pdf | Bin 115598 -> 116483 bytes bachelor-project-nikolaj.tex | 22 +++++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/bachelor-project-nikolaj.pdf b/bachelor-project-nikolaj.pdf index ed0be10b2d2df183359884c9ec763fe0b78ef7f6..aad7a0607910f5f89468beec8d6fb5520e5961ef 100644 GIT binary patch delta 16573 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 OjTwfFOhir;=Klbo(OPW) delta 15674 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 B47>mU diff --git a/bachelor-project-nikolaj.tex b/bachelor-project-nikolaj.tex index ad40f18..d82f975 100644 --- a/bachelor-project-nikolaj.tex +++ b/bachelor-project-nikolaj.tex @@ -42,6 +42,7 @@ \begin{itemize} \item What work am I doing on MEOW? \item How did it go? + \item Introduce the concept of network events. \item \textbf{Write this last} \end{itemize} \end{tcolorbox} @@ -54,10 +55,17 @@ Firstly, network event triggers would allow for manual triggering of jobs remotely, without the need for direct access to the monitored files. This is particularly useful in scenarios where human intervention or decision-making is required before proceeding with the subsequent steps in a workflow. While it is possible to manually trigger job using file events by making changes to the monitored directories, this might lead to an already running job accessing the files at the same time, which could cause problems with data integrity. - Secondly, incorporating network event triggers would facilitate seamless communication between parallel jobs, ensuring that tasks can efficiently exchange information and synchronize their progress. + Secondly, incorporating network event triggers would facilitate seamless communication between parallel runners, ensuring that tasks can efficiently exchange information and synchronize their progress. - Finally, extending MEOW's event-based scheduler to support network event triggers would enable the simple and efficient exchange of data between workflows running on different machines. This feature is particularly valuable in distributed computing environments, where data processing tasks are often split across multiple systems to maximize resource utilization and minimize latency. By leveraging network event triggers, MEOW would be better equipped to manage complex workflows in these environments, ensuring seamless integration and streamlined data processing + Finally, extending MEOW's event-based scheduler to support network event triggers would enable the simple and efficient exchange of data between workflows running on different machines. This feature is particularly valuable in distributed computing environments, where data processing tasks are often split across multiple systems to maximize resource utilization and minimize latency. + \begin{tcolorbox}[colback=lightgray!30!white] + How exactly would network events improve things? Expand using graph David sent to me. + \end{tcolorbox} + + \begin{tcolorbox}[colback=lightgray!30!white] + Move this to after method (Future work). + \end{tcolorbox} One specific example of a use-case where network event triggers could prove useful is the workflow for The Brain Imaging Data Structure (BIDS). The BIDS workflow requires data to be sent between multiple machines and validated by a user. Network event triggers could streamline this process by automatically initiating data transfer tasks when specific conditions are met, thereby reducing the need for manual management. Additionally, network triggers could facilitate user validation by allowing users to manually prompt the continuation of the workflow through specific network requests, simplifying the user's role in the validation process. \begin{figure}[H] @@ -69,6 +77,11 @@ \subsection{Background} \subsubsection{The structure of MEOW} + + \begin{tcolorbox}[colback=lightgray!30!white] + Expand. More diagrams. + \end{tcolorbox} + The MEOW event-based scheduler has three main parts: \textit{monitors}, \textit{handlers}, and \textit{the conductor}. \begin{figure}[H] @@ -81,9 +94,12 @@ \end{center} \caption{\textbf{WIP.} How the three elements of MEOW interact.} \end{figure} + \begin{tcolorbox}[colback=lightgray!30!white] + Include the runner in diagram. + \end{tcolorbox} - Monitors monitor for triggering events. They are initialized with a number of \textit{patterns}, which describe the triggering event. When a pattern's triggering event occurs, the monitor signals to the conductor that the pattern has been triggered. + Monitors listen for triggering events. They are initialized with a number of \textit{patterns}, which describe the triggering event. When a pattern's triggering event occurs, the monitor signals to the conductor that the pattern has been triggered. Handlers perform actions and jobs on behalf of the scheduler. They are initialized with a number of \textit{recipes}, which describe the action to be taken. The handler starts a job when signal to do so by the conductor.