\hypertarget{rmaps_8h}{\section{orte/mca/rmaps/rmaps.h File Reference}
\label{rmaps_8h}\index{orte/mca/rmaps/rmaps.\+h@{orte/mca/rmaps/rmaps.\+h}}
}


The Open R\+T\+E Resource M\+A\+Pping Subsystem (R\+M\+A\+P\+S)  


{\ttfamily \#include \char`\"{}orte\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/types.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/mca.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/runtime/orte\+\_\+globals.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/mca/rmaps/rmaps\+\_\+types.\+h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structorte__rmaps__t}{orte\+\_\+rmaps\+\_\+t}
\item 
struct \hyperlink{structorte__rmaps__base__module__1__3__0__t}{orte\+\_\+rmaps\+\_\+base\+\_\+module\+\_\+1\+\_\+3\+\_\+0\+\_\+t}
\item 
struct \hyperlink{structorte__rmaps__base__component__2__0__0__t}{orte\+\_\+rmaps\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t}
\begin{DoxyCompactList}\small\item\em rmaps component version 1.\+3.\+0 \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{rmaps_8h_a1e596adadb1566d2f92a8f59d991c8a6}{typedef int($\ast$ \hyperlink{rmaps_8h_a1e596adadb1566d2f92a8f59d991c8a6}{orte\+\_\+rmaps\+\_\+base\+\_\+module\+\_\+map\+\_\+fn\+\_\+t} )(\hyperlink{structorte__job__t}{orte\+\_\+job\+\_\+t} $\ast$jdata)}\label{rmaps_8h_a1e596adadb1566d2f92a8f59d991c8a6}

\begin{DoxyCompactList}\small\item\em R\+M\+A\+P\+S module functions -\/ these are not accessible to the outside world, but are defined here by convention. \end{DoxyCompactList}\item 
\hypertarget{rmaps_8h_acc816a450be23981c7fbcef78991fbbf}{typedef struct \\*
\hyperlink{structorte__rmaps__base__module__1__3__0__t}{orte\+\_\+rmaps\+\_\+base\+\_\+module\+\_\+1\+\_\+3\+\_\+0\+\_\+t} \hyperlink{rmaps_8h_acc816a450be23981c7fbcef78991fbbf}{orte\+\_\+rmaps\+\_\+base\+\_\+module\+\_\+1\+\_\+3\+\_\+0\+\_\+t}}\label{rmaps_8h_acc816a450be23981c7fbcef78991fbbf}

\begin{DoxyCompactList}\small\item\em Convenience typedef. \end{DoxyCompactList}\item 
\hypertarget{rmaps_8h_ac36e6eceb9ed3b3d1ae209a87de89b26}{typedef \\*
\hyperlink{structorte__rmaps__base__module__1__3__0__t}{orte\+\_\+rmaps\+\_\+base\+\_\+module\+\_\+1\+\_\+3\+\_\+0\+\_\+t} \hyperlink{rmaps_8h_ac36e6eceb9ed3b3d1ae209a87de89b26}{orte\+\_\+rmaps\+\_\+base\+\_\+module\+\_\+t}}\label{rmaps_8h_ac36e6eceb9ed3b3d1ae209a87de89b26}

\begin{DoxyCompactList}\small\item\em Convenience typedef. \end{DoxyCompactList}\item 
\hypertarget{rmaps_8h_a2623ac9e2e83d21487f6443703a08299}{typedef struct \\*
\hyperlink{structorte__rmaps__base__component__2__0__0__t}{orte\+\_\+rmaps\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t} \hyperlink{rmaps_8h_a2623ac9e2e83d21487f6443703a08299}{orte\+\_\+rmaps\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t}}\label{rmaps_8h_a2623ac9e2e83d21487f6443703a08299}

\begin{DoxyCompactList}\small\item\em Convenience typedef. \end{DoxyCompactList}\item 
\hypertarget{rmaps_8h_a62918be51bdb6f974e9597253a459d6e}{typedef \\*
\hyperlink{structorte__rmaps__base__component__2__0__0__t}{orte\+\_\+rmaps\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t} \hyperlink{rmaps_8h_a62918be51bdb6f974e9597253a459d6e}{orte\+\_\+rmaps\+\_\+base\+\_\+component\+\_\+t}}\label{rmaps_8h_a62918be51bdb6f974e9597253a459d6e}

\begin{DoxyCompactList}\small\item\em Convenience typedef. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{rmaps_8h_a3a06c6ddbfa11e0b17c43988376cfbb0}{B\+E\+G\+I\+N\+\_\+\+C\+\_\+\+D\+E\+C\+L\+S typedef int($\ast$ \hyperlink{rmaps_8h_a3a06c6ddbfa11e0b17c43988376cfbb0}{orte\+\_\+rmaps\+\_\+base\+\_\+\+A\+P\+I\+\_\+map\+\_\+fn\+\_\+t} )(\hyperlink{structorte__job__t}{orte\+\_\+job\+\_\+t} $\ast$jdata)}\label{rmaps_8h_a3a06c6ddbfa11e0b17c43988376cfbb0}

\begin{DoxyCompactList}\small\item\em Public A\+P\+I. \end{DoxyCompactList}\item 
\hypertarget{rmaps_8h_aed86ab63116c2e0f7a6acf4e39f8dd2c}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C \hyperlink{structorte__rmaps__t}{orte\+\_\+rmaps\+\_\+t} {\bfseries orte\+\_\+rmaps}}\label{rmaps_8h_aed86ab63116c2e0f7a6acf4e39f8dd2c}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
The Open R\+T\+E Resource M\+A\+Pping Subsystem (R\+M\+A\+P\+S) 

The resource mapping subsystem is responsible for mapping processes to specific nodes/cpus within a given job. In many systems, this functionality will not be supported -\/ the system will map processes wherever it chooses and does not allow the user to specify the mapping. R\+M\+A\+P\+S components, therefore, provide services for those systems that do permit such mappings.

R\+M\+A\+P\+S checks the M\+C\+A parameters to see if a mapping algorithm has been specified. If the user selected a mapping algorithm, the indicated R\+M\+A\+P\+S component will take information from the registry to determine the number of applications/processes to be run, and the identified resources that have been allocated to this job. The selected R\+M\+A\+P component will then assign processes to resources according to its algorithm, with the results stored on the appropriate job segment -\/ the assigned nodename for each process is stored in that respective process' container on the segment. 