Ocean
To submit a job from an Ocean script to Altair Accelerator, use the option
?drmsCmd
in the run()
procedure, and use the
regular nc run submission command. We recommend using a jobclass
to define the licenses and environments required for a successful job execution. We
also recommend using a unique name for each job, in order to enable waiting for each
specific job.
nc run -C spectre_ade -J JOBNAME ...
as the submission command. It is assumed that the jobclass "spectre_ade" is ready and working.
A few lines below, we wait for a specific job using the unique job name, specifically using:
nc wait -select "jobname==JOBNAME"
The following fragment of Ocean script is part of a much bigger script and is meant to show a possible interaction beteen Ocean and Altair Accelerator.
foreach(curr_corner listOfCorners
;;;
;;; --- Do whatever is needed
;;;
;; Compute a unique name for the jobs used in this session.
;; Here we use the PID of the current Ocean process as uniquifier.
;; The name of each job contains the corner name.
;; Options used in nc run:
;; -C JobClass
;; -J JobName
;;
sprintf( ncNameRoot "ocn_%d_" ipcGetPid() )
ncName = strcat( ncNameRoot curr_corner )
submissionCommand = strcat( "nc run -C spectre_ade -J " ncName )
myresults = run( ?jobName "rtda" ?drmsCmd submissionCommand )
joblist = append( joblist list(list(myresults curr_corner ncName)) )
)
foreach(job joblist
curr_job =nth(0 job)
curr_corner=nth(1 job)
ncName =nth(2 job)
println( strcat("WAITING FOR COMPLETION OF JOB " ncName ) )
csh( strcat("nc wait -select jobname==" ncName ) )
;;;
;;; --- DO whatever is needed
;;;
)