blob: c1c5403d756c74422b37d7582a702ea3f0566495 [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_252) on Thu Jun 18 13:32:48 CEST 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>OptimizerRuleBased (SystemDS 2.0.0-SNAPSHOT API)</title>
<meta name="date" content="2020-06-18">
<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="OptimizerRuleBased (SystemDS 2.0.0-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":9,"i12":9,"i13":10,"i14":9,"i15":10,"i16":10,"i17":10,"i18":10,"i19":9,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/OptimizerRuleBased.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><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerHeuristic.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html" target="_top">Frames</a></li>
<li><a href="OptimizerRuleBased.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.classes.inherited.from.class.org.apache.sysds.runtime.controlprogram.parfor.opt.Optimizer">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.sysds.runtime.controlprogram.parfor.opt</div>
<h2 title="Class OptimizerRuleBased" class="title">Class OptimizerRuleBased</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><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">org.apache.sysds.runtime.controlprogram.parfor.opt.Optimizer</a></li>
<li>
<ul class="inheritance">
<li>org.apache.sysds.runtime.controlprogram.parfor.opt.OptimizerRuleBased</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerConstrained.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptimizerConstrained</a>, <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerHeuristic.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptimizerHeuristic</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">OptimizerRuleBased</span>
extends <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">Optimizer</a></pre>
<div class="block">Rule-Based ParFor Optimizer (time: O(n)):
Applied rule-based rewrites
- 1) rewrite set data partitioner (incl. recompile RIX)
- 2) rewrite remove unnecessary compare matrix
- 3) rewrite result partitioning (incl. recompile LIX)
- 4) rewrite set execution strategy
- 5) rewrite set operations exec type (incl. recompile)
- 6) rewrite use data colocation
- 7) rewrite set partition replication factor
- 8) rewrite set export replication factor
- 9) rewrite use nested parallelism
- 10) rewrite set degree of parallelism
- 11) rewrite set task partitioner
- 12) rewrite set fused data partitioning and execution
- 13) rewrite transpose vector operations (for sparse)
- 14) rewrite set in-place result indexing
- 15) rewrite disable caching (prevent sparse serialization)
- 16) rewrite enable runtime piggybacking
- 17) rewrite inject spark loop checkpointing
- 18) rewrite inject spark repartition (for zipmm)
- 19) rewrite set spark eager rdd caching
- 20) rewrite set result merge
- 21) rewrite set recompile memory budget
- 22) rewrite remove recursive parfor
- 23) rewrite remove unnecessary parfor
TODO fuse also result merge into fused data partitioning and execute
(for writing the result directly from execute we need to partition
columns/rows according to blocksize -&gt; rewrite (only applicable if
numCols/blocksize&gt;numreducers)+custom MR partitioner)
TODO take remote memory into account in data/result partitioning rewrites (smaller/larger)
TODO memory estimates with shared reads
TODO memory estimates of result merge into plan tree
TODO blockwise partitioning</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>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.sysds.runtime.controlprogram.parfor.opt.Optimizer">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.sysds.runtime.controlprogram.parfor.opt.<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">Optimizer</a></h3>
<code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.CostModelType.html" title="enum in org.apache.sysds.runtime.controlprogram.parfor.opt">Optimizer.CostModelType</a>, <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.PlanInputType.html" title="enum in org.apache.sysds.runtime.controlprogram.parfor.opt">Optimizer.PlanInputType</a></code></li>
</ul>
</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>protected <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/CostEstimator.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">CostEstimator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#Z:Z_cost">_cost</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#Z:Z_lk">_lk</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#Z:Z_lkmaxCP">_lkmaxCP</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#Z:Z_lkmaxMR">_lkmaxMR</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#Z:Z_lm">_lm</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#Z:Z_N">_N</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#Z:Z_Nmax">_Nmax</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#Z:Z_rk">_rk</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#Z:Z_rk2">_rk2</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#Z:Z_rkmax">_rkmax</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#Z:Z_rkmax2">_rkmax2</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#Z:Z_rm">_rm</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#Z:Z_rm2">_rm2</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#Z:Z_rnk">_rnk</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#ALLOW_REMOTE_NESTED_PARALLELISM">ALLOW_REMOTE_NESTED_PARALLELISM</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/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#FUNCTION_UNFOLD_NAMEPREFIX">FUNCTION_UNFOLD_NAMEPREFIX</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#MAX_REPLICATION_FACTOR_EXPORT">MAX_REPLICATION_FACTOR_EXPORT</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#MAX_REPLICATION_FACTOR_PARTITIONING">MAX_REPLICATION_FACTOR_PARTITIONING</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#PAR_K_FACTOR">PAR_K_FACTOR</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#PAR_K_MR_FACTOR">PAR_K_MR_FACTOR</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#PROB_SIZE_THRESHOLD_MB">PROB_SIZE_THRESHOLD_MB</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#PROB_SIZE_THRESHOLD_PARTITIONING">PROB_SIZE_THRESHOLD_PARTITIONING</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#PROB_SIZE_THRESHOLD_REMOTE">PROB_SIZE_THRESHOLD_REMOTE</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.sysds.runtime.controlprogram.parfor.opt.Optimizer">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.sysds.runtime.controlprogram.parfor.opt.<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">Optimizer</a></h3>
<code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html#Z:Z_numEvaluatedPlans">_numEvaluatedPlans</a>, <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html#Z:Z_numTotalPlans">_numTotalPlans</a>, <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html#LOG">LOG</a></code></li>
</ul>
</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/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#OptimizerRuleBased--">OptimizerRuleBased</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#allowsBinaryCellPartitions-org.apache.sysds.runtime.controlprogram.caching.MatrixObject-org.apache.sysds.runtime.controlprogram.ParForProgramBlock.PartitionFormat-">allowsBinaryCellPartitions</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">MatrixObject</a>&nbsp;mo,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PartitionFormat</a>&nbsp;dpf)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#analyzeProblemAndInfrastructure-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">analyzeProblemAndInfrastructure</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;pn)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#determineFlagCellFormatWoCompare-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">determineFlagCellFormatWoCompare</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;resultVars,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#estimateNumTasks-org.apache.sysds.runtime.controlprogram.ParForProgramBlock.PTaskPartitioner-long-int-">estimateNumTasks</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PTaskPartitioner.html" title="enum in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PTaskPartitioner</a>&nbsp;tp,
long&nbsp;N,
int&nbsp;k)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.CostModelType.html" title="enum in org.apache.sysds.runtime.controlprogram.parfor.opt">Optimizer.CostModelType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#getCostModelType--">getCostModelType</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#getMaxCPOnlyBudget-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">getMaxCPOnlyBudget</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n)</code>
<div class="block">Calculates the maximum memory needed in a CP only Parfor
based on the <a href="../../../../../../../org/apache/sysds/hops/Hop.html#computeMemEstimate-org.apache.sysds.hops.MemoTable-"><code>Hop.computeMemEstimate(MemoTable)</code></a> } function
called recursively for the "children" of the parfor <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt"><code>OptNode</code></a>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#getMemoryEstimate-java.lang.String-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">getMemoryEstimate</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;varName,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#getNewRIXMemoryEstimate-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.lang.String-org.apache.sysds.runtime.controlprogram.ParForProgramBlock.PartitionFormat-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">getNewRIXMemoryEstimate</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<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;varName,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PartitionFormat</a>&nbsp;dpf,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>
<div class="block">TODO consolidate mem estimation with Indexing Hop
NOTE: Using the dimensions without sparsity is a conservative worst-case consideration.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.POptMode.html" title="enum in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.POptMode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#getOptMode--">getOptMode</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#getPartitionedRIXEstimates-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">getPartitionedRIXEstimates</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;parent)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.PlanInputType.html" title="enum in org.apache.sysds.runtime.controlprogram.parfor.opt">Optimizer.PlanInputType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#getPlanInputType--">getPlanInputType</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#getRemainingParallelismOps-int-int-">getRemainingParallelismOps</a></span>(int&nbsp;opsK,
int&nbsp;tmpK)</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#getRemainingParallelismParFor-int-int-">getRemainingParallelismParFor</a></span>(int&nbsp;parforK,
int&nbsp;tmpK)</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.ExecType.html" title="enum in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode.ExecType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#getRemoteExecType--">getRemoteExecType</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>protected static <a href="../../../../../../../org/apache/sysds/lops/LopProperties.ExecType.html" title="enum in org.apache.sysds.lops">LopProperties.ExecType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#getRIXExecType-org.apache.sysds.runtime.controlprogram.caching.MatrixObject-org.apache.sysds.runtime.controlprogram.ParForProgramBlock.PDataPartitionFormat-boolean-">getRIXExecType</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">MatrixObject</a>&nbsp;mo,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PDataPartitionFormat.html" title="enum in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PDataPartitionFormat</a>&nbsp;dpf,
boolean&nbsp;withSparsity)</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#hasLargeTotalResults-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.LocalVariableMap-boolean-">hasLargeTotalResults</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;pn,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;resultVars,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
boolean&nbsp;checkSize)</code>
<div class="block">Heuristically compute total result sizes, if larger than local mem budget assumed to be large.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#hasOnlyInMemoryResults-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">hasOnlyInMemoryResults</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;resultVars,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#hasResultMRLeftIndexing-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.LocalVariableMap-boolean-">hasResultMRLeftIndexing</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;resultVars,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
boolean&nbsp;checkSize)</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#isCPOnlyPossible-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-double-">isCPOnlyPossible</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
double&nbsp;memBudget)</code>&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#isInMemoryResultMerge-long-long-double-">isInMemoryResultMerge</a></span>(long&nbsp;rows,
long&nbsp;cols,
double&nbsp;memBudget)</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#isLargeProblem-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-double-">isLargeProblem</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;pn,
double&nbsp;M)</code>&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#isResultFullReplace-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.lang.String-java.lang.String-org.apache.sysds.runtime.controlprogram.caching.MatrixObject-">isResultFullReplace</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<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;resultVar,
<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;iterVarname,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">MatrixObject</a>&nbsp;mo)</code>&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#isResultPartitionable-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.LocalVariableMap-java.lang.String-">isResultPartitionable</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;resultVars,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
<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;iterVarname)</code>&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#isResultPartitionableAll-java.util.Collection-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.LocalVariableMap-java.lang.String-">isResultPartitionableAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&gt;&nbsp;nlist,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;resultVars,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
<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;iterVarname)</code>&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#optimize-org.apache.sysds.parser.ParForStatementBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-org.apache.sysds.runtime.controlprogram.parfor.opt.OptTree-org.apache.sysds.runtime.controlprogram.parfor.opt.CostEstimator-org.apache.sysds.runtime.controlprogram.context.ExecutionContext-">optimize</a></span>(<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.html" title="class in org.apache.sysds.parser">ParForStatementBlock</a>&nbsp;sb,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&nbsp;pb,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTree.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptTree</a>&nbsp;plan,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/CostEstimator.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">CostEstimator</a>&nbsp;est,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/context/ExecutionContext.html" title="class in org.apache.sysds.runtime.controlprogram.context">ExecutionContext</a>&nbsp;ec)</code>
<div class="block">Main optimization procedure.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rAssignRemainingParallelism-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-int-int-">rAssignRemainingParallelism</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
int&nbsp;parforK,
int&nbsp;opsK)</code>&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rComputeSumMemoryIntermediates-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.HashSet-">rComputeSumMemoryIntermediates</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;inplaceResultVars)</code>&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rContainsNode-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-">rContainsNode</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&nbsp;parfor)</code>&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rContainsResultFullReplace-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.lang.String-java.lang.String-org.apache.sysds.runtime.controlprogram.caching.MatrixObject-">rContainsResultFullReplace</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<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;resultVar,
<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;iterVarname,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">MatrixObject</a>&nbsp;mo)</code>&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#recompileLIX-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">recompileLIX</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#removeRecursiveParFor-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.HashSet-">removeRecursiveParFor</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&gt;&nbsp;recPBs)</code>&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#removeUnnecessaryParFor-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">removeUnnecessaryParFor</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n)</code>&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#resetPartitionRIXEstimates-java.util.HashMap-">resetPartitionRIXEstimates</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;&nbsp;estimates)</code>&nbsp;</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteDataColocation-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">rewriteDataColocation</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>
<div class="block">NOTE: if MAX_REPLICATION_FACTOR_PARTITIONING is set larger than 10, co-location may
throw warnings per split since this exceeds "max block locations"</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteInjectSparkLoopCheckpointing-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">rewriteInjectSparkLoopCheckpointing</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n)</code>&nbsp;</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteInjectSparkRepartition-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">rewriteInjectSparkRepartition</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>&nbsp;</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteRemoveRecursiveParFor-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">rewriteRemoveRecursiveParFor</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>&nbsp;</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteRemoveUnnecessaryCompareMatrix-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.context.ExecutionContext-">rewriteRemoveUnnecessaryCompareMatrix</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/context/ExecutionContext.html" title="class in org.apache.sysds.runtime.controlprogram.context">ExecutionContext</a>&nbsp;ec)</code>&nbsp;</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteRemoveUnnecessaryParFor-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">rewriteRemoveUnnecessaryParFor</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n)</code>&nbsp;</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteSetDataPartitioner-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-java.util.HashMap-double-boolean-">rewriteSetDataPartitioner</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</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="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PartitionFormat</a>&gt;&nbsp;partitionedMatrices,
double&nbsp;thetaM,
boolean&nbsp;constrained)</code>&nbsp;</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteSetDegreeOfParallelism-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.parfor.opt.CostEstimator-org.apache.sysds.runtime.controlprogram.LocalVariableMap-double-boolean-">rewriteSetDegreeOfParallelism</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/CostEstimator.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">CostEstimator</a>&nbsp;cost,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
double&nbsp;M,
boolean&nbsp;flagNested)</code>&nbsp;</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteSetExecutionStategy-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-double-double-double-double-boolean-">rewriteSetExecutionStategy</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
double&nbsp;M0,
double&nbsp;M,
double&nbsp;M2,
double&nbsp;M3,
boolean&nbsp;flagLIX)</code>&nbsp;</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteSetExportReplicationFactor-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">rewriteSetExportReplicationFactor</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>
<div class="block">Increasing the export replication factor is beneficial for remote execution
because each task will read the full input data set.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteSetFusedDataPartitioningExecution-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-double-boolean-java.util.HashMap-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">rewriteSetFusedDataPartitioningExecution</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;pn,
double&nbsp;M,
boolean&nbsp;flagLIX,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</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="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PartitionFormat</a>&gt;&nbsp;partitionedMatrices,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>
<div class="block">This dedicated execution mode can only be applied if all of the
following conditions are true:
- Only cp instructions in the parfor body
- Only one partitioned input
- number of iterations is equal to number of partitions (nrow/ncol)
- partitioned matrix access via plain iteration variables (no composed expressions)
(this ensures that each partition is exactly read once)
- no left indexing (since by default static task partitioning)
Furthermore, it should be only chosen if we already decided for remote partitioning
and otherwise would create a large number of partition files.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteSetInPlaceResultIndexing-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.parfor.opt.CostEstimator-org.apache.sysds.runtime.controlprogram.LocalVariableMap-java.util.HashSet-org.apache.sysds.runtime.controlprogram.context.ExecutionContext-">rewriteSetInPlaceResultIndexing</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;pn,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/CostEstimator.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">CostEstimator</a>&nbsp;cost,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;inPlaceResultVars,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/context/ExecutionContext.html" title="class in org.apache.sysds.runtime.controlprogram.context">ExecutionContext</a>&nbsp;ec)</code>&nbsp;</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteSetOperationsExecType-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-boolean-">rewriteSetOperationsExecType</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;pn,
boolean&nbsp;recompile)</code>&nbsp;</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteSetPartitionReplicationFactor-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.HashMap-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">rewriteSetPartitionReplicationFactor</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</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="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PartitionFormat</a>&gt;&nbsp;partitionedMatrices,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>
<div class="block">Increasing the partition replication factor is beneficial if partitions are
read multiple times (e.g., in nested loops) because partitioning (done once)
gets slightly slower but there is a higher probability for local access
NOTE: this rewrite requires 'set data partitioner' to be executed in order to
leverage the partitioning information in the plan tree.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteSetRecompileMemoryBudget-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">rewriteSetRecompileMemoryBudget</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n)</code>&nbsp;</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteSetResultMerge-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-boolean-">rewriteSetResultMerge</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
boolean&nbsp;inLocal)</code>&nbsp;</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteSetResultPartitioning-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-double-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">rewriteSetResultPartitioning</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
double&nbsp;M,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>&nbsp;</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteSetSparkEagerRDDCaching-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">rewriteSetSparkEagerRDDCaching</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>&nbsp;</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rewriteSetTaskPartitioner-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-boolean-boolean-">rewriteSetTaskPartitioner</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;pn,
boolean&nbsp;flagNested,
boolean&nbsp;flagLIX)</code>&nbsp;</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rFindAndUnfoldRecursiveFunction-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-java.util.HashSet-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">rFindAndUnfoldRecursiveFunction</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&nbsp;parfor,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&gt;&nbsp;recPBs,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>&nbsp;</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rFindDataColocationCandidates-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.HashSet-java.lang.String-">rFindDataColocationCandidates</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</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>&gt;&nbsp;cand,
<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;iterVarname)</code>&nbsp;</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rFindDataPartitioningCandidates-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.HashMap-org.apache.sysds.runtime.controlprogram.LocalVariableMap-double-">rFindDataPartitioningCandidates</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</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="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PartitionFormat</a>&gt;&nbsp;cand,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
double&nbsp;thetaM)</code>&nbsp;</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rFindRecursiveParFor-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.HashSet-boolean-">rFindRecursiveParFor</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&gt;&nbsp;cand,
boolean&nbsp;recContext)</code>&nbsp;</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rGetAllParForPBs-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.HashSet-">rGetAllParForPBs</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&gt;&nbsp;pbs)</code>&nbsp;</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rHasOnlyInPlaceSafeLeftIndexing-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.ArrayList-">rHasOnlyInPlaceSafeLeftIndexing</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;retVars)</code>&nbsp;</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rInvokeSetResultMerge-java.util.Collection-org.apache.sysds.runtime.controlprogram.LocalVariableMap-boolean-">rInvokeSetResultMerge</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&gt;&nbsp;nodes,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
boolean&nbsp;inLocal)</code>&nbsp;</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rIsAccessByIterationVariable-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.lang.String-java.lang.String-">rIsAccessByIterationVariable</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<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;varName,
<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;iterVarname)</code>&nbsp;</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rIsReadInRightIndexing-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.lang.String-">rIsReadInRightIndexing</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<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;var)</code>&nbsp;</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rIsTransposeSafePartition-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.lang.String-">rIsTransposeSafePartition</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<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;varName)</code>&nbsp;</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#rReplaceFunctionNames-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.lang.String-java.lang.String-">rReplaceFunctionNames</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<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;oldName,
<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;newName)</code>&nbsp;</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#setOperationExecType-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode.ExecType-">setOperationExecType</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.ExecType.html" title="enum in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode.ExecType</a>&nbsp;et)</code>&nbsp;</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#setTaskPartitioner-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.ParForProgramBlock.PTaskPartitioner-">setTaskPartitioner</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PTaskPartitioner.html" title="enum in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PTaskPartitioner</a>&nbsp;partitioner)</code>&nbsp;</td>
</tr>
<tr id="i65" 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/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html#toMB-double-">toMB</a></span>(double&nbsp;inB)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.sysds.runtime.controlprogram.parfor.opt.Optimizer">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.sysds.runtime.controlprogram.parfor.opt.<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">Optimizer</a></h3>
<code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html#getNumEvaluatedPlans--">getNumEvaluatedPlans</a>, <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html#getNumTotalPlans--">getNumTotalPlans</a></code></li>
</ul>
<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="PROB_SIZE_THRESHOLD_REMOTE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PROB_SIZE_THRESHOLD_REMOTE</h4>
<pre>public static final&nbsp;double PROB_SIZE_THRESHOLD_REMOTE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.sysds.runtime.controlprogram.parfor.opt.OptimizerRuleBased.PROB_SIZE_THRESHOLD_REMOTE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="PROB_SIZE_THRESHOLD_PARTITIONING">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PROB_SIZE_THRESHOLD_PARTITIONING</h4>
<pre>public static final&nbsp;double PROB_SIZE_THRESHOLD_PARTITIONING</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.sysds.runtime.controlprogram.parfor.opt.OptimizerRuleBased.PROB_SIZE_THRESHOLD_PARTITIONING">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="PROB_SIZE_THRESHOLD_MB">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PROB_SIZE_THRESHOLD_MB</h4>
<pre>public static final&nbsp;double PROB_SIZE_THRESHOLD_MB</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.sysds.runtime.controlprogram.parfor.opt.OptimizerRuleBased.PROB_SIZE_THRESHOLD_MB">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="MAX_REPLICATION_FACTOR_PARTITIONING">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MAX_REPLICATION_FACTOR_PARTITIONING</h4>
<pre>public static final&nbsp;int MAX_REPLICATION_FACTOR_PARTITIONING</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.sysds.runtime.controlprogram.parfor.opt.OptimizerRuleBased.MAX_REPLICATION_FACTOR_PARTITIONING">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="MAX_REPLICATION_FACTOR_EXPORT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MAX_REPLICATION_FACTOR_EXPORT</h4>
<pre>public static final&nbsp;int MAX_REPLICATION_FACTOR_EXPORT</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.sysds.runtime.controlprogram.parfor.opt.OptimizerRuleBased.MAX_REPLICATION_FACTOR_EXPORT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ALLOW_REMOTE_NESTED_PARALLELISM">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_REMOTE_NESTED_PARALLELISM</h4>
<pre>public static final&nbsp;boolean ALLOW_REMOTE_NESTED_PARALLELISM</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.sysds.runtime.controlprogram.parfor.opt.OptimizerRuleBased.ALLOW_REMOTE_NESTED_PARALLELISM">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="FUNCTION_UNFOLD_NAMEPREFIX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FUNCTION_UNFOLD_NAMEPREFIX</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> FUNCTION_UNFOLD_NAMEPREFIX</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.sysds.runtime.controlprogram.parfor.opt.OptimizerRuleBased.FUNCTION_UNFOLD_NAMEPREFIX">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="PAR_K_FACTOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PAR_K_FACTOR</h4>
<pre>public static final&nbsp;double PAR_K_FACTOR</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.sysds.runtime.controlprogram.parfor.opt.OptimizerRuleBased.PAR_K_FACTOR">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="PAR_K_MR_FACTOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PAR_K_MR_FACTOR</h4>
<pre>public static final&nbsp;double PAR_K_MR_FACTOR</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.sysds.runtime.controlprogram.parfor.opt.OptimizerRuleBased.PAR_K_MR_FACTOR">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="Z:Z_N">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_N</h4>
<pre>protected&nbsp;long _N</pre>
</li>
</ul>
<a name="Z:Z_Nmax">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_Nmax</h4>
<pre>protected&nbsp;long _Nmax</pre>
</li>
</ul>
<a name="Z:Z_lk">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_lk</h4>
<pre>protected&nbsp;int _lk</pre>
</li>
</ul>
<a name="Z:Z_lkmaxCP">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_lkmaxCP</h4>
<pre>protected&nbsp;int _lkmaxCP</pre>
</li>
</ul>
<a name="Z:Z_lkmaxMR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_lkmaxMR</h4>
<pre>protected&nbsp;int _lkmaxMR</pre>
</li>
</ul>
<a name="Z:Z_rnk">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_rnk</h4>
<pre>protected&nbsp;int _rnk</pre>
</li>
</ul>
<a name="Z:Z_rk">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_rk</h4>
<pre>protected&nbsp;int _rk</pre>
</li>
</ul>
<a name="Z:Z_rk2">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_rk2</h4>
<pre>protected&nbsp;int _rk2</pre>
</li>
</ul>
<a name="Z:Z_rkmax">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_rkmax</h4>
<pre>protected&nbsp;int _rkmax</pre>
</li>
</ul>
<a name="Z:Z_rkmax2">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_rkmax2</h4>
<pre>protected&nbsp;int _rkmax2</pre>
</li>
</ul>
<a name="Z:Z_lm">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_lm</h4>
<pre>protected&nbsp;double _lm</pre>
</li>
</ul>
<a name="Z:Z_rm">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_rm</h4>
<pre>protected&nbsp;double _rm</pre>
</li>
</ul>
<a name="Z:Z_rm2">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_rm2</h4>
<pre>protected&nbsp;double _rm2</pre>
</li>
</ul>
<a name="Z:Z_cost">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>_cost</h4>
<pre>protected&nbsp;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/CostEstimator.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">CostEstimator</a> _cost</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="OptimizerRuleBased--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>OptimizerRuleBased</h4>
<pre>public&nbsp;OptimizerRuleBased()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getCostModelType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCostModelType</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.CostModelType.html" title="enum in org.apache.sysds.runtime.controlprogram.parfor.opt">Optimizer.CostModelType</a>&nbsp;getCostModelType()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html#getCostModelType--">getCostModelType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">Optimizer</a></code></dd>
</dl>
</li>
</ul>
<a name="getPlanInputType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPlanInputType</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.PlanInputType.html" title="enum in org.apache.sysds.runtime.controlprogram.parfor.opt">Optimizer.PlanInputType</a>&nbsp;getPlanInputType()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html#getPlanInputType--">getPlanInputType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">Optimizer</a></code></dd>
</dl>
</li>
</ul>
<a name="getOptMode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOptMode</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.POptMode.html" title="enum in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.POptMode</a>&nbsp;getOptMode()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html#getOptMode--">getOptMode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">Optimizer</a></code></dd>
</dl>
</li>
</ul>
<a name="optimize-org.apache.sysds.parser.ParForStatementBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-org.apache.sysds.runtime.controlprogram.parfor.opt.OptTree-org.apache.sysds.runtime.controlprogram.parfor.opt.CostEstimator-org.apache.sysds.runtime.controlprogram.context.ExecutionContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>optimize</h4>
<pre>public&nbsp;boolean&nbsp;optimize(<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.html" title="class in org.apache.sysds.parser">ParForStatementBlock</a>&nbsp;sb,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&nbsp;pb,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTree.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptTree</a>&nbsp;plan,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/CostEstimator.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">CostEstimator</a>&nbsp;est,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/context/ExecutionContext.html" title="class in org.apache.sysds.runtime.controlprogram.context">ExecutionContext</a>&nbsp;ec)</pre>
<div class="block">Main optimization procedure.
Transformation-based heuristic (rule-based) optimization
(no use of sb, direct change of pb).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html#optimize-org.apache.sysds.parser.ParForStatementBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-org.apache.sysds.runtime.controlprogram.parfor.opt.OptTree-org.apache.sysds.runtime.controlprogram.parfor.opt.CostEstimator-org.apache.sysds.runtime.controlprogram.context.ExecutionContext-">optimize</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/Optimizer.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">Optimizer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sb</code> - parfor statement block</dd>
<dd><code>pb</code> - parfor program block</dd>
<dd><code>plan</code> - complete plan of a top-level parfor</dd>
<dd><code>est</code> - cost estimator</dd>
<dd><code>ec</code> - execution context</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if plan changed, false otherwise</dd>
</dl>
</li>
</ul>
<a name="analyzeProblemAndInfrastructure-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>analyzeProblemAndInfrastructure</h4>
<pre>protected&nbsp;void&nbsp;analyzeProblemAndInfrastructure(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;pn)</pre>
</li>
</ul>
<a name="getRemoteExecType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRemoteExecType</h4>
<pre>protected&nbsp;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.ExecType.html" title="enum in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode.ExecType</a>&nbsp;getRemoteExecType()</pre>
</li>
</ul>
<a name="rewriteSetDataPartitioner-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-java.util.HashMap-double-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteSetDataPartitioner</h4>
<pre>protected&nbsp;boolean&nbsp;rewriteSetDataPartitioner(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</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="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PartitionFormat</a>&gt;&nbsp;partitionedMatrices,
double&nbsp;thetaM,
boolean&nbsp;constrained)</pre>
</li>
</ul>
<a name="rFindDataPartitioningCandidates-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.HashMap-org.apache.sysds.runtime.controlprogram.LocalVariableMap-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rFindDataPartitioningCandidates</h4>
<pre>protected&nbsp;boolean&nbsp;rFindDataPartitioningCandidates(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</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="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PartitionFormat</a>&gt;&nbsp;cand,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
double&nbsp;thetaM)</pre>
</li>
</ul>
<a name="getNewRIXMemoryEstimate-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.lang.String-org.apache.sysds.runtime.controlprogram.ParForProgramBlock.PartitionFormat-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNewRIXMemoryEstimate</h4>
<pre>protected&nbsp;double&nbsp;getNewRIXMemoryEstimate(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<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;varName,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PartitionFormat</a>&nbsp;dpf,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
<div class="block">TODO consolidate mem estimation with Indexing Hop
NOTE: Using the dimensions without sparsity is a conservative worst-case consideration.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>n</code> - internal representation of a plan alternative for program blocks and instructions</dd>
<dd><code>varName</code> - variable name</dd>
<dd><code>dpf</code> - data partition format</dd>
<dd><code>vars</code> - local variable map</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>memory estimate</dd>
</dl>
</li>
</ul>
<a name="getMemoryEstimate-java.lang.String-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMemoryEstimate</h4>
<pre>protected&nbsp;double&nbsp;getMemoryEstimate(<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;varName,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
</li>
</ul>
<a name="getRIXExecType-org.apache.sysds.runtime.controlprogram.caching.MatrixObject-org.apache.sysds.runtime.controlprogram.ParForProgramBlock.PDataPartitionFormat-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRIXExecType</h4>
<pre>protected static&nbsp;<a href="../../../../../../../org/apache/sysds/lops/LopProperties.ExecType.html" title="enum in org.apache.sysds.lops">LopProperties.ExecType</a>&nbsp;getRIXExecType(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">MatrixObject</a>&nbsp;mo,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PDataPartitionFormat.html" title="enum in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PDataPartitionFormat</a>&nbsp;dpf,
boolean&nbsp;withSparsity)</pre>
</li>
</ul>
<a name="allowsBinaryCellPartitions-org.apache.sysds.runtime.controlprogram.caching.MatrixObject-org.apache.sysds.runtime.controlprogram.ParForProgramBlock.PartitionFormat-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowsBinaryCellPartitions</h4>
<pre>public static&nbsp;boolean&nbsp;allowsBinaryCellPartitions(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">MatrixObject</a>&nbsp;mo,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PartitionFormat</a>&nbsp;dpf)</pre>
</li>
</ul>
<a name="rewriteSetResultPartitioning-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-double-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteSetResultPartitioning</h4>
<pre>protected&nbsp;boolean&nbsp;rewriteSetResultPartitioning(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
double&nbsp;M,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
</li>
</ul>
<a name="isResultPartitionableAll-java.util.Collection-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.LocalVariableMap-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isResultPartitionableAll</h4>
<pre>protected&nbsp;boolean&nbsp;isResultPartitionableAll(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&gt;&nbsp;nlist,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;resultVars,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
<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;iterVarname)</pre>
</li>
</ul>
<a name="isResultPartitionable-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.LocalVariableMap-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isResultPartitionable</h4>
<pre>protected&nbsp;boolean&nbsp;isResultPartitionable(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;resultVars,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
<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;iterVarname)</pre>
</li>
</ul>
<a name="recompileLIX-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recompileLIX</h4>
<pre>protected&nbsp;void&nbsp;recompileLIX(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
</li>
</ul>
<a name="getPartitionedRIXEstimates-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPartitionedRIXEstimates</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;&nbsp;getPartitionedRIXEstimates(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;parent)</pre>
</li>
</ul>
<a name="resetPartitionRIXEstimates-java.util.HashMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resetPartitionRIXEstimates</h4>
<pre>protected&nbsp;void&nbsp;resetPartitionRIXEstimates(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;&nbsp;estimates)</pre>
</li>
</ul>
<a name="rewriteSetExecutionStategy-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-double-double-double-double-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteSetExecutionStategy</h4>
<pre>protected&nbsp;boolean&nbsp;rewriteSetExecutionStategy(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
double&nbsp;M0,
double&nbsp;M,
double&nbsp;M2,
double&nbsp;M3,
boolean&nbsp;flagLIX)</pre>
</li>
</ul>
<a name="isLargeProblem-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLargeProblem</h4>
<pre>protected&nbsp;boolean&nbsp;isLargeProblem(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;pn,
double&nbsp;M)</pre>
</li>
</ul>
<a name="isCPOnlyPossible-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCPOnlyPossible</h4>
<pre>protected&nbsp;boolean&nbsp;isCPOnlyPossible(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
double&nbsp;memBudget)</pre>
</li>
</ul>
<a name="rewriteSetOperationsExecType-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteSetOperationsExecType</h4>
<pre>protected&nbsp;void&nbsp;rewriteSetOperationsExecType(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;pn,
boolean&nbsp;recompile)</pre>
</li>
</ul>
<a name="setOperationExecType-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode.ExecType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOperationExecType</h4>
<pre>protected&nbsp;int&nbsp;setOperationExecType(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.ExecType.html" title="enum in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode.ExecType</a>&nbsp;et)</pre>
</li>
</ul>
<a name="rewriteDataColocation-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteDataColocation</h4>
<pre>protected&nbsp;void&nbsp;rewriteDataColocation(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
<div class="block">NOTE: if MAX_REPLICATION_FACTOR_PARTITIONING is set larger than 10, co-location may
throw warnings per split since this exceeds "max block locations"</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>n</code> - internal representation of a plan alternative for program blocks and instructions</dd>
<dd><code>vars</code> - local variable map</dd>
</dl>
</li>
</ul>
<a name="rFindDataColocationCandidates-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.HashSet-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rFindDataColocationCandidates</h4>
<pre>protected&nbsp;void&nbsp;rFindDataColocationCandidates(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</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>&gt;&nbsp;cand,
<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;iterVarname)</pre>
</li>
</ul>
<a name="rewriteSetPartitionReplicationFactor-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.HashMap-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteSetPartitionReplicationFactor</h4>
<pre>protected&nbsp;void&nbsp;rewriteSetPartitionReplicationFactor(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</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="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PartitionFormat</a>&gt;&nbsp;partitionedMatrices,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
<div class="block">Increasing the partition replication factor is beneficial if partitions are
read multiple times (e.g., in nested loops) because partitioning (done once)
gets slightly slower but there is a higher probability for local access
NOTE: this rewrite requires 'set data partitioner' to be executed in order to
leverage the partitioning information in the plan tree.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>n</code> - internal representation of a plan alternative for program blocks and instructions</dd>
<dd><code>partitionedMatrices</code> - map of data partition formats</dd>
<dd><code>vars</code> - local variable map</dd>
</dl>
</li>
</ul>
<a name="rewriteSetExportReplicationFactor-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteSetExportReplicationFactor</h4>
<pre>protected&nbsp;void&nbsp;rewriteSetExportReplicationFactor(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
<div class="block">Increasing the export replication factor is beneficial for remote execution
because each task will read the full input data set. This only applies to
matrices that are created as in-memory objects before parfor execution.
NOTE: this rewrite requires 'set execution strategy' to be executed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>n</code> - internal representation of a plan alternative for program blocks and instructions</dd>
<dd><code>vars</code> - local variable map</dd>
</dl>
</li>
</ul>
<a name="getMaxCPOnlyBudget-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxCPOnlyBudget</h4>
<pre>protected&nbsp;double&nbsp;getMaxCPOnlyBudget(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n)</pre>
<div class="block">Calculates the maximum memory needed in a CP only Parfor
based on the <a href="../../../../../../../org/apache/sysds/hops/Hop.html#computeMemEstimate-org.apache.sysds.hops.MemoTable-"><code>Hop.computeMemEstimate(MemoTable)</code></a> } function
called recursively for the "children" of the parfor <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt"><code>OptNode</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>n</code> - the parfor <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt"><code>OptNode</code></a></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the maximum memory needed for any operation inside a parfor in CP execution mode</dd>
</dl>
</li>
</ul>
<a name="rewriteSetDegreeOfParallelism-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.parfor.opt.CostEstimator-org.apache.sysds.runtime.controlprogram.LocalVariableMap-double-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteSetDegreeOfParallelism</h4>
<pre>protected&nbsp;void&nbsp;rewriteSetDegreeOfParallelism(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/CostEstimator.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">CostEstimator</a>&nbsp;cost,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
double&nbsp;M,
boolean&nbsp;flagNested)</pre>
</li>
</ul>
<a name="rAssignRemainingParallelism-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rAssignRemainingParallelism</h4>
<pre>protected&nbsp;void&nbsp;rAssignRemainingParallelism(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
int&nbsp;parforK,
int&nbsp;opsK)</pre>
</li>
</ul>
<a name="getRemainingParallelismParFor-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRemainingParallelismParFor</h4>
<pre>protected static&nbsp;int&nbsp;getRemainingParallelismParFor(int&nbsp;parforK,
int&nbsp;tmpK)</pre>
</li>
</ul>
<a name="getRemainingParallelismOps-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRemainingParallelismOps</h4>
<pre>protected static&nbsp;int&nbsp;getRemainingParallelismOps(int&nbsp;opsK,
int&nbsp;tmpK)</pre>
</li>
</ul>
<a name="rewriteSetTaskPartitioner-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteSetTaskPartitioner</h4>
<pre>protected&nbsp;void&nbsp;rewriteSetTaskPartitioner(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;pn,
boolean&nbsp;flagNested,
boolean&nbsp;flagLIX)</pre>
</li>
</ul>
<a name="setTaskPartitioner-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.ParForProgramBlock.PTaskPartitioner-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTaskPartitioner</h4>
<pre>protected&nbsp;void&nbsp;setTaskPartitioner(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PTaskPartitioner.html" title="enum in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PTaskPartitioner</a>&nbsp;partitioner)</pre>
</li>
</ul>
<a name="rewriteSetFusedDataPartitioningExecution-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-double-boolean-java.util.HashMap-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteSetFusedDataPartitioningExecution</h4>
<pre>protected&nbsp;void&nbsp;rewriteSetFusedDataPartitioningExecution(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;pn,
double&nbsp;M,
boolean&nbsp;flagLIX,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</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="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PartitionFormat</a>&gt;&nbsp;partitionedMatrices,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
<div class="block">This dedicated execution mode can only be applied if all of the
following conditions are true:
- Only cp instructions in the parfor body
- Only one partitioned input
- number of iterations is equal to number of partitions (nrow/ncol)
- partitioned matrix access via plain iteration variables (no composed expressions)
(this ensures that each partition is exactly read once)
- no left indexing (since by default static task partitioning)
Furthermore, it should be only chosen if we already decided for remote partitioning
and otherwise would create a large number of partition files.
NOTE: We already respect the reducer memory budget for plan correctness. However,
we miss optimization potential if the reducer budget is larger than the mapper budget
(if we were not able to select REMOTE_MR as execution strategy wrt mapper budget)
TODO modify 'set exec strategy' and related rewrites for conditional data partitioning.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pn</code> - internal representation of a plan alternative for program blocks and instructions</dd>
<dd><code>M</code> - ?</dd>
<dd><code>flagLIX</code> - ?</dd>
<dd><code>partitionedMatrices</code> - map of data partition formats</dd>
<dd><code>vars</code> - local variable map</dd>
</dl>
</li>
</ul>
<a name="rIsAccessByIterationVariable-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rIsAccessByIterationVariable</h4>
<pre>protected&nbsp;boolean&nbsp;rIsAccessByIterationVariable(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<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;varName,
<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;iterVarname)</pre>
</li>
</ul>
<a name="rIsTransposeSafePartition-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rIsTransposeSafePartition</h4>
<pre>protected&nbsp;boolean&nbsp;rIsTransposeSafePartition(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<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;varName)</pre>
</li>
</ul>
<a name="rewriteSetInPlaceResultIndexing-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.parfor.opt.CostEstimator-org.apache.sysds.runtime.controlprogram.LocalVariableMap-java.util.HashSet-org.apache.sysds.runtime.controlprogram.context.ExecutionContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteSetInPlaceResultIndexing</h4>
<pre>protected&nbsp;void&nbsp;rewriteSetInPlaceResultIndexing(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;pn,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/CostEstimator.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">CostEstimator</a>&nbsp;cost,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;inPlaceResultVars,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/context/ExecutionContext.html" title="class in org.apache.sysds.runtime.controlprogram.context">ExecutionContext</a>&nbsp;ec)</pre>
</li>
</ul>
<a name="rHasOnlyInPlaceSafeLeftIndexing-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.ArrayList-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rHasOnlyInPlaceSafeLeftIndexing</h4>
<pre>protected&nbsp;boolean&nbsp;rHasOnlyInPlaceSafeLeftIndexing(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;retVars)</pre>
</li>
</ul>
<a name="rComputeSumMemoryIntermediates-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.HashSet-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rComputeSumMemoryIntermediates</h4>
<pre>protected&nbsp;double&nbsp;rComputeSumMemoryIntermediates(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;inplaceResultVars)</pre>
</li>
</ul>
<a name="rewriteInjectSparkLoopCheckpointing-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteInjectSparkLoopCheckpointing</h4>
<pre>protected&nbsp;void&nbsp;rewriteInjectSparkLoopCheckpointing(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n)</pre>
</li>
</ul>
<a name="rewriteInjectSparkRepartition-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteInjectSparkRepartition</h4>
<pre>protected&nbsp;void&nbsp;rewriteInjectSparkRepartition(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
</li>
</ul>
<a name="rewriteSetSparkEagerRDDCaching-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteSetSparkEagerRDDCaching</h4>
<pre>protected&nbsp;void&nbsp;rewriteSetSparkEagerRDDCaching(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
</li>
</ul>
<a name="rewriteRemoveUnnecessaryCompareMatrix-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.context.ExecutionContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteRemoveUnnecessaryCompareMatrix</h4>
<pre>protected&nbsp;void&nbsp;rewriteRemoveUnnecessaryCompareMatrix(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/context/ExecutionContext.html" title="class in org.apache.sysds.runtime.controlprogram.context">ExecutionContext</a>&nbsp;ec)</pre>
</li>
</ul>
<a name="rContainsResultFullReplace-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.lang.String-java.lang.String-org.apache.sysds.runtime.controlprogram.caching.MatrixObject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rContainsResultFullReplace</h4>
<pre>protected&nbsp;boolean&nbsp;rContainsResultFullReplace(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<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;resultVar,
<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;iterVarname,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">MatrixObject</a>&nbsp;mo)</pre>
</li>
</ul>
<a name="isResultFullReplace-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.lang.String-java.lang.String-org.apache.sysds.runtime.controlprogram.caching.MatrixObject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isResultFullReplace</h4>
<pre>protected&nbsp;boolean&nbsp;isResultFullReplace(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<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;resultVar,
<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;iterVarname,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">MatrixObject</a>&nbsp;mo)</pre>
</li>
</ul>
<a name="rIsReadInRightIndexing-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rIsReadInRightIndexing</h4>
<pre>protected&nbsp;boolean&nbsp;rIsReadInRightIndexing(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<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;var)</pre>
</li>
</ul>
<a name="rewriteSetResultMerge-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteSetResultMerge</h4>
<pre>protected&nbsp;void&nbsp;rewriteSetResultMerge(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
boolean&nbsp;inLocal)</pre>
</li>
</ul>
<a name="determineFlagCellFormatWoCompare-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>determineFlagCellFormatWoCompare</h4>
<pre>protected&nbsp;boolean&nbsp;determineFlagCellFormatWoCompare(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;resultVars,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
</li>
</ul>
<a name="hasResultMRLeftIndexing-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.LocalVariableMap-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasResultMRLeftIndexing</h4>
<pre>protected&nbsp;boolean&nbsp;hasResultMRLeftIndexing(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;resultVars,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
boolean&nbsp;checkSize)</pre>
</li>
</ul>
<a name="hasLargeTotalResults-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.LocalVariableMap-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasLargeTotalResults</h4>
<pre>protected&nbsp;boolean&nbsp;hasLargeTotalResults(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;pn,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;resultVars,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
boolean&nbsp;checkSize)</pre>
<div class="block">Heuristically compute total result sizes, if larger than local mem budget assumed to be large.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pn</code> - internal representation of a plan alternative for program blocks and instructions</dd>
<dd><code>resultVars</code> - list of result variables</dd>
<dd><code>vars</code> - local variable map</dd>
<dd><code>checkSize</code> - ?</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if result sizes larger than local memory budget</dd>
</dl>
</li>
</ul>
<a name="estimateNumTasks-org.apache.sysds.runtime.controlprogram.ParForProgramBlock.PTaskPartitioner-long-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateNumTasks</h4>
<pre>protected&nbsp;long&nbsp;estimateNumTasks(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PTaskPartitioner.html" title="enum in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PTaskPartitioner</a>&nbsp;tp,
long&nbsp;N,
int&nbsp;k)</pre>
</li>
</ul>
<a name="hasOnlyInMemoryResults-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasOnlyInMemoryResults</h4>
<pre>protected&nbsp;boolean&nbsp;hasOnlyInMemoryResults(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&gt;&nbsp;resultVars,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
</li>
</ul>
<a name="rInvokeSetResultMerge-java.util.Collection-org.apache.sysds.runtime.controlprogram.LocalVariableMap-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rInvokeSetResultMerge</h4>
<pre>protected&nbsp;void&nbsp;rInvokeSetResultMerge(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&gt;&nbsp;nodes,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
boolean&nbsp;inLocal)</pre>
</li>
</ul>
<a name="isInMemoryResultMerge-long-long-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInMemoryResultMerge</h4>
<pre>public static&nbsp;boolean&nbsp;isInMemoryResultMerge(long&nbsp;rows,
long&nbsp;cols,
double&nbsp;memBudget)</pre>
</li>
</ul>
<a name="rewriteSetRecompileMemoryBudget-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteSetRecompileMemoryBudget</h4>
<pre>protected&nbsp;void&nbsp;rewriteSetRecompileMemoryBudget(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n)</pre>
</li>
</ul>
<a name="rewriteRemoveRecursiveParFor-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteRemoveRecursiveParFor</h4>
<pre>protected&nbsp;void&nbsp;rewriteRemoveRecursiveParFor(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
</li>
</ul>
<a name="rFindRecursiveParFor-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.HashSet-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rFindRecursiveParFor</h4>
<pre>protected&nbsp;void&nbsp;rFindRecursiveParFor(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&gt;&nbsp;cand,
boolean&nbsp;recContext)</pre>
</li>
</ul>
<a name="rFindAndUnfoldRecursiveFunction-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-java.util.HashSet-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rFindAndUnfoldRecursiveFunction</h4>
<pre>protected&nbsp;void&nbsp;rFindAndUnfoldRecursiveFunction(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&nbsp;parfor,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&gt;&nbsp;recPBs,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
</li>
</ul>
<a name="rContainsNode-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rContainsNode</h4>
<pre>protected&nbsp;boolean&nbsp;rContainsNode(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&nbsp;parfor)</pre>
</li>
</ul>
<a name="rGetAllParForPBs-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.HashSet-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rGetAllParForPBs</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&gt;&nbsp;rGetAllParForPBs(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&gt;&nbsp;pbs)</pre>
</li>
</ul>
<a name="rReplaceFunctionNames-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rReplaceFunctionNames</h4>
<pre>protected&nbsp;void&nbsp;rReplaceFunctionNames(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<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;oldName,
<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;newName)</pre>
</li>
</ul>
<a name="removeRecursiveParFor-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-java.util.HashSet-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeRecursiveParFor</h4>
<pre>protected&nbsp;int&nbsp;removeRecursiveParFor(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a>&gt;&nbsp;recPBs)</pre>
</li>
</ul>
<a name="rewriteRemoveUnnecessaryParFor-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteRemoveUnnecessaryParFor</h4>
<pre>protected&nbsp;void&nbsp;rewriteRemoveUnnecessaryParFor(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n)</pre>
</li>
</ul>
<a name="removeUnnecessaryParFor-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeUnnecessaryParFor</h4>
<pre>protected&nbsp;int&nbsp;removeUnnecessaryParFor(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n)</pre>
</li>
</ul>
<a name="toMB-double-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toMB</h4>
<pre>public static&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>&nbsp;toMB(double&nbsp;inB)</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/OptimizerRuleBased.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><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerHeuristic.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/sysds/runtime/controlprogram/parfor/opt/OptimizerRuleBased.html" target="_top">Frames</a></li>
<li><a href="OptimizerRuleBased.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.classes.inherited.from.class.org.apache.sysds.runtime.controlprogram.parfor.opt.Optimizer">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; 2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>