Skip to content

Commit

Permalink
New farm status update talk added
Browse files Browse the repository at this point in the history
  • Loading branch information
Jonas committed Apr 2, 2014
1 parent bc898a5 commit bcd6d0d
Show file tree
Hide file tree
Showing 18 changed files with 1,152 additions and 7 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.tmp/*
8 changes: 4 additions & 4 deletions .texlipse
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
#TeXlipse project settings
#Mon Feb 10 15:35:52 CET 2014
#Tue Apr 01 17:10:16 CEST 2014
markTmpDer=true
builderNum=2
outputDir=
makeIndSty=
bibrefDir=
outputFormat=pdf
tempDir=.tmp
mainTexFile=14.02.11_cern-pc-farm.tex
outputFile=14.02.11_cern-pc-farm.pdf
mainTexFile=14.04.02_pc-farm.tex
outputFile=14.04.02_pc-farm.pdf
langSpell=en
markDer=true
srcDir=meetings/14.02.11_cern-pc-farm
srcDir=meetings/14.04.02_pc-farm
7 changes: 4 additions & 3 deletions meetings/14.02.11_cern-pc-farm/pages.tex
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,11 @@ \section*{Network cards}
\section*{PCs}
\begin{frame}{No more special condition PCs from Dell}{}
\begin{block}{There are still some items available from Dell}
\begin{frame}{PC purchasement}{}
No more special condition PCs from Dell
\begin{block}{But there are still some items available from Dell}
\begin{itemize}
\item 48 port SFP+ switch for only 7k\euro (with 2 x 40 GBps uplinks)
\item 48 port SFP+ switch for only 7k\euro (with 2 x 40 Gbps uplinks)
\item 16 port KVM switch for about 1,2 k\euro
\end{itemize}
\end{block}
Expand Down
17 changes: 17 additions & 0 deletions meetings/14.04.02_pc-farm/.svn/all-wcprops
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
K 25
svn:wc:ra_dav:version-url
V 62
/repos/kunzej/!svn/ver/792/talks/meetings/13.03.27_pisa-remote
END
pages.tex
K 25
svn:wc:ra_dav:version-url
V 72
/repos/kunzej/!svn/ver/792/talks/meetings/13.03.27_pisa-remote/pages.tex
END
13.03.27_pisa-remote.tex
K 25
svn:wc:ra_dav:version-url
V 87
/repos/kunzej/!svn/ver/792/talks/meetings/13.03.27_pisa-remote/13.03.27_pisa-remote.tex
END
99 changes: 99 additions & 0 deletions meetings/14.04.02_pc-farm/.svn/entries
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
10

dir
841
https://win.etap-svn/repos/kunzej/talks/meetings/13.03.27_pisa-remote
https://win.etap-svn/repos/kunzej



2013-03-28T11:43:23.529941Z
792
[email protected]














7b75de4d-efc6-422f-b655-f4d30aa840ef

pics
dir

pages.tex
file




2013-11-04T13:31:45.138275Z
1907a38bf341bee4c6be1bd3c92a3c44
2013-03-28T11:43:23.529941Z
792
[email protected]
has-props




















4344

13.03.27_pisa-remote.tex
file




2013-11-04T13:31:45.107262Z
0c023e4af7a4aff1fc12a4429b1dfcbb
2013-03-28T11:43:23.529941Z
792
[email protected]
has-props




















1715

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
K 14
svn:executable
V 1
*
K 13
svn:mime-type
V 10
text/plain
END
5 changes: 5 additions & 0 deletions meetings/14.04.02_pc-farm/.svn/prop-base/pages.tex.svn-base
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
K 13
svn:mime-type
V 10
text/plain
END
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
\input{../../common/header.tex}
\usepackage[ngerman]{babel}
\usepackage{bibgerm}

%
% Paket um LIstings sauber zu formatieren.
%
\usepackage{listings}

% Umlaute für listings
\lstset{
literate= {Ö}{{\"O}}1 {Ä}{{\"A}}1 {Ü}{{\"U}}1 {ß}{{\ss}}2 {ü}{{\"u}}1
{ä}{{\"a}}1 {ö}{{\"o}}1
}

\lstloadlanguages{C++,sh}

\definecolor{darkblue}{rgb}{0,0,.6}
\definecolor{darkred}{rgb}{.6,0,0}
\definecolor{darkgreen}{rgb}{0,.6,0}

\renewcommand{\lstlistingname}{Quell­code}

\definecolor{javared}{rgb}{0.6,0,0} % for strings
\definecolor{javagreen}{rgb}{0.25,0.5,0.35} % comments
\definecolor{javapurple}{rgb}{0.5,0,0.35} % keywords
\definecolor{javadocblue}{rgb}{0.25,0.35,0.75} % javadoc


\AtBeginSection[]{%
\begin{frame}
\tableofcontents[currentsection]
\end{frame}
}

\lstset{%
language=C++,
basicstyle=\ttfamily,
commentstyle=\itshape\color{darkgreen},
keywordstyle=\bfseries\color{darkblue},
stringstyle=\color{darkred},
morecomment=[s][\color{javadocblue}]{/**}{*/},
showspaces=false,
showtabs=false,
columns=fixed,
numbers=left,
frame=none,
numberstyle=\tiny,
breaklines=true,
showstringspaces=false,
xleftmargin=1cm,
captionpos=b,
otherkeywords={$, \{, \}, \[, \], class}
}%s

\title{Implementation of L1 and L2 in the PC farm}
\author{Jonas Kunze}
\date{27.03.2013}

\institute[{Universität Mainz}]{
\inst{} Universität Mainz}
\titlegraphic{\includegraphics[height=3cm]{penguins}}
%\logo{\includegraphics[width=2cm]{na62-logo}}
\subject{NA62 online pc-farm design and implementation}
\keywords{NA62,computing,multithreading,trigger,c++,boost,asio,10g}

\begin{document}
\frame{\titlepage}
%\frame{\tableofcontents}

\input{pages.tex}
\end{document}
142 changes: 142 additions & 0 deletions meetings/14.04.02_pc-farm/.svn/text-base/pages.tex.svn-base
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
\section{L1 computation}

\begin{frame}{L1 Eventbuilding}{}
\begin{block}{L1 Eventbuilding}
L1 trigger executed not before all L0 data has been received \\
$\Rightarrow$ L1 algorithms have access to full event (except LKr data)
\end{block}

\begin{exampleblock}{All detectors processed within one thread}
You can define the (most efficient) order of the algorithms\\
e.g. execute most CPU demanding parts at last
\end{exampleblock}
\end{frame}

\begin{frame}[fragile]
\frametitle{L1 interface}
After successfully collecting all L0 data of one event the following method is
invoked:
\begin{lstlisting}[frame=trBL,caption={}]{}
const uint16_t L1TriggerProcessor::compute(Event* event) {
// Your code comes here
...
return (L0Trigger + L1Trigger<<8);
}
\end{lstlisting}
if L1Trigger==0 the event will be discarded by the framework
\end{frame}


\begin{frame}{Event data structure}{}
\begin{center}
\includegraphics[width=6cm]{event-data-structure}
\end{center}
MEPEvent: The actual raw data struct as received via a MEP. Each
subevent has as many MEPEvents as sources (Tel62 boards) are sending MEPs.
\end{frame}

\begin{frame}[fragile]
\frametitle{Accessing the raw data}
Event has one getter function for each detector:
\begin{lstlisting}[frame=trBL,caption={}]{}
Subevent* muv=event->getMUVSubevent();
for (int p = muv->getNumberOfParts()-1; p >= 0; p--) {
MEPEvent* mepData = muv->getPart(p);
mepData->getSourceID();
mepData->getData();
mepData->getEventLength();
}
\end{lstlisting}
\end{frame}

\begin{frame}[fragile]
\frametitle{L0TP}
Some data has to be taken from the L0TP data:
\begin{lstlisting}[frame=trBL,caption={}]{}
MEPEvent* L0TPEvent = event->getL0TPSubevent()->getPart(0);

//Struct L0TP has to be defined:
L0TP* L0TPData = (L0TP*) L0TPEvent->getData();
event->setFinetime(L0TPData->fineTime);
\end{lstlisting}
\end{frame}

\section{L2 computation}
\begin{frame}[fragile]
\frametitle{L2interface}
After successfully collecting all CREAM data of one event the following method
is invoked with the very same Event object:
\begin{lstlisting}[frame=trBL,caption={}]{}
const uint8_t L2TriggerProcessor::compute(Event* event) {
// Your code comes here
...
return L2Trigger;
}
\end{lstlisting}
Event may be used for L1$\rightarrow$L2 communications
\end{frame}

% \begin{frame}[fragile]
% \frametitle{CREAM data}
% Accessing the CREAM data has to be done by crateID and CREAMID:
% \begin{lstlisting}[frame=trBL,caption={}]{}
% LKREvent* lkrEvent = event->getLKrEvent(crateID, creamID);
% lkrEvent->getData();
% lkrEvent->getEventLength();
% \end{lstlisting}
% \end{frame}

\section{Constraints}
\begin{frame}{Constraints for the trigger implementations}{}
There are no constraints concerning CPU time or memory consumption:
The more you need, the more PCs you have to buy!

\begin{itemize}
\item Do not use any kind of parallelisation without asking me!!!
\item Do not free any memory coming from *event
\item Use Eclipse for development: (code completion, easy debugging, auto
make, refactoring\ldots)
\end{itemize}
\end{frame}

\section{Future approach}
\begin{frame}{Accessing the code}{}
The code (eclipse project) is available under CERN SVN:\\ \\
svn co https://svn.cern.ch/reps/na62-farm/na62-farm \\

Access has to be requested via mail: [email protected]

\begin{block}{Dependencies/Prerequisites}
\begin{enumerate}
\item boost and tcmalloc (run install/install.sh)
\item Root access
\item PCIe network device
\item pf\_ring: (installed via install/install.sh)
\end{enumerate}

I can implement a low performance version to get rid of points 2-4

\end{block}
\end{frame}

\begin{frame}{To be done}{}
\begin{block}{Simulation with MC data}
Only simple Tel62/CREAM simulators exist sending random data
\end{block}
\begin{ergo}
If someone generates MEP files out of MC data I can implement the transmitter
needed to test the L1/L2 algorithms
\end{ergo}
\end{frame}

\section{Summary}
\begin{frame}{Summary}{}
\begin{itemize}
\item You can put your algorithms into na62-farm/l[12]
\item Someone has to manage L[12]TriggerProcessor::compute (order of
algorithms)
\item Someone has to provide me MC data in the MEP format
\item Please request access to the repository the next 10 days!
\item Feel free to: ssh root@na62farm6 "eclipse"
\end{itemize}
\end{frame}
Loading

0 comments on commit bcd6d0d

Please sign in to comment.