\hypertarget{carto_8h}{\section{opal/mca/carto/carto.h File Reference}
\label{carto_8h}\index{opal/mca/carto/carto.\+h@{opal/mca/carto/carto.\+h}}
}


The carto framework suplies an information of the the host structure and connection between the host components i.\+e memory nodes,C\+P\+Us, Ethernet port and inifiniband ports.  


{\ttfamily \#include \char`\"{}opal\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/mca.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/base/base.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/class/opal\+\_\+graph.\+h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structopal__carto__base__node__t}{opal\+\_\+carto\+\_\+base\+\_\+node\+\_\+t}
\item 
struct \hyperlink{structopal__carto__node__distance__t}{opal\+\_\+carto\+\_\+node\+\_\+distance\+\_\+t}
\begin{DoxyCompactList}\small\item\em A structure of node distance from some other node. \end{DoxyCompactList}\item 
struct \hyperlink{structopal__carto__base__component__2__0__0__t}{opal\+\_\+carto\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t}
\begin{DoxyCompactList}\small\item\em Structure for carto components. \end{DoxyCompactList}\item 
struct \hyperlink{structopal__carto__base__module__1__0__0__t}{opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t}
\begin{DoxyCompactList}\small\item\em Structure for carto modules. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define {\bfseries O\+P\+A\+L\+\_\+\+C\+A\+R\+T\+O\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{carto_8h_a42e29ece33c57c10126c847cbb8423b6}{typedef \hyperlink{structopal__graph__t}{opal\+\_\+graph\+\_\+t} \hyperlink{carto_8h_a42e29ece33c57c10126c847cbb8423b6}{opal\+\_\+carto\+\_\+graph\+\_\+t}}\label{carto_8h_a42e29ece33c57c10126c847cbb8423b6}

\begin{DoxyCompactList}\small\item\em type for carto graph \end{DoxyCompactList}\item 
\hypertarget{carto_8h_a87fe3b780ea59b2ae906803ec39a9f77}{typedef struct \\*
\hyperlink{structopal__carto__base__node__t}{opal\+\_\+carto\+\_\+base\+\_\+node\+\_\+t} \hyperlink{carto_8h_a87fe3b780ea59b2ae906803ec39a9f77}{opal\+\_\+carto\+\_\+base\+\_\+node\+\_\+t}}\label{carto_8h_a87fe3b780ea59b2ae906803ec39a9f77}

\begin{DoxyCompactList}\small\item\em A definition of carto node type. \end{DoxyCompactList}\item 
\hypertarget{carto_8h_aab615c0950a195da4bc95146561c3dfc}{typedef struct \\*
\hyperlink{structopal__carto__node__distance__t}{opal\+\_\+carto\+\_\+node\+\_\+distance\+\_\+t} \hyperlink{carto_8h_aab615c0950a195da4bc95146561c3dfc}{opal\+\_\+carto\+\_\+node\+\_\+distance\+\_\+t}}\label{carto_8h_aab615c0950a195da4bc95146561c3dfc}

\begin{DoxyCompactList}\small\item\em A definition of node distance type. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{carto_8h_ad9c2e41ddaa6204d59c4dc453d21f30f}{opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+init\+\_\+1\+\_\+0\+\_\+0\+\_\+fn\+\_\+t} )(void)
\begin{DoxyCompactList}\small\item\em Module initialization function. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{carto_8h_a09ffed73c0203ace817aeeac90347da6}{opal\+\_\+carto\+\_\+base\+\_\+get\+\_\+host\+\_\+graph\+\_\+fn\+\_\+t} )(\hyperlink{carto_8h_a42e29ece33c57c10126c847cbb8423b6}{opal\+\_\+carto\+\_\+graph\+\_\+t} $\ast$$\ast$graph, const char $\ast$graph\+\_\+type)
\begin{DoxyCompactList}\small\item\em Get the local host graph. \end{DoxyCompactList}\item 
\hypertarget{carto_8h_a692c534cb9af7f2a8751bd8ad99112b6}{typedef void($\ast$ \hyperlink{carto_8h_a692c534cb9af7f2a8751bd8ad99112b6}{opal\+\_\+carto\+\_\+base\+\_\+free\+\_\+graph\+\_\+fn\+\_\+t} )(\hyperlink{carto_8h_a42e29ece33c57c10126c847cbb8423b6}{opal\+\_\+carto\+\_\+graph\+\_\+t} $\ast$graph)}\label{carto_8h_a692c534cb9af7f2a8751bd8ad99112b6}

\begin{DoxyCompactList}\small\item\em Frre a graph. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{carto_8h_a04b80b791c27909f90b86ae6b5042e0a}{opal\+\_\+carto\+\_\+base\+\_\+get\+\_\+nodes\+\_\+distance\+\_\+fn\+\_\+t} )(\hyperlink{carto_8h_a42e29ece33c57c10126c847cbb8423b6}{opal\+\_\+carto\+\_\+graph\+\_\+t} $\ast$graph, \hyperlink{structopal__carto__base__node__t}{opal\+\_\+carto\+\_\+base\+\_\+node\+\_\+t} $\ast$start, const char $\ast$node\+\_\+type, \hyperlink{structopal__value__array__t}{opal\+\_\+value\+\_\+array\+\_\+t} $\ast$distance\+\_\+)
\begin{DoxyCompactList}\small\item\em Get the distance (weight) from a start node to all other nodes. \end{DoxyCompactList}\item 
\hypertarget{carto_8h_a100fc8292cf33eff8025bd9bfeba8fa8}{typedef uint32\+\_\+t($\ast$ \hyperlink{carto_8h_a100fc8292cf33eff8025bd9bfeba8fa8}{opal\+\_\+carto\+\_\+base\+\_\+spf\+\_\+fn\+\_\+t} )(\hyperlink{carto_8h_a42e29ece33c57c10126c847cbb8423b6}{opal\+\_\+carto\+\_\+graph\+\_\+t} $\ast$graph, \hyperlink{structopal__carto__base__node__t}{opal\+\_\+carto\+\_\+base\+\_\+node\+\_\+t} $\ast$start, \hyperlink{structopal__carto__base__node__t}{opal\+\_\+carto\+\_\+base\+\_\+node\+\_\+t} $\ast$end)}\label{carto_8h_a100fc8292cf33eff8025bd9bfeba8fa8}

\begin{DoxyCompactList}\small\item\em find the distance between two nodes. \end{DoxyCompactList}\item 
\hypertarget{carto_8h_a12c856946e5c245a9e1e524744e66e10}{typedef \hyperlink{structopal__carto__base__node__t}{opal\+\_\+carto\+\_\+base\+\_\+node\+\_\+t} $\ast$($\ast$ \hyperlink{carto_8h_a12c856946e5c245a9e1e524744e66e10}{opal\+\_\+carto\+\_\+base\+\_\+find\+\_\+node\+\_\+fn\+\_\+t} )(\hyperlink{carto_8h_a42e29ece33c57c10126c847cbb8423b6}{opal\+\_\+carto\+\_\+graph\+\_\+t} $\ast$graph, const char $\ast$node\+\_\+name)}\label{carto_8h_a12c856946e5c245a9e1e524744e66e10}

\begin{DoxyCompactList}\small\item\em Find a node in the graph. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{carto_8h_a63e2a85115ea1848739bf748ac65d826}{opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t} )(void)
\begin{DoxyCompactList}\small\item\em Module finalize function. \end{DoxyCompactList}\item 
\hypertarget{carto_8h_a98914e730afee0d77cf94984a4c7726d}{typedef struct \\*
\hyperlink{structopal__carto__base__component__2__0__0__t}{opal\+\_\+carto\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t} \hyperlink{carto_8h_a98914e730afee0d77cf94984a4c7726d}{opal\+\_\+carto\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t}}\label{carto_8h_a98914e730afee0d77cf94984a4c7726d}

\begin{DoxyCompactList}\small\item\em Convenience typedef. \end{DoxyCompactList}\item 
\hypertarget{carto_8h_a29f55c5f675b83f2752daae788c2fa74}{typedef struct \\*
\hyperlink{structopal__carto__base__component__2__0__0__t}{opal\+\_\+carto\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t} {\bfseries opal\+\_\+carto\+\_\+base\+\_\+component\+\_\+t}}\label{carto_8h_a29f55c5f675b83f2752daae788c2fa74}

\item 
\hypertarget{carto_8h_a397dc46511af11ecc0d934210fd340c9}{typedef struct \\*
\hyperlink{structopal__carto__base__module__1__0__0__t}{opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t} \hyperlink{carto_8h_a397dc46511af11ecc0d934210fd340c9}{opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t}}\label{carto_8h_a397dc46511af11ecc0d934210fd340c9}

\begin{DoxyCompactList}\small\item\em Convenience typedef. \end{DoxyCompactList}\item 
\hypertarget{carto_8h_a8331173c497571282829681cb95a55f7}{typedef struct \\*
\hyperlink{structopal__carto__base__module__1__0__0__t}{opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t} {\bfseries opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+t}}\label{carto_8h_a8331173c497571282829681cb95a55f7}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
The carto framework suplies an information of the the host structure and connection between the host components i.\+e memory nodes,C\+P\+Us, Ethernet port and inifiniband ports. 



\subsection{Macro Definition Documentation}
\hypertarget{carto_8h_a6644b12e0a7dcf9515a1cecc8505362a}{\index{carto.\+h@{carto.\+h}!O\+P\+A\+L\+\_\+\+C\+A\+R\+T\+O\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0@{O\+P\+A\+L\+\_\+\+C\+A\+R\+T\+O\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}}
\index{O\+P\+A\+L\+\_\+\+C\+A\+R\+T\+O\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0@{O\+P\+A\+L\+\_\+\+C\+A\+R\+T\+O\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}!carto.\+h@{carto.\+h}}
\subsubsection[{O\+P\+A\+L\+\_\+\+C\+A\+R\+T\+O\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}]{\setlength{\rightskip}{0pt plus 5cm}\#define O\+P\+A\+L\+\_\+\+C\+A\+R\+T\+O\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}}\label{carto_8h_a6644b12e0a7dcf9515a1cecc8505362a}
{\bfseries Value\+:}
\begin{DoxyCode}
MCA\_BASE\_VERSION\_2\_0\_0, \(\backslash\)
    \textcolor{stringliteral}{"carto"}, 2, 0, 0
\end{DoxyCode}


\subsection{Typedef Documentation}
\hypertarget{carto_8h_a09ffed73c0203ace817aeeac90347da6}{\index{carto.\+h@{carto.\+h}!opal\+\_\+carto\+\_\+base\+\_\+get\+\_\+host\+\_\+graph\+\_\+fn\+\_\+t@{opal\+\_\+carto\+\_\+base\+\_\+get\+\_\+host\+\_\+graph\+\_\+fn\+\_\+t}}
\index{opal\+\_\+carto\+\_\+base\+\_\+get\+\_\+host\+\_\+graph\+\_\+fn\+\_\+t@{opal\+\_\+carto\+\_\+base\+\_\+get\+\_\+host\+\_\+graph\+\_\+fn\+\_\+t}!carto.\+h@{carto.\+h}}
\subsubsection[{opal\+\_\+carto\+\_\+base\+\_\+get\+\_\+host\+\_\+graph\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ opal\+\_\+carto\+\_\+base\+\_\+get\+\_\+host\+\_\+graph\+\_\+fn\+\_\+t)({\bf opal\+\_\+carto\+\_\+graph\+\_\+t} $\ast$$\ast$graph, const char $\ast$graph\+\_\+type)}}\label{carto_8h_a09ffed73c0203ace817aeeac90347da6}


Get the local host graph. 

you can reduce the graph for only the nodes that interst you using the node type. \hypertarget{carto_8h_a04b80b791c27909f90b86ae6b5042e0a}{\index{carto.\+h@{carto.\+h}!opal\+\_\+carto\+\_\+base\+\_\+get\+\_\+nodes\+\_\+distance\+\_\+fn\+\_\+t@{opal\+\_\+carto\+\_\+base\+\_\+get\+\_\+nodes\+\_\+distance\+\_\+fn\+\_\+t}}
\index{opal\+\_\+carto\+\_\+base\+\_\+get\+\_\+nodes\+\_\+distance\+\_\+fn\+\_\+t@{opal\+\_\+carto\+\_\+base\+\_\+get\+\_\+nodes\+\_\+distance\+\_\+fn\+\_\+t}!carto.\+h@{carto.\+h}}
\subsubsection[{opal\+\_\+carto\+\_\+base\+\_\+get\+\_\+nodes\+\_\+distance\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ opal\+\_\+carto\+\_\+base\+\_\+get\+\_\+nodes\+\_\+distance\+\_\+fn\+\_\+t)({\bf opal\+\_\+carto\+\_\+graph\+\_\+t} $\ast$graph, {\bf opal\+\_\+carto\+\_\+base\+\_\+node\+\_\+t} $\ast$start, const char $\ast$node\+\_\+type, {\bf opal\+\_\+value\+\_\+array\+\_\+t} $\ast$distance\+\_\+)}}\label{carto_8h_a04b80b791c27909f90b86ae6b5042e0a}


Get the distance (weight) from a start node to all other nodes. 

you can reduce the list to the list to the node types that intersts you. \hypertarget{carto_8h_a63e2a85115ea1848739bf748ac65d826}{\index{carto.\+h@{carto.\+h}!opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t@{opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t}}
\index{opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t@{opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t}!carto.\+h@{carto.\+h}}
\subsubsection[{opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t)(void)}}\label{carto_8h_a63e2a85115ea1848739bf748ac65d826}


Module finalize function. 

Invoked by the base on the selected module when the carto framework is being shut down. \hypertarget{carto_8h_ad9c2e41ddaa6204d59c4dc453d21f30f}{\index{carto.\+h@{carto.\+h}!opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+init\+\_\+1\+\_\+0\+\_\+0\+\_\+fn\+\_\+t@{opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+init\+\_\+1\+\_\+0\+\_\+0\+\_\+fn\+\_\+t}}
\index{opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+init\+\_\+1\+\_\+0\+\_\+0\+\_\+fn\+\_\+t@{opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+init\+\_\+1\+\_\+0\+\_\+0\+\_\+fn\+\_\+t}!carto.\+h@{carto.\+h}}
\subsubsection[{opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+init\+\_\+1\+\_\+0\+\_\+0\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ opal\+\_\+carto\+\_\+base\+\_\+module\+\_\+init\+\_\+1\+\_\+0\+\_\+0\+\_\+fn\+\_\+t)(void)}}\label{carto_8h_ad9c2e41ddaa6204d59c4dc453d21f30f}


Module initialization function. 

Should return O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S. 