Package examples :: Module example_local_single
[hide private]
[frames] | no frames]

Source Code for Module examples.example_local_single

  1  """ Example application demonstrating job submission via bigjob  
  2   
  3      DON'T EDIT THIS FILE (UNLESS THERE IS A BUG) 
  4       
  5      THIS FILE SHOULD NOT BE COMMITTED TO SVN WITH USER-SPECIFIC PATHS! 
  6  """ 
  7  import os 
  8  import time 
  9  import pdb 
 10  import sys 
 11   
 12  # configuration 
 13  """ This variable defines the coordination system that is used by BigJob 
 14      e.g.  
 15          advert://localhost (SAGA/Advert SQLITE) 
 16          advert://advert.cct.lsu.edu:8080 (SAGA/Advert POSTGRESQL) 
 17          advert://advert.cct.lsu.edu:5432 (SAGA/Advert POSTGRESQL) 
 18          redis://localhost:6379 (Redis at localhost) 
 19          tcp://localhost (ZMQ) 
 20          tcp://* (ZMQ - listening to all interfaces) 
 21  """ 
 22   
 23  COORDINATION_URL = "advert://localhost/?dbtype=sqlite3" 
 24  #COORDINATION_URL = "advert://SAGA:SAGA_client@advert.cct.lsu.edu:8080/?dbtype=postgresql" 
 25  #COORDINATION_URL = "tcp://*" 
 26  #COORDINATION_URL = "redis://localhost:6379" 
 27  #COORDINATION_URL = "redis://<password>@gw68.quarry.iu.teragrid.org:6379" 
 28  #COORDINATION_URL="sqlasyncadvert://gw68.quarry.iu.teragrid.org/" 
 29   
 30  # for running BJ from local dir 
 31  sys.path.insert(0, os.getcwd() + "/../") 
 32   
 33  from bigjob import bigjob, subjob, description 
 34   
 35   
36 -def main():
37 # Start BigJob 38 39 ########################################################################################## 40 # Edit parameters for BigJob 41 queue=None # if None default queue is used 42 project=None # if None default allocation is used 43 walltime=10 44 processes_per_node=4 45 number_of_processes = 8 46 workingdirectory=os.path.join(os.getcwd(), "agent") # working directory for agent 47 userproxy = None # userproxy (not supported yet due to context issue w/ SAGA) 48 49 50 """ 51 URL of the SAGA Job Service that is used to dispatch the pilot job. 52 The following URLs are accepted: 53 54 lrms_url = "gram://oliver1.loni.org/jobmanager-pbs" # globus resource url used when globus is used. (LONI) 55 lrms_url = "pbspro://louie1.loni.org" # pbspro resource url used when pbspro scheduling system is used.(Futuregrid or LSU Machines) 56 lrms_url = "ssh://louie1.loni.org" # ssh resource url which launches jobs on target machine. Jobs not submitted to scheduling system. 57 lrms_url = "pbs-ssh://louie1.loni.org" # Submit jobs to scheduling system of remote machine. 58 lrms_url = "xt5torque://localhost" # torque resource url. 59 60 Please ensure that the respective SAGA adaptor is installed and working 61 """ 62 lrms_url = "fork://localhost" # resource url to run the jobs on localhost 63 64 ########################################################################################## 65 66 print "Start Pilot Job/BigJob at: " + lrms_url 67 bj = bigjob(COORDINATION_URL) 68 bj.start_pilot_job( lrms_url, 69 None, 70 number_of_processes, 71 queue, 72 project, 73 workingdirectory, 74 userproxy, 75 walltime, 76 processes_per_node) 77 78 print "Pilot Job/BigJob URL: " + bj.pilot_url + " State: " + str(bj.get_state()) 79 80 ########################################################################################## 81 # Submit SubJob through BigJob 82 jd = description() 83 jd.executable = "/bin/date" 84 jd.number_of_processes = "1" 85 jd.spmd_variation = "single" 86 jd.arguments = [""] 87 #jd.working_directory = "/tmp" 88 jd.output = "stdout.txt" 89 jd.error = "stderr.txt" 90 sj = subjob() 91 sj.submit_job(bj.pilot_url, jd) 92 93 ######################################### 94 # busy wait for completion 95 while 1: 96 state = str(sj.get_state()) 97 print "state: " + state 98 if(state=="Failed" or state=="Done"): 99 break 100 time.sleep(2) 101 102 ########################################################################################## 103 # Cleanup - stop BigJob 104 bj.cancel()
105 #time.sleep(30) 106 107 108 """ Test Job Submission via Advert """ 109 if __name__ == "__main__": 110 main() 111