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']
Esempio n. 2
0
    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)