if len(sys.argv) > 4: usage("too many arguments -- no more than 3") if len(sys.argv[1]) < 20: usage("illegal session token -- valid e.g. 54b1c5d523769c2f1b55dffd") else: session = sys.argv[1] if len(sys.argv) > 2: timing = sys.argv[2] if len(sys.argv) > 3: q_pilots = int(sys.argv[3]) # print session s_frame, p_frame, u_frame = rpu.get_session_frames(session, dburl, cachedir) #print p_frame['n_units'][0] # Add metadata to the session DF s_frame['binding'] = os.environ['BINDING'] s_frame['time_distr'] = os.environ['TIME_DISTR'] # Drop failed CUs units = u_frame[u_frame.Done.notnull()] # print units.ix[units['Scheduling'].idxmin()]['Scheduling'] u_first = units.ix[units['Scheduling'].idxmin()]['Scheduling'] # u_last = units.ix[units['finished'].idxmax()]['finished'] u_last = units.ix[units['Done']].idxmax()['Done']
sid = session.uid profiles = rpu.fetch_profiles(sid=sid, tgt='/tmp/') profile = rpu.combine_profiles(profiles) frame = rpu.prof2frame(profile) sf, pf, uf = rpu.split_frame(frame) rpu.add_info(uf) rpu.add_states(uf) adv = uf[uf['event'].isin(['advance'])] rpu.add_frequency(adv, 'f_exe', 0.5, { 'state': 'Executing', 'event': 'advance' }) s_frame, p_frame, u_frame = rpu.get_session_frames(sid) #print str(u_frame) info = [ "uid", "Unscheduled", "StagingInput", "AgentStagingInputPending", "AgentStagingInput", "AllocatingPending", "Allocating", "ExecutingPending", "Executing", "AgentStagingOutputPending", "AgentStagingOutput", "StagingOutput", "Canceled", "Done" ] u_frame.to_csv( "execution_profile_nsims_{0}_simdur_{3}_anamin_{1}_anamax{5}_anatotdur_{2}_max_{4}.csv" .format(tot_sim_tasks, interrupt_gap_min, interrupt_total_duration, sim_arg, interrupt_max_tasks, interrupt_gap_max), sep=',', columns=info, header=info)
for pid, vals in unit_info.iteritems(): if "Terminated" in vals.keys(): line = "{0}, {1}, {2:0.5f}, {3:0.5f}, None\n".format(pid, vals["Interrupt"], vals["Started"],vals["Terminated"]) f1.write(line) elif "Done" in vals.keys(): line = "{0}, None, {1:0.5f}, None, {2:0.5f}\n".format(pid, vals["Started"],vals["Done"]) f1.write(line) f1.close() import radical.pilot.utils as rpu # we have a session sid = session.uid profiles = rpu.fetch_profiles(sid=sid, tgt='/tmp/') profile = rpu.combine_profiles (profiles) frame = rpu.prof2frame(profile) sf, pf, uf = rpu.split_frame(frame) rpu.add_info(uf) rpu.add_states(uf) adv = uf[uf['event'].isin(['advance'])] rpu.add_frequency(adv, 'f_exe', 0.5, {'state' : 'Executing', 'event' : 'advance'}) s_frame, p_frame, u_frame = rpu.get_session_frames(sid) print str(u_frame)
import sys import pandas as pd import radical.utils as ru import radical.pilot.utils as rpu # import matplotlib.pylab as plt if len(sys.argv) == 2: session = sys.argv[1] else: print("insufficient arguments -- need session ID") cachedir = os.getcwd() dburl = os.environ['RADICAL_PILOT_DBURL'] mongo, db, dbname, cname, pname = ru.mongodb_connect(str(dburl)) sf, pf, uf = rpu.get_session_frames(session, db, cachedir) sctr = uf[['pid', 'PendingInputStaging', 'Done']] print sctr sctr.pid.replace({'pilot.0000': '1'}, inplace=True, regex=True) sctr.pid.replace({'pilot.0001': '2'}, inplace=True, regex=True) sctr.pid.replace({'pilot.0002': '3'}, inplace=True, regex=True) sctr.pid.replace({'pilot.0003': '4'}, inplace=True, regex=True) sctr.pid.replace({'pilot.0004': '5'}, inplace=True, regex=True) sctr.pid.replace({'pilot.0005': '6'}, inplace=True, regex=True) sctr.pid.replace({'pilot.0006': '7'}, inplace=True, regex=True) sctr.pid.replace({'pilot.0007': '8'}, inplace=True, regex=True) sctr.pid.replace({'pilot.0008': '9'}, inplace=True, regex=True) sctr.pid.replace({'pilot.0009': '10'}, inplace=True, regex=True)