def sim(Rambda, C, R, Crash_rambda): fact = [1,2,3,4,5,6,7,8,9,10] durs = [] effs = [] print "# failure rate: ", Rambda, 1/(Rambda * 3600), "hours" print "# crash rate: ", Crash_rambda, 1/(Crash_rambda * 3600), "hours" print "# checkpoint t:", C print "# restart t:", R print "fact\tInterval\tEfficiency\talive P" for f in fact: rambda = Rambda * f crash_rambda = Crash_rambda * f c = C * f r = R * f T, eT, eff, dur = vaidya.sim_all(rambda, c, r, crash_rambda) effs.append(eff) durs.append(dur) # print "%s\t\t%s\t%s\t%s\t%s\t%s\t%s" % (T, eff, dur[-1]) print "%s\t%s\t\t%s\t%s" % (f, T, eff, dur) return fact, effs, durs
def main(): for i in range(1,240): # l1f = 2.14e-6 # Coastal # l2f = 4.27e-7 # Coastal # l1f = 1.08e-5 # Hera # l2f = 3.02e-6 # Hera l1f = 1.63e-5 # Atlas l2f = 1.09e-6 # Atlas c = 0 r = 0 f = (l1f + l2f) * i dur = vaidya.duration(f, 24 * 60 * 60) f_fmi = (l2f) * i dur_fmi = vaidya.duration(f_fmi, 24 * 60 * 60) print i, dur, dur_fmi, (1/f)/3600, (1/f_fmi)/3600 return for i in range(500): c = 100 r = 100 mtbf = float((i + 1) * 10) T, eT, eTL, eff, effL, dur = vaidya.sim_all(1/mtbf, c, r, 1/mtbf) # print mtbf,",", eff print mtbf,",", effL return len = 4 Yes = [None for i in range(len)] Yds = [None for i in range(len)] i = 0 Rambda=1.757e-5 Crash_rambda=1.3774e-6 C = 75 R = 45 Xf, Yes[i], Yds[i] = sim(Rambda, C, R, Crash_rambda) i += 1 Rambda=1.757e-5 Crash_rambda=1.7154e-6 C = 50 R = 20 Xf, Yes[i], Yds[i] = sim(Rambda, C, R, Crash_rambda) i += 1 Rambda=1.757e-5 Crash_rambda=1.3774e-6 C = 75 R = 45 Xf, Yes[i], Yds[i] = sim(Rambda, C, R, Crash_rambda) i += 1 Rambda=1.757e-5 Crash_rambda=1.7154e-6 C = 50 R = 0.625 Xf, Yes[i], Yds[i] = sim(Rambda, C, R, Crash_rambda) i += 1 print print "fact\tFlat SSD - Coordinated\tBurst SSD - Coordinated\tFlat SSD - Unoordinated\tBurst SSD - Uncoordinated" i = 0 for f in Xf: print f, for Ye in Yes: print round(Ye[i],4), "\t", print i += 1 print i = 0 # for i in range(len(Yds[0])): for i in range(24): print i, for Yd in Yds: print Yd[0][i], Yd[-1][i], print i += 1