✨
This commit is contained in:
Binary file not shown.
@ -29,22 +29,34 @@
|
||||
|
||||
\section{Introduction}
|
||||
|
||||
\textit{Scientific Workflow Management Systems} (SWMSs) are an essential tool for automating, managing, and executing complex scientific processes involving large volumes of data and computational tasks\footnote{citation?}. Traditional SWMSs employ a linear sequential approach, in which tasks are performed in a pre-defined order, as defined by the workflow. While this linear method is suitable for certain applications, it might not always be the best choice: processing sequentially can prove inefficient in cases where some processes can be done in parallel, or where the next step should adapt to the previous one. For these use-cases a dynamic scheduler is required, of which \textit{Managing Event Oriented Workflows}\autocite{DavidMEOW} (MEOW) is one.
|
||||
\textit{Scientific Workflow Management Systems} (SWMSs) are an essential tool for automating, managing, and executing complex scientific processes involving large volumes of data and computational tasks\footnote{citation?}. Traditional SWMSs employ a linear sequential approach, in which tasks are performed in a pre-defined order, as defined by the workflow. While this linear method is suitable for certain applications, it might not always be the best choice: processing sequentially can prove inefficient in cases where the next step of the process should adapt to the previous one. For these use-cases a dynamic scheduler is required, of which \textit{Managing Event Oriented Workflows}\autocite{DavidMEOW} (MEOW) is one.
|
||||
|
||||
\begin{tcolorbox}[colback=lightgray!30!white]
|
||||
More about DAGs' inability to adapt
|
||||
\end{tcolorbox}
|
||||
|
||||
MEOW employs an event-based scheduler, in which jobs are performed non-linearly, triggered based on events\footnote{citation?}. By dynamically adapting the execution order based on the outcomes of previous tasks or external factors, MEOW provides a more efficient and flexible solution for processing large volumes of experimental data\footnote{citation?}.
|
||||
|
||||
|
||||
\begin{tcolorbox}[colback=lightgray!30!white]
|
||||
What else should be included in the introduction?
|
||||
\begin{itemize}
|
||||
\item What work am I doing on MEOW?
|
||||
\item How did it go?
|
||||
\item \textbf{Write this last}
|
||||
\end{itemize}
|
||||
\end{tcolorbox}
|
||||
|
||||
\subsection{Problem}
|
||||
|
||||
In its current implementation, MEOW is able to trigger jobs based on changes to monitored files. This covers a wide range of scenarios, specifically where the data processing workflow involves the creation, modification, or removal of files. By monitoring file events, MEOW's event-based scheduler can dynamically execute tasks as soon as the required conditions are met, ensuring efficient and timely processing of the data.
|
||||
In its current implementation, MEOW is able to trigger jobs based on changes to monitored local files. This covers a the range of scenarios where the data processing workflow involves the creation, modification, or removal of files. By monitoring file events, MEOW's event-based scheduler can dynamically execute tasks as soon as the required conditions are met, ensuring efficient and timely processing of the data. Since the file monitor is triggered by changes to local files, MEOW is limited to local workflows.
|
||||
|
||||
While file events work well as a trigger on their own, there are several scenarios where a different trigger would be preferred or even required, especially when dealing with distributed systems or remote operations. To address these shortcomings and further enhance MEOW's capabilities, the integration of network event triggers would provide significant benefits in several key use-cases.
|
||||
|
||||
Firstly, network event triggers would allow for manual triggering of jobs 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.
|
||||
\begin{tcolorbox}[colback=lightgray!30!white]
|
||||
Introduce the BIDS graph. Draw the BIDS graph in tikz
|
||||
\end{tcolorbox}
|
||||
|
||||
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.
|
||||
|
||||
@ -54,6 +66,10 @@
|
||||
\subsubsection{The structure of MEOW}
|
||||
The MEOW event-based scheduler has three main parts: \textit{monitors}, \textit{handlers}, and \textit{the conductor}.
|
||||
|
||||
\begin{tcolorbox}[colback=lightgray!30!white]
|
||||
Draw a diagram of the structure.
|
||||
\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.
|
||||
|
||||
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.
|
||||
@ -65,12 +81,21 @@
|
||||
Specific (but not too granular) implementation details of \texttt{meow\_base}.
|
||||
\end{tcolorbox}
|
||||
|
||||
\subsubsection{The \texttt{socket} library}
|
||||
\begin{tcolorbox}[colback=lightgray!30!white]
|
||||
\begin{itemize}
|
||||
\item What can it do?
|
||||
\item What am I using it for?
|
||||
\item Which parts am I using?
|
||||
\item Other options?
|
||||
\end{itemize}
|
||||
\end{tcolorbox}
|
||||
|
||||
\section{Method}
|
||||
\begin{tcolorbox}[colback=lightgray!30!white]
|
||||
Explain the code I wrote and why I made those choices.
|
||||
|
||||
\begin{itemize}
|
||||
\item The \texttt{socket} library
|
||||
\item Expanding on existing code, reusing boiler-plate code
|
||||
\item Test-driven development
|
||||
\item Experiments with triggering on packet \begin{itemize}
|
||||
@ -79,7 +104,7 @@
|
||||
\end{itemize}
|
||||
\end{tcolorbox}
|
||||
|
||||
\section{Results}
|
||||
\subsection{Results}
|
||||
\begin{tcolorbox}[colback=lightgray!30!white]
|
||||
Does it work? How well?
|
||||
\end{tcolorbox}
|
||||
|
Reference in New Issue
Block a user