Metrics on which Clock Cycles Per Instruction(CPI) depends
In part a same processor is assumed, and 2 compilers are used. In part b, 2 processors with different clock frequency is used, since the execution times for both processors are equal but the CPIs and dynamic instruction counts are unequal. The CPI for both processors is the same as the CPI from part a because the same compilers were used and the same compiled program is run.
So the dynamic instruction count and CPI is the same from part a.
$\frac{f_A}{f_B}=\frac{CC_B}{CC_A}=\frac{T_B}{CPI_B*I_B}*\frac{CPI_A*I_A}{T_A}$.
Since $T_A=T_B$,
we get
$\frac{f_A}{f_B}=\frac{CPI_A*I_A}{CPI_B*I_B} = \frac{1.1*1*10^9}{1.25*1.2*10^9} =0.7333 $
or $\frac{f_B}{f_A} = 1.37$
For part c, use CPIs obtained in part a.
Speedup
$\frac{T_A}{T_C}=1.67$
$\frac{T_B}{T_C}=2.27$
CPI depends on the processor's hardware architecture, processor clock frequency, compiler and the number of instructions.