Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Get a shell on the head node and navigate to the LSF_TOP RC_CONF_DIR directory.

    1. Code Block
      cd $LSF_TOP/conf/resource_connector_RC_CONF_DIR
  2. Make subdirectories here:

    1. Code Block
      mkdir -p exostellar/json exostellar/conf
      exostellar/scripts
      cd exostellar/json

Pull Down the Default LSF Environment Assets as a JSON Payload:

...

  1. Copy default-lsf-env.json to something convenient like env0.json.

    1. Code Block
      cp default-lsf-env.json env0.json
  2. Note Line numbers listed below reference the above example file. Once changes start being made on the system, the line numbers may change.

  3. Line 2 : "EnvName" is set to lsf by default, but you can specify something unique if needed.

    1. NOTE: Currently, - characters are not supported in values forEnvName.

  4. 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.

    1. PoolName: This will be the apparent hostnames of the compute resources provided for LSF.

      1. It is recommended that all pools share a common trunk or base in each PoolName.

    2. 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:

      1. 2-core nodes : Priority=1000

      2. 4-core nodes : Priority=100

      3. 8-core nodes : Priority=10

      4. So that jobs are scheduled on the smallest node that fulfills the resource requirements of the job.

    3. PoolSize: This is the maximum number of these compute resources.

    4. ProfileName: This is the default profile name, az1: If this is changed, you will need to carry the change forward.

    5. CPUs: This is the targeted CPU-core limit for this "hardware" configuration or pool.

    6. ImageName: This is tied to the AMI that will be used for your compute resources. This name will be used in subsequent steps.

    7. MaxMemory: This is the targeted memory limit for this "hardware" configuration or pool.

    8. MinMemory: reserved for future use; can be ignored currently.

    9. UserData: This string is a base64 encoded version of user_data.

      1. To generate it:

        1. cat user_data.sh | base64 -w 0

      2. To decode it:

        1. echo "<LongBase64EncodedString>" | base64 -d

      3. It’s not required to be perfectly fine-tuned at this stage; it will be refined and corrected later.

      4. Exampleuser_data.sh:

        1. 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
    10. VolumeSize: reserved for future use; can be ignored currently.

  5. All other fields/lines in this asset can be ignored currently.

...