⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loadave3.basl

📁 openPBS的开放源代码
💻 BASL
字号:
////         OpenPBS (Portable Batch System) v2.3 Software License// // Copyright (c) 1999-2000 Veridian Information Solutions, Inc.// All rights reserved.// // ---------------------------------------------------------------------------// For a license to use or redistribute the OpenPBS software under conditions// other than those described below, or to purchase support for this software,// please contact Veridian Systems, PBS Products Department ("Licensor") at:// //    www.OpenPBS.org  +1 650 967-4675                  sales@OpenPBS.org//                        877 902-4PBS (US toll-free)// ---------------------------------------------------------------------------// // This license covers use of the OpenPBS v2.3 software (the "Software") at// your site or location, and, for certain users, redistribution of the// Software to other sites and locations.  Use and redistribution of// OpenPBS v2.3 in source and binary forms, with or without modification,// are permitted provided that all of the following conditions are met.// After December 31, 2001, only conditions 3-6 must be met:// // 1. Commercial and/or non-commercial use of the Software is permitted//    provided a current software registration is on file at www.OpenPBS.org.//    If use of this software contributes to a publication, product, or//    service, proper attribution must be given; see www.OpenPBS.org/credit.html// // 2. Redistribution in any form is only permitted for non-commercial,//    non-profit purposes.  There can be no charge for the Software or any//    software incorporating the Software.  Further, there can be no//    expectation of revenue generated as a consequence of redistributing//    the Software.// // 3. Any Redistribution of source code must retain the above copyright notice//    and the acknowledgment contained in paragraph 6, this list of conditions//    and the disclaimer contained in paragraph 7.// // 4. Any Redistribution in binary form must reproduce the above copyright//    notice and the acknowledgment contained in paragraph 6, this list of//    conditions and the disclaimer contained in paragraph 7 in the//    documentation and/or other materials provided with the distribution.// // 5. Redistributions in any form must be accompanied by information on how to//    obtain complete source code for the OpenPBS software and any//    modifications and/or additions to the OpenPBS software.  The source code//    must either be included in the distribution or be available for no more//    than the cost of distribution plus a nominal fee, and all modifications//    and additions to the Software must be freely redistributable by any party//    (including Licensor) without restriction.// // 6. All advertising materials mentioning features or use of the Software must//    display the following acknowledgment:// //     "This product includes software developed by NASA Ames Research Center,//     Lawrence Livermore National Laboratory, and Veridian Information//     Solutions, Inc.//     Visit www.OpenPBS.org for OpenPBS software support,//     products, and information."// // 7. DISCLAIMER OF WARRANTY// // THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. ANY EXPRESS// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT// ARE EXPRESSLY DISCLAIMED.// // IN NO EVENT SHALL VERIDIAN CORPORATION, ITS AFFILIATED COMPANIES, OR THE// U.S. GOVERNMENT OR ANY OF ITS AGENCIES BE LIABLE FOR ANY DIRECT OR INDIRECT,// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.// // This license will be governed by the laws of the Commonwealth of Virginia,// without reference to its choice of law rules.// ////// loadave3.basl: A simple scheduler to run up to 3 jobs if the load average// 		  is less than 2.0 and the job cput is less than 60 seconds.//		  This is for each of the server hosts it knows about.//// NOTE: This is the same as loadave2.basl but references to queues are removed//	 by making use of the function "ServerJobsGet()".//// Environment: Many Server / Many CNode //// Configuration file://		$serverhost host1 port1//		$serverhost host2 port2	//		...//		$momhost host1 port1//		$momhost host2 port2//		...// **************************************************************************//// User-defined Functions//// **************************************************************************CNode findCNodeByName(String host_name){	Set CNode	exec_hosts;	CNode		n;		// get the nodes to the system via the configuration file	exec_hosts = AllNodesGet();	foreach( n in exec_hosts ) {		if( CNodeNameGet(n) EQ host_name ) {			return(n);		}	}	return(NOCNODE);}// **************************************************************************//// Global variable declarations//// **************************************************************************Int nrun;// **************************************************************************//// main scheduling code//// **************************************************************************sched_main(){	Set Server serv_hosts;	Server	h;	CNode	node;		Set Job	jobs;	Job	j;	String	host_name;	Float	loadave;	// get all servers known to the system	serv_hosts = AllServersGet();	foreach( h in serv_hosts ) {	  	   nrun = 0;	   host_name = ServerInetAddrGet(h);	   node = findCNodeByName(host_name);	   if( loadave GE 2.0 OR loadave LT 0.0 ) {		continue;	   }	   jobs = ServerJobsGet(h);	   foreach( j in jobs ) {		if( JobStateGet(j) NEQ RUNNING AND		    JobIntResReqGet(j, "cput") LT 60 ) {				// run job syncronously			if( JobAction(j, SYNCRUN, NULLSTR) EQ SUCCESS ) {				nrun=nrun+1;	              	}	              	if( nrun GT 2 ) {				break;	              	}		}	   } // foreach jobs        } // foreach h}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -