<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"><base href="x-msg://7394/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Hi Brian,</div><div><br></div><div>I am not sure this is what you're looking for but few months back I integrated comsol with Moab. This is how I did it.</div><div><br></div><div>This is where I found the documentation.</div><div><br></div><div><a href="http://www.clusterresources.com/products/mwm/docs/MWMAdminGuide5_4.pdf">http://www.clusterresources.com/products/mwm/docs/MWMAdminGuide5_4.pdf</a> : Ch 13.5.3.3</div><div><br></div><div>We have floating comsol license (2 seat) and heat transfer module with one seat.</div><div><br></div><div>First, I tried by adding these two lines. This makes moab talk directly to license manager. It works well. The major problem with this approach is that it totally depends on the license manager for the number of available licenses. This means it fails in a situation as below:</div><div><br></div><div><div><div>RMCFG[FLEXlm] &nbsp; &nbsp; &nbsp;TYPE=NATIVE RESOURCETYPE=LICENSE</div><div>RMCFG[FLEXlm] &nbsp; &nbsp; &nbsp;CLUSTERQUERYURL=<a href="exec://$TOOLSDIR/license.mon.flexLM.pl">exec://$TOOLSDIR/license.mon.flexLM.pl</a></div></div></div><div><br></div><div>Assume that only one license is available. User submits a job but doesn't check out the license for a while. Moab talks to license manager as soon as job is submitted and when it sees that license is available it starts running the job. But user hasn't started running, let's say comsol, in the first half an hour. This means license is not checked out from the license manager. In the mean time a new user comes submits the job that needs comsol. Moab talks to license manager and since license is not yet checked out it gets notified by license manager that license is available and hence moab starts running this job as well. As you can see at some point one of the job fails.</div><div><br></div><div><div>So, I preferred this method as Moab knows how many license are available and it doesn't need to talk to license manager at all.</div></div><div><br></div><div>I have added these two lines to moab.cfg</div><div><br></div><div><br></div><div>NODECFG[GLOBAL] &nbsp; GRES=COMSOL:2</div><div>NODECFG[GLOBAL] &nbsp; GRES=HEATTRANSFER:1</div><div><br></div><div><br></div><div>and asked users to add this line to their pbs scripts.</div><div><br></div><div>#PBS -W x=GRES:comsol,heattransfer</div><div><br></div><div>I check the resources with this command:</div><div><br></div><div><div># mdiag -n GLOBAL</div><div>compute node summary</div><div>Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;State &nbsp; Procs &nbsp; &nbsp; &nbsp;Memory &nbsp; &nbsp; &nbsp; &nbsp; Opsys</div><div><br></div><div>----- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --- &nbsp; &nbsp;0:0 &nbsp; &nbsp; &nbsp; &nbsp; 0:0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-----</div><div><br></div><div>Total Nodes: 0 &nbsp;(Active: 0 &nbsp;Idle: 0 &nbsp;Down: 0)</div><div><br></div><div><br></div><div>NODE[GLOBAL] Config Res &nbsp; &nbsp; COMSOL: 2 &nbsp;HEATTRANSFER: 1</div><div>NODE[GLOBAL] Dedicated Res &nbsp;---</div><div>NODE[GLOBAL] Available Res &nbsp;COMSOL: 2 &nbsp;HEATTRANSFER: 1</div><div><br></div><div><br></div></div><div>Finally, I put a script on our login nodes for users to see how many licenses are available:</div><div><br></div><div>This is the script:</div><div><br></div><div><div>[root@login-0-0 ~]# cat /usr/local/bin/comsol_licenses&nbsp;</div><div>#!/bin/bash</div><div><br></div><div>toolbox[0]="Toolbox"</div><div>total[0]="Licenses"</div><div>use[0]="In Use"</div><div>available[0]="Available"</div><div>printf "\n%-21s %-10s %-9s %s\n\n" "${toolbox[0]}" "${total[0]}" "${use[0]}" "${available[0]}"</div><div><br></div><div>i=0</div><div>IFS=$'\n'</div><div>for line in `/usr/local/bin/flexlm/bin/lmutil lmstat -a &nbsp;-c 1718@&lt;license server 1 fqdn&gt;:1718@&lt;license server 2 fqdn&gt;:1718@&lt;license server 3 fqdn&gt; | egrep " \(Total "`</div><div>do</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>i=$(($i+1))</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>toolbox[$i]=$(echo $line | awk -F" " '{print $3}')</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>total[$i]=$(echo $line | awk -F" " '{print $6}')</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>use[$i]=$(echo $line | awk -F" " '{print $11}')</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>available[$i]=$((${total[$i]}-${use[$i]}))</div><div>done</div><div><br></div><div>for ((j=1;j&lt;${#toolbox[@]};j++))</div><div>do</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>printf "%-25s %-9s %-9s %s\n" "${toolbox[$j]}" "${total[$j]}" "${use[$j]}" "${available[$j]}"</div><div>done</div><div><br></div><div>printf "\n"</div><div>[root@login-0-0 ~]#</div></div><div><br></div><div><br></div><div>this is the output we get when it is run:</div><div><br></div><div><div>[root@login-0-0 ~]# comsol_licenses&nbsp;</div><div><br></div><div>Toolbox &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Licenses &nbsp; In Use &nbsp; &nbsp;Available</div><div><br></div><div>COMSOL: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>COMSOLBATCH: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>CFD: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>CFDBATCH: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>LLMATLAB: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>LLMATLABBATCH: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>MATLIB: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>MATLIBBATCH: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>MICROFLUIDICS: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>MICROFLUIDICSBATCH: &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>PARTICLETRACING: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>PARTICLETRACINGBATCH: &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>LLEXCEL: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>LLEXCELBATCH: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>MOLECULARFLOW: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>MOLECULARFLOWBATCH: &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>HEATTRANSFER: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 1</div><div>HEATTRANSFERBATCH: &nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 1</div><div>COMSOLGUI: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>CLIENTSERVER: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>CLUSTERNODE: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>HT: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; 1</div><div><br></div><div>[root@login-0-0 ~]#</div></div><div><br></div><div>Obviously, this looks nice on the terminal.</div><div><br></div><div>Sreedhar.</div><div>New York University.</div><div><br></div><div><div>On Aug 30, 2013, at 4:44 PM, "Andrus, Brian Contractor" &lt;<a href="mailto:bdandrus@nps.edu">bdandrus@nps.edu</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div lang="EN-US" link="blue" vlink="purple" style="font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div class="WordSection1" style="page: WordSection1; "><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; ">All,<o:p></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; "><o:p>&nbsp;</o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; ">I am looking at using consumable resources as a way to manage our licenses, but most of our software has floating licenses, so they are not node-locked as the examples give.<o:p></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; "><o:p>&nbsp;</o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; ">Has anyone found a way to manage such licenses so a job will not run until licenses are available?<o:p></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; ">I donít want to have the script wait for them, because that cuts into walltime and could cause jobs to be aborted.<o:p></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; "><o:p>&nbsp;</o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; ">Brian Andrus<o:p></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; ">ITACS/Research Computing<o:p></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; ">Naval Postgraduate School<o:p></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; ">Monterey, California<o:p></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; ">voice: 831-656-6238<o:p></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; "><o:p>&nbsp;</o:p></div></div>_______________________________________________<br>torqueusers mailing list<br><a href="mailto:torqueusers@supercluster.org" style="color: purple; text-decoration: underline; ">torqueusers@supercluster.org</a><br><a href="http://www.supercluster.org/mailman/listinfo/torqueusers" style="color: purple; text-decoration: underline; ">http://www.supercluster.org/mailman/listinfo/torqueusers</a><br></div></blockquote></div><br></body></html>