blob: 0967f15bc1acd0010dad100148412e7118b49e44 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_292) on Tue Jun 15 06:11:22 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NvidiaGPUPluginForRuntimeV2 (Apache Hadoop YARN NodeManager 3.3.1 API)</title>
<meta name="date" content="2021-06-15">
<link rel="stylesheet" type="text/css" href="../../../../../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="NvidiaGPUPluginForRuntimeV2 (Apache Hadoop YARN NodeManager 3.3.1 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NvidiaGPUPluginForRuntimeV2.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.DeviceLinkType.html" title="enum in org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.com.nvidia"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../../index.html?org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html" target="_top">Frames</a></li>
<li><a href="NvidiaGPUPluginForRuntimeV2.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.com.nvidia</div>
<h2 title="Class NvidiaGPUPluginForRuntimeV2" class="title">Class NvidiaGPUPluginForRuntimeV2</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.com.nvidia.NvidiaGPUPluginForRuntimeV2</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePlugin.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">DevicePlugin</a>, <a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePluginScheduler.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">DevicePluginScheduler</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">NvidiaGPUPluginForRuntimeV2</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePlugin.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">DevicePlugin</a>, <a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePluginScheduler.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">DevicePluginScheduler</a></pre>
<div class="block">Nvidia GPU plugin supporting both Nvidia container runtime v2 for Docker and
non-Docker container.
It has topology aware as well as simple scheduling ability.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.DeviceLinkType.html" title="enum in org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.com.nvidia">NvidiaGPUPluginForRuntimeV2.DeviceLinkType</a></span></code>
<div class="block">Different type of link.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.NvidiaCommandExecutor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.com.nvidia">NvidiaGPUPluginForRuntimeV2.NvidiaCommandExecutor</a></span></code>
<div class="block">A shell wrapper class easy for test.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#NV_RESOURCE_NAME">NV_RESOURCE_NAME</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#TOPOLOGY_POLICY_ENV_KEY">TOPOLOGY_POLICY_ENV_KEY</a></span></code>
<div class="block">The container can set this environment variable.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#TOPOLOGY_POLICY_PACK">TOPOLOGY_POLICY_PACK</a></span></code>
<div class="block">Schedule policy that prefer the faster GPU-GPU communication.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#TOPOLOGY_POLICY_SPREAD">TOPOLOGY_POLICY_SPREAD</a></span></code>
<div class="block">Schedule policy that prefer the faster CPU-GPU communication.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#NvidiaGPUPluginForRuntimeV2--">NvidiaGPUPluginForRuntimeV2</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#allocateDevices-java.util.Set-int-java.util.Map-">allocateDevices</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;availableDevices,
int&nbsp;count,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;envs)</code>
<div class="block">Called when allocating devices.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#basicSchedule-java.util.Set-int-java.util.Set-">basicSchedule</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;allocation,
int&nbsp;count,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;availableDevices)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#computeCostOfDevices-org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin.Device:A-">computeCostOfDevices</a></span>(<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>[]&nbsp;devices)</code>
<div class="block">The cost function used to calculate costs of a sub set of devices.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#getCostTable--">getCostTable</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#getDevicePairToWeight--">getDevicePairToWeight</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#getDevices--">getDevices</a></span>()</code>
<div class="block">Called when update node resource.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DeviceRegisterRequest.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">DeviceRegisterRequest</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#getRegisterRequestInfo--">getRegisterRequestInfo</a></span>()</code>
<div class="block">Called first when device plugin framework wants to register.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#initCostTable--">initCostTable</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#isTopoInitialized--">isTopoInitialized</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DeviceRuntimeSpec.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">DeviceRuntimeSpec</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#onDevicesAllocated-java.util.Set-org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin.YarnRuntimeType-">onDevicesAllocated</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;allocatedDevices,
<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/YarnRuntimeType.html" title="enum in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">YarnRuntimeType</a>&nbsp;yarnRuntime)</code>
<div class="block">Asking how these devices should be prepared/used
before/when container launch.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#onDevicesReleased-java.util.Set-">onDevicesReleased</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;releasedDevices)</code>
<div class="block">Called after device released.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#parseTopo-java.lang.String-java.util.Map-">parseTopo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;topo,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;deviceLinkToWeight)</code>
<div class="block">A typical sample topo output:
GPU0 GPU1 GPU2 GPU3 CPU Affinity
GPU0 X PHB SOC SOC 0-31
GPU1 PHB X SOC SOC 0-31
GPU2 SOC SOC X PHB 0-31
GPU3 SOC SOC PHB X 0-31
Legend:
X = Self
SOC = Connection traversing PCIe as well as the SMP link between
CPU sockets(e.g.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#setPathOfGpuBinary-java.lang.String-">setPathOfGpuBinary</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;pOfGpuBinary)</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#setShellExecutor-org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.com.nvidia.NvidiaGPUPluginForRuntimeV2.NvidiaCommandExecutor-">setShellExecutor</a></span>(<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.NvidiaCommandExecutor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.com.nvidia">NvidiaGPUPluginForRuntimeV2.NvidiaCommandExecutor</a>&nbsp;shellExecutor)</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html#topologyAwareSchedule-java.util.Set-int-java.util.Map-java.util.Set-java.util.Map-">topologyAwareSchedule</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;allocation,
int&nbsp;count,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;envs,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;availableDevices,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&gt;&gt;&nbsp;cTable)</code>
<div class="block">Topology Aware schedule algorithm.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>public static final&nbsp;org.slf4j.Logger LOG</pre>
</li>
</ul>
<a name="NV_RESOURCE_NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NV_RESOURCE_NAME</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> NV_RESOURCE_NAME</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../../../../constant-values.html#org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.com.nvidia.NvidiaGPUPluginForRuntimeV2.NV_RESOURCE_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TOPOLOGY_POLICY_ENV_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TOPOLOGY_POLICY_ENV_KEY</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TOPOLOGY_POLICY_ENV_KEY</pre>
<div class="block">The container can set this environment variable.
To tell the scheduler what's the policy to use when do scheduling</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../../../../constant-values.html#org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.com.nvidia.NvidiaGPUPluginForRuntimeV2.TOPOLOGY_POLICY_ENV_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TOPOLOGY_POLICY_PACK">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TOPOLOGY_POLICY_PACK</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TOPOLOGY_POLICY_PACK</pre>
<div class="block">Schedule policy that prefer the faster GPU-GPU communication.
Suitable for heavy GPU computation workload generally.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../../../../constant-values.html#org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.com.nvidia.NvidiaGPUPluginForRuntimeV2.TOPOLOGY_POLICY_PACK">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TOPOLOGY_POLICY_SPREAD">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>TOPOLOGY_POLICY_SPREAD</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TOPOLOGY_POLICY_SPREAD</pre>
<div class="block">Schedule policy that prefer the faster CPU-GPU communication.
Suitable for heavy CPU-GPU IO operations generally.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../../../../constant-values.html#org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.com.nvidia.NvidiaGPUPluginForRuntimeV2.TOPOLOGY_POLICY_SPREAD">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="NvidiaGPUPluginForRuntimeV2--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>NvidiaGPUPluginForRuntimeV2</h4>
<pre>public&nbsp;NvidiaGPUPluginForRuntimeV2()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getRegisterRequestInfo--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRegisterRequestInfo</h4>
<pre>public&nbsp;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DeviceRegisterRequest.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">DeviceRegisterRequest</a>&nbsp;getRegisterRequestInfo()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePlugin.html#getRegisterRequestInfo--">DevicePlugin</a></code></span></div>
<div class="block">Called first when device plugin framework wants to register.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePlugin.html#getRegisterRequestInfo--">getRegisterRequestInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePlugin.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">DevicePlugin</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>DeviceRegisterRequest <a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DeviceRegisterRequest.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin"><code>DeviceRegisterRequest</code></a></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="getDevices--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDevices</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;getDevices()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePlugin.html#getDevices--">DevicePlugin</a></code></span></div>
<div class="block">Called when update node resource.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePlugin.html#getDevices--">getDevices</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePlugin.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">DevicePlugin</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a set of <a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin"><code>Device</code></a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeSet.html?is-external=true" title="class or interface in java.util"><code>TreeSet</code></a> recommended</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="onDevicesAllocated-java.util.Set-org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin.YarnRuntimeType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onDevicesAllocated</h4>
<pre>public&nbsp;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DeviceRuntimeSpec.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">DeviceRuntimeSpec</a>&nbsp;onDevicesAllocated(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;allocatedDevices,
<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/YarnRuntimeType.html" title="enum in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">YarnRuntimeType</a>&nbsp;yarnRuntime)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePlugin.html#onDevicesAllocated-java.util.Set-org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin.YarnRuntimeType-">DevicePlugin</a></code></span></div>
<div class="block">Asking how these devices should be prepared/used
before/when container launch. A plugin can do some tasks in its own or
define it in DeviceRuntimeSpec to let the framework do it.
For instance, define <code>VolumeSpec</code> to let the
framework to create volume before running container.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePlugin.html#onDevicesAllocated-java.util.Set-org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin.YarnRuntimeType-">onDevicesAllocated</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePlugin.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">DevicePlugin</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>allocatedDevices</code> - A set of allocated <a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin"><code>Device</code></a>.</dd>
<dd><code>yarnRuntime</code> - Indicate which runtime YARN will use
Could be <code>RUNTIME_DEFAULT</code> or <code>RUNTIME_DOCKER</code>
in <a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DeviceRuntimeSpec.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin"><code>DeviceRuntimeSpec</code></a> constants. The default means YARN's
non-docker container runtime is used. The docker means YARN's
docker container runtime is used.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DeviceRuntimeSpec.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin"><code>DeviceRuntimeSpec</code></a> description about environment,
<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/VolumeSpec.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin"><code>VolumeSpec</code></a>, <a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/MountVolumeSpec.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin"><code>MountVolumeSpec</code></a>. etc</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="onDevicesReleased-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onDevicesReleased</h4>
<pre>public&nbsp;void&nbsp;onDevicesReleased(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;releasedDevices)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePlugin.html#onDevicesReleased-java.util.Set-">DevicePlugin</a></code></span></div>
<div class="block">Called after device released.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePlugin.html#onDevicesReleased-java.util.Set-">onDevicesReleased</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePlugin.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">DevicePlugin</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>releasedDevices</code> - A set of released devices</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="allocateDevices-java.util.Set-int-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocateDevices</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;allocateDevices(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;availableDevices,
int&nbsp;count,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;envs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePluginScheduler.html#allocateDevices-java.util.Set-int-java.util.Map-">DevicePluginScheduler</a></code></span></div>
<div class="block">Called when allocating devices. The framework will do all device book
keeping and fail recovery. So this hook could be stateless and only do
scheduling based on available devices passed in. It could be
invoked multiple times by the framework. The hint in environment variables
passed in could be potentially used in making better scheduling decision.
For instance, GPU scheduling might support different kind of policy. The
container can set it through environment variables.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePluginScheduler.html#allocateDevices-java.util.Set-int-java.util.Map-">allocateDevices</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/DevicePluginScheduler.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">DevicePluginScheduler</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>availableDevices</code> - Devices allowed to be chosen from.</dd>
<dd><code>count</code> - Number of device to be allocated.</dd>
<dd><code>envs</code> - Environment variables of the container.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A set of <a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin"><code>Device</code></a> allocated</dd>
</dl>
</li>
</ul>
<a name="initCostTable--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initCostTable</h4>
<pre>public&nbsp;void&nbsp;initCostTable()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="computeCostOfDevices-org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin.Device:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeCostOfDevices</h4>
<pre>public&nbsp;int&nbsp;computeCostOfDevices(<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>[]&nbsp;devices)</pre>
<div class="block">The cost function used to calculate costs of a sub set of devices.
It calculate link weight of each pair in non-duplicated combination of
devices.</div>
</li>
</ul>
<a name="topologyAwareSchedule-java.util.Set-int-java.util.Map-java.util.Set-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>topologyAwareSchedule</h4>
<pre>public&nbsp;void&nbsp;topologyAwareSchedule(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;allocation,
int&nbsp;count,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;envs,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;availableDevices,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&gt;&gt;&nbsp;cTable)</pre>
<div class="block">Topology Aware schedule algorithm.
It doesn't consider CPU affinity or NUMA or bus bandwidths.
It support two plicy: "spread" and "pack" which can be set by container's
environment variable. Use pack by default which means prefer the faster
GPU-GPU. "Spread" means prefer the faster CPU-GPU.
It can potentially be extend to take GPU attribute like GPU chip memory
into consideration.</div>
</li>
</ul>
<a name="basicSchedule-java.util.Set-int-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>basicSchedule</h4>
<pre>public&nbsp;void&nbsp;basicSchedule(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;allocation,
int&nbsp;count,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;&nbsp;availableDevices)</pre>
</li>
</ul>
<a name="parseTopo-java.lang.String-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseTopo</h4>
<pre>public&nbsp;void&nbsp;parseTopo(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;topo,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;deviceLinkToWeight)</pre>
<div class="block">A typical sample topo output:
GPU0 GPU1 GPU2 GPU3 CPU Affinity
GPU0 X PHB SOC SOC 0-31
GPU1 PHB X SOC SOC 0-31
GPU2 SOC SOC X PHB 0-31
GPU3 SOC SOC PHB X 0-31
Legend:
X = Self
SOC = Connection traversing PCIe as well as the SMP link between
CPU sockets(e.g. QPI)
PHB = Connection traversing PCIe as well as a PCIe Host Bridge
(typically the CPU)
PXB = Connection traversing multiple PCIe switches
(without traversing the PCIe Host Bridge)
PIX = Connection traversing a single PCIe switch
NV# = Connection traversing a bonded set of # NVLinks」</div>
</li>
</ul>
<a name="setPathOfGpuBinary-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPathOfGpuBinary</h4>
<pre>public&nbsp;void&nbsp;setPathOfGpuBinary(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;pOfGpuBinary)</pre>
</li>
</ul>
<a name="setShellExecutor-org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.com.nvidia.NvidiaGPUPluginForRuntimeV2.NvidiaCommandExecutor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setShellExecutor</h4>
<pre>public&nbsp;void&nbsp;setShellExecutor(<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.NvidiaCommandExecutor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.com.nvidia">NvidiaGPUPluginForRuntimeV2.NvidiaCommandExecutor</a>&nbsp;shellExecutor)</pre>
</li>
</ul>
<a name="isTopoInitialized--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTopoInitialized</h4>
<pre>public&nbsp;boolean&nbsp;isTopoInitialized()</pre>
</li>
</ul>
<a name="getCostTable--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCostTable</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/api/deviceplugin/Device.html" title="class in org.apache.hadoop.yarn.server.nodemanager.api.deviceplugin">Device</a>&gt;,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&gt;&gt;&nbsp;getCostTable()</pre>
</li>
</ul>
<a name="getDevicePairToWeight--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getDevicePairToWeight</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;getDevicePairToWeight()</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NvidiaGPUPluginForRuntimeV2.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../../../../../org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.DeviceLinkType.html" title="enum in org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.com.nvidia"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../../index.html?org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/com/nvidia/NvidiaGPUPluginForRuntimeV2.html" target="_top">Frames</a></li>
<li><a href="NvidiaGPUPluginForRuntimeV2.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2008&#x2013;2021 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>