...
Get a shell on the head node and navigate to the LSF_TOP RC_CONF_DIR directory.
Code Block cd $LSF_TOP/conf/resource_connector_RC_CONF_DIR
Make subdirectories here:
Code Block mkdir -p exostellar/json exostellar/conf exostellar/scripts cd exostellar/json
Pull Down the Default LSF Environment Assets as a JSON Payload:
...
Copy
default-lsf-env.json
to something convenient likeenv0.json
.Code Block cp default-lsf-env.json env0.json
Note Line numbers listed below reference the above example file. Once changes start being made on the system, the line numbers may change.
Line 2 :
"EnvName"
is set tolsf
by default, but you can specify something unique if needed.NOTE: Currently,
-
characters are not supported in values forEnvName
.
Lines 5-17 can be modified for a single pool of identical compute resources or they can be duplicated and then modified for each “hardware” configuration or “pool” you choose. When duplicating, be sure to add a comma after the brace on line 17, except when it is the last brace, or the final pool declaration.
PoolName
: This will be the apparent hostnames of the compute resources provided for LSF.It is recommended that all pools share a common trunk or base in each
PoolName
.
THIS SHOULD BE MOVED TO TEMPLATE.JSON EDITING SECTION
Priority
: When equal, LSF will treat all pools as having equal priority and then make scheduling decisions based on alphabetical naming. It may be beneficial to set smaller nodes with a higher priority so that jobs are placed on the smallest fitting node, something like:2-core nodes : Priority=1000
4-core nodes : Priority=100
8-core nodes : Priority=10
So that jobs are scheduled on the smallest node that fulfills the resource requirements of the job.
PoolSize
: This is the maximum number of these compute resources.ProfileName
: This is the default profile name,az1
: If this is changed, you will need to carry the change forward.CPUs
: This is the targeted CPU-core limit for this "hardware" configuration or pool.ImageName
: This is tied to the AMI that will be used for your compute resources. This name will be used in subsequent steps.MaxMemory
: This is the targeted memory limit for this "hardware" configuration or pool.MinMemory
: reserved for future use; can be ignored currently.UserData
: This string is a base64 encoded version of user_data.To generate it:
cat user_data.sh | base64 -w 0
To decode it:
echo "<LongBase64EncodedString>" | base64 -d
It’s not required to be perfectly fine-tuned at this stage; it will be refined and corrected later.
Example
user_data.sh
:Code Block #!/bin/bash set -x IP=$( hostname -I |awk '{print $1}' ) NEW_HOSTNAME=ip-$( echo ${IP} |sed 's/\./-/g' ) hostname ${NEW_HOSTNAME} echo >> /etc/hosts echo -e "${IP}\t\t${NEW_HOSTNAME}" >> /etc/hosts . /opt/lsf/conf/profile.lsf lsadmin limstartup lsadmin resstartup badmin hstartup
VolumeSize: reserved for future use; can be ignored currently.
All other fields/lines in this asset can be ignored currently.
...