Skip to content

Commit

Permalink
PC farm purchasement meeting@CERN
Browse files Browse the repository at this point in the history
  • Loading branch information
Jonas committed Feb 10, 2014
1 parent a7478fa commit bc898a5
Show file tree
Hide file tree
Showing 24 changed files with 1,245 additions and 4 deletions.
8 changes: 4 additions & 4 deletions .texlipse
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
#TeXlipse project settings
#Wed Mar 27 09:35:33 CET 2013
#Mon Feb 10 15:35:52 CET 2014
markTmpDer=true
builderNum=2
outputDir=
makeIndSty=
bibrefDir=
outputFormat=pdf
tempDir=.tmp
mainTexFile=13.03.27_pisa-remote.tex
outputFile=13.03.27_pisa-remote.pdf
mainTexFile=14.02.11_cern-pc-farm.tex
outputFile=14.02.11_cern-pc-farm.pdf
langSpell=en
markDer=true
srcDir=meetings/13.03.27_pisa-remote
srcDir=meetings/14.02.11_cern-pc-farm
Binary file removed 11_11_22_l0l1.pdf
Binary file not shown.
Binary file removed 11_12_05_etap.pdf
Binary file not shown.
Binary file removed 12.02.08_cern.pdf
Binary file not shown.
Binary file removed 12.08.29_siena.pdf
Binary file not shown.
Binary file removed 12_02_29_dpg.pdf
Binary file not shown.
Binary file removed 12_03_29_west.pdf
Binary file not shown.
Binary file removed IEEE_NSS.pdf
Binary file not shown.
17 changes: 17 additions & 0 deletions meetings/14.02.11_cern-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.02.11_cern-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
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.02.11_cern-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 bc898a5

Please sign in to comment.