Opened 3 years ago

Closed 3 years ago

#1684 closed help (answered)

Submit UM Job from puma via command line

Reported by: philrosenberg Owned by: um_support
Priority: normal Component: UM Model
Keywords: Cc:
Platform: UM Version: <select version>


I am trying to debug some code and I have found that I am spending 90% of my time submitting my build job in the umui (xlmm.s) switching between puma and monsoon, checking it built correctly, then submitting a forecast job via the nested suite nssubmit script. Whereas I am only spending 10% of my time actually making code changes.

To combat this I would like to write a short script that will do all that painful stuff for me. Is there a way to submit a job from puma via a script rather than using the UMUI?

It would be also useful to have a way to run a script after the job has completed on monsoon, but if that is tricky I can poll using qstat once per minute or something.



Change History (2)

comment:1 Changed 3 years ago by grenville


You can avoid all but one puma-monsoon interaction.

When you submit a build job, our code plus build configs is copied to MONSooN and lives in /projects/dacciwa/prosen/xlmms (in this case). In that directory, you'll see baserepos umatmos umrecon umscripts; cd to umatmos

gmslis@xcml00:/projects/dacciwa/prosen/xlmms/umatmos> ls
bin cfg done ext.out fcm_env.ksh flags inc Makefile obj ppsrc src

the build info is in cfg; cd into it

gmslis@xcml00:/projects/dacciwa/prosen/xlmms/umatmos/cfg> ls
bld.cfg ext.cfg parsed_bld.cfg

these are config files for the extract and build. You may want to play with bld.cfg to change compiler options etc

Typing fcm build here will do an interactive incremental build of the executable for you (or fcm build -f for a full build) it will live in /projects/dacciwa/prosen/xlmms/umatmos/bin (you'll have to copy it to $DATAW or point the job here).

You will make code changes in baserepos or umatmos (depends whether the code is from a branch or not — I'm sure this will become clear when you play with this).

To run, you'll need a umui_runs directory for the job - you'll have one if the job failed) - in that directory type qsub umuisubmit_run to run the job. You could make code changes in baserepos..etc and qsub umuisubmit_compile (this is what the umui job will do effectively - this will submit a build job to the queue and put the executable in $DATAW. So there's a couple of ways to do the build.

I set DONT_TIDY=true in umuisubmit_rcf and umuisubmit_run so that the runs directory doesn't get deleted on a successful run.

It's a bit dangerous making lots of code changes this way because you can easily lose them, but for debugging, this approach does same time

You can make changes to the namelists in the umui_runs directory too to completely avoid PUMA, but that's equally dangerous.


comment:2 Changed 3 years ago by grenville

  • Resolution set to answered
  • Status changed from new to closed


Closing this now - open another ticket if needed.


Note: See TracTickets for help on using tickets.