Revision history for Python extension module PyLoadL 10/08/2008 PyLoadL 0.4.6 (LL3.4 Only) - Tested with LoadLeveler 3.4.3.3 on AIX5.3/SLES 10, Python 2.5.2, Pyrex 0.9.8 - Modified code for int arrays decode in ll_get_data routine - Added/corrected missing versioning for enums 17/05/2008 PyLoadL 0.4.5 (LL3.4 Only) - Tested with LoadLeveler 3.4.3.1 (SLES 10), Python 2.5.2, Pyrex 0.9.8 - Added LLAPI_Specification enums : LL_MachineRSetSupport BG_BP_SOME_DOWN=BG_BP_ERROR to bg_bp_state_t MCM_AFFINITY, USER_DEFINED_RSET, NO_AFFINITY to AffinitySupport 20/01/2008 PyLoadL 0.4.4 (LL3.4 Only) - Tested with LoadLeveler 3.4.2.1 (SLES 10), Python 2.5.1, Pyrex 0.9.6.4 on BlueGene/P - Modified ll_get_data routine in pyloadl.pyx.tmpl to include missing boolean data type decode - Added lltop_dog example script - Added the following enums for LL3.4.2 : QueryFlags - QUERY_TOP_DOG QueueTypes - QUEUE_SYS_PREEMPTED, QUEUE_GLOBAL_WAIT - Corrected LLAPI_Specification enums : LL_NodeGetFirstNodeRequirement should be LL_NodeGetFirstResourceRequirement LL_NodeGetNextNodeRequirement should be LL_NodeGetNextResourceRequirement - Added LLAPI_Specification enums for LL3.4.2 : LL_StepTaskAffinity, LL_StepCpusPerCore LL_StepIsTopDog, LL_StepConsideredAt LL_StepEstimatedStartTime, LL_StepUserHoldTime LL_StepQueueId, LL_StepQueueIndex LL_ClassExcludeBg, LL_ClassIncludeBg LL_BgBPIONodeCount LL_BgPartitionUserList, LL_BgPartitionIONodeCount LL_BgPartitionCnLoadImage, LL_BgPartitionIoLoadImage LL_BgPartitionIONodeList LL_BgNodeCardSubDividedBusy, LL_BgNodeCardIONodeCount LL_BgNodeCardGetFirstIONode, LL_BgNodeCardGetNextIONode LL_BgIONodeId, LL_BgIONodeIPAddr LL_BgIONodeCurrentPartition, LL_BgIONodeCurrentPartitionState - Modified order of parameters for functions ll_move_job and ll_move_spool 21/06/2007 PyLoadL 0.4.3 (LL3.4 Only) - Tested with LoadLeveler 3.4.1.1 (SLES 10), Python 2.5, Pyrex 0.9.5.1 - Added/Corrected a few examples and removed deprecated data_access variables at LL3.4 - Added variables that I missed in LL3.4.0.1 release - Added new data access variables for LL3.4.1.1 release 20/04/2007 PyLoadL 0.3.2.1 - Added deprecated ll_start_job routine for Kenneth Yoshimoto (kenneth@sdsc.edu) - Minor changes to prevent some pyrex warnings 04/03/2007 PyLoadL 0.4.2 (LL3.4 Only) - Tested with LoadLeveler 3.4.0.3 (SLES 10), Python 2.5, Pyrex 0.9.5.1 This a minor release to resolve warnings identified by Pyrex 0.9.5+ - Modified a few examples so they no longer contain deprecated data_access variables at LL3.4 - Added missing variable LL_AdapterReqRcxtBlks to pyloadlvar.py.tmpl provided by Kenneth Yoshimoto (kenneth@sdsc.edu) - Fixed ll_start_job_ext routine 19/12/2006 PyLoadL 0.4.1 (LL3.4 Only) - Tested with LoadLeveler 3.4.0.2 (SLES 10), Python 2.5, Pyrex 0.9.4.1 - Added enum SMTRequiredState 29/11/2006 PyLoadL 0.4.0 (LL3.4 Only) - Tested with LoadLeveler 3.4.0.1 (SLES 10), Python 2.5, Pyrex 0.9.4.1 - Added LoadLeveler 3.4 Config API functions : ll_read_config & ll_config_changed - Added example llconfig.py based on C code provided by April Brown (IBM-LL Dev) - Added LoadLeveler 3.4 WorkLoad Management API function : ll_move_spool - Added llmovespool.py example 03/03/2007 PyLoadL 0.3.2 - Added missing variable LL_AdapterReqRcxtBlks to pyloadlvar.py.tmpl provided by Kenneth Yoshimoto (kenneth@sdsc.edu) - Fixed ll_start_job_ext routine, tested with LoadLeveler 3.3.2.8/9, Python 2.4.2 with Pyrex 0.9.3.1 for SDSC, Python 2.4.3 & Pyrex 0.9.5.1 and Python 2.5 with Pyrex 0.9.5.1 29/11/2006 PyLoadL 0.3.1 - Tested with LoadLeveler 3.3.2.6, Python 2.5, Pyrex 0.9.4.1 - Added example llconfig.py based on C code provided by April Brown (IBM-LL Dev) 31/10/2006 PyLoadL 0.3.0 - Tested with LoadLeveler 3.3.2.6, Python 2.5, Pyrex 0.9.4.1 - Modified setup.py to use llctl -v command to determine LoadLeveler version and not RPM database - Modified llctl regular expression to cope with LoadLeveler 3.3.2.5A interim release for X86 & X86_64 - Corrected assignment of LL_BgBPLocation to an int array - Added BlueGene examples : llstatus-b.py (llstatus -b command) llstatus-B.py (llstatus -B all command) - Added Data Access Variables that appeared in LL3.3.2.0 : LL_AdapterUsagePortNumber, LL_AdapterUsageLmc, LL_AdapterPortNumber, LL_AdapterLmc, LL_AdapterUsageNetworkId64, LL_AdapterUsageDeviceDriver, LL_AdapterUsageDeviceType - Added Undocumented Config API functions (UNSUPPORTED), offical in LoadLeveler 3.4 ll_read_config & ll_config_changed, added simple ll_config.py example 19/8/2006 PyLoadL 0.2.0 (ProtoGeek Release) - Tested with LoadLeveler 3.3.2.5, Pyrex 0.9.4.1 - Modified setup.py to cope with new RPM packaging format for LoadLeveler 3.3.2.x - Added LoadLeveler 3.3.2.x FairShare API function: ll_fair_share, FairShare object data and llfs example - Added DataSpec decoder for LL_FairShareEntryTypes, LL_FairShareAllocatedShares & LL_FairShareUsedShares int arrays (Mary Cushion) - Added new ClassUser object data - Tested BlueGene/L support (LoadLever SUSE9 PPC 64 3.3.1.0-3 RPM) My Gratitude to my friends at San Diego Supercomputer Center (SDSC) who made this possible - Modified LL_BGPartitionNodeCardList/LL_BgPartitionBPList to an array of strings to pyloadlvar.py.tmpl - Thanks to Mike Hawkins - Added new DataSpec type & decoder for LL_BGPartitionNodeCardList and LL_BgPartitionBPList in pyloadl.pyx.tmpl - Corrected dual definition of LL_BgMachineSize to LL_BgMachineSwitchCount in pyloadlvar.py.tmpl - Added BlueGene/L examples 12/2/2006 PyLoadL 0.1.0 - Initial BlueGene/L support - (Untested) 1/1/2006 PyLoadL 0.0.5 - Initial Linux support - (LoadLeveler SUSE 10 3.3.1.2 RPM) - Added LoadLeveler 3.3 Workload API functions: ll_cluster, ll_cluster_auth & ll_move_job - Added llcluster code examples 8/12/2005 PyLoadL 0.0.4 - Tested with LoadLeveler 3.3.1.0 - 3.3.1.1 & Python 2.4.2 - Tested with LoadLeveler 3.3.0.0 - 3.3.0.5 & Python 2.4.1/2.4.2, Pyrex 0.9.3.1 - Tested with LoadLeveler 3.2.0.15 & Python 2.3.5 - Added back rev support for LoadLeveler 3.1.x (untested) - Added code examples: llqres.py, llrmres.py, llmkres.py, llbindres.py, llchres.py, llpreempt.py, llpreempt_jobs.py - Added LoadLeveler 3.3 Reservation API functions: ll_make_reservation, ll_change_reservation, ll_remove_reservation, ll_bind & ll_preempt_jobs - Added LoadLeveler 3.3 Workload API functions: ll_terminate_job, ll_modify, ll_run_scheduler and ll_preempt_jobs (Many Thanks To Peter Mayes, Waiman Chan) - Modified cluster.py example code for memory enforcement - Correctly free arrays in pyloadl.pyx.tmpl (Mike Hawkins) - Renamed pyloadlvar.py to pyloadlvar.py.tmpl - Added C Preprocessor step in setup.py to generate a python file from a pyloadlvar.py.tmpl template file for the LoadLeveler versions installed 14/06/2005 PyLoadL 0.0.3 - Tested with LoadLeveler 3.2.0.14 & Python 2.4.1/2.3.5 - Corrected class.py example code - Corrected mem in LL_STEP_ID structure to be uint64_t 19/02/2005 PyLoadL 0.0.2 - Tested with LoadLeveler 3.2.0.12 & Python 2.2.3, changed setup.py for mininum Python version - Fixed setup.py so pyloadl.so is copied to site-packages/pyloadl/ directory - Added global history example code - Modified pyloadl.pyx.tmpl to handle int64_t/uint64_t correctly - Added to pyloadlvar.py new int64_t/uint64_t data types - Modified pyloadl.pyx.tmpl to handle LL_AdapterWindowList conversion 31/12/2004 PyLoadL 0.0.1 - Tested with LoadLeveler 3.2.0.12 and Python 2.3.4 - Corrected Python version check in setup.py, reported by Kenneth Yoshimoto (kenneth@sdsc.edu) - Missing free object of pyStringSeqToStringArray in ll_start_job_ext function - Added PyCObjValid test to ll_query in example code, false if pointer could not be created - Added XML-RPC server/client example code 29/10/2004 PyLoadL Beta 1 - Converted tabbed indentation to spaces - Added new LoadLeveler 3.2.0.9 API fields LL_StepStartTime & LL_StepUserRcxtBlocks index values to pyloadlvar.py - Added LL_StepBulkXfer, LL_StepTotalRcxtBlocks, LL_StepStartTime, LL_StepUserRcxtBlocks to enum declaration in pyloadl.pyx - Corrected LL_StepMaxProtocols enum declaration in pyloadl.pyx - Added C Preprocessor ifdefs for identified LoadLeveler 3.1 & 3.2 API features - Renamed pyloadpy.pyx to pyloadpy.pyx.tmpl - Added C Preprocessor step in setup.py to generate a pyrex file from a pyloadl.pyx.tmpl template file for the LoadLeveler versions installed - Corrected llq examples to detect correct hold type for a held job - Added jobremain example that displays remaining time for a jobstep - Modified CHANGELOG layout - Added missing API fields LL_AdapterUsageTag & LL_AdapterUsageNetworkId to pyloadl.pyx.tmpl and pyloadlvar.py - Added to pyloadlvar.py enum values for FREE_SLOTS_LIMITED_BY_MAX_STARTERS, MAXIMUM_SLOTS_LIMITED_BY_MAX_STARTERS & FREE_SLOTS_LIMITED_BY_MAX_JOBS 05/09/2004 PyLoadL Alpha 4 - Cleaned up setup.py for Python package classifiers, modified the LoadLeveler version string section for LoadLeveler dependant features in the future - Corrected class.py example code bug 04/07/2004 PyLoadL Alpha 3 - Cleaned up the documentation again - Added more examples - Added job states as constants in pyloadlvar - Changed the int64 conversion type to long long - Defined cdef type time_t as int - Corrected index value for LL_ResourceRequirementValue64, LL_StepLargePage and LL_StepMaxProtocolInstances in pyloadlvar.py.tmpl - Added LL_StepBulkXfer & LL_StepTotalRcxtBlocks index values to pyloadlvar 30/06/2004 PyLoadL Alpha 2 - Cleaned up the documentation and examples - Converted PyLoadL functions names to match LoadLeveler API function name via Pyrex feature - Corrected incorrect C char** data type to python list conversion that was demonstrated via the example class.py script with data in char** fields such as LL_ClassExcludeUsers 26/06/2004 PyLoadL Alpha 1 - Initial release