number of tasks that can run concurrently. Assuming that a cluster has 20 containers $N_c$ and job $j$ has a total of 100 map tasks $M_t$, there will be at least five rounds of 20 map phase with each phase running 20 tasks concurrently. Using this logic we can modify both the Map and Reduce final formulas as follows: $$\begin{aligned}
T_{mt} &= \frac{M_t}{N_c}[T_{read} + T_{map} + T_{collect} + T_{spill} + T_{merge}] \\ 
&= \frac{M_t}{N_c}[\beta_0 + \beta_1d + \beta_2d + \beta_3M_d + \beta_4M_d +\\ 
&\;\;\;\;\;\;\;\;\;\;\;\;\beta_5M_dlogM_d + T_{map}] + \epsilon
\end{aligned}
\label{eq:mapjob}$$ Similarly, the same can be done for the reduce phase: $$\begin{aligned}
T_{rt} & = \frac{R_t}{N_c}[T_{shuffle} + T_{reduce} + T_{write}] \\ 
& = \frac{R_t}{N_c}[\beta_0 + \beta_6S_d + \beta_7S_d + \beta_8O_d + T_{reduce}] + \epsilon
\end{aligned}
\label{eq:reducejob}$$ The final cost model of the entire job can be obtained by merging Equation , Equation , the custom phases (Equation \[eq:mapphase\] and Equation \[eq:reducephase\]). $$\small
\begin{aligned}
T_{job} & = [\frac{M_t}{N_c}[T_{mt}] + \frac{R_t}{N_c}[T_{rt}]] + \epsilon \\ 
& = \frac{M_t}{N_c}[\beta_0 + \beta_x\textprime d + \beta_y\textprime M_d + \beta_5M_dlogM_d + T_{map}] + \\ 
& \;\;\;\;\frac{R_t}{N_c}[\beta_0 + \beta_z\textprime S_d + \beta_8R_d + T_{reduce}] + \epsilon \\
\end{aligned}
\label{eq:totaljob}$$

Phase Profiling Methodology {#phaseprofilingmethodology}
===========================

The profiling process is inspired 