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.

Below you can find a fragment of an Ocean script. First we compute a unique name for each job we want to submit, then we use
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 
   ;;;

 )