MRG Interactive Developments

Mesoscale Research Group, McGill/SUNY/UQAM


Instructions for the Simple Software Manager (SSM)



Introduction to SSM

The Simple Software Manager (SSM) is a SourceForge registered project managed by developers at the Canadian Meteorological Centre. It is intended to be a simple mechanism for installing and maintaining software packages. Full documentation for the package is available here.

Installing SSM and Basic Packages

This installation guide covers installations by the "armnlib" user in the $HOME/ssm directory. Paths will need to be modified in the following instructions if a non-standard user or a non-standard target directory is used, so make sure that you keep track of your target directory when following these instrutions if you are not using $HOME/ssm.

  1. Make sure that compilers are installed and working before continuing.
  2. Download the installer: wget http://collaboration.cmc.ec.gc.ca/science/ssm/install_ssm.ksh
  3. (Optional): Check the installer that you just downloaded against the local version (will not overwrite the downloaded installer): wget http://www.atmos.albany.edu/facstaff/rmctc/ssm/install_ssm-doc.ksh
    diff install_ssm.ksh install_ssm-doc.ksh
    If they are the same, then you're golden: carry on to the next step. If significant differences exist, then this installation document may need to be updated. Alternatively, you can proceed using install_ssm-doc.ksh as your installer if you dare.
  4. Uncomment appropriate ARCHITECTURE setting in 'install_ssm.ksh'.
  5. TIP: If you are not installing the CMC compilers, but instead are using your own Portland Group compilers, then follow these additional instructions.
  6. Make the installer executable:chmod u+x install_ssm.ksh
  7. If you are using a bash shell, make sure that you have removed the .bash_profile and .bash_logout files in your home directory. If the .bash_profile file is found, then it is executed instead of .profile. This will keep the SSM installation from running.
  8. Run the installer:./install_ssm.ksh
  9. Check to see that PHASE 1 completes without errors.
  10. Link ECssm to the install path:ln -s ssm ECssm
  11. Set up the environment:mv -f ./.profile_usr ./.profile_usr.backup; mv -f ./.profile ./.profile_usr; ln -s ECssm/all/share/env_univ/.profile ./.profile
  12. Run the installer:./install_ssm.ksh
  13. Check to see that PHASE 2 completes without errors.
  14. TIP: If you are installing x86_64 binaries with Portland Group compilers, then follow these additional instructions.
  15. WARNING: If you are installing x86 (32 bit) binaries on an x86_64 (64 bit) machine, then follow these additional instructions.
  16. TIP: If you are not installing the CMC Portland Group compilers, but instead are using your own Portland Group compilers, then follow these additional instructions.
  17. Log out and log back in.
  18. TIP: If you are on a new platform or are not using Portland Group compilers, then follow these additional instructions.
  19. Run the installer:./install_ssm.ksh
  20. Check to see that PHASE 3 completes without errors. If you get errors, try going back to steps and following the tip provided there.
  21. Run the installer:./install_ssm.ksh
  22. Check to see that PHASE 4 completes without errors.
  23. Log out and log back in.
  24. In the ~/.profile file, modify the default values (near line 32) of the UniEnv and SSMDOMAINHOME variables (currently default to somewhere on dormrb02) to reproduce the system share path: export UniEnv=${UniEnv:-/home/armnlib/ssm/all/share}
    export SSMDOMAINHOME=${SSMDOMAINHOME:-/home/armnlib/ssm}
    export SSMUSERDOMAINHOME=$SSMDOMAINHOME
  25. In the /home/armnlib/ssm/etc/ssm.d/profile file, change the word prepend to append to make sure that the local installation does not come before ~/ovbin in the directory tree: perl -pi -e 's/prepend/append/' ~/ssm/etc/ssm.d/profile
  26. If you are using a cluster, you will probably want all of the machines to return the same TRUE_HOST environment variable. In the /home/armnlib/ssm/all/share/env_univ/.profile file under the "set host/true host" section (near line 98), add a line starting with if [[ $HOST = , followed by your local execute node names and the name of your head node. Follow the style of the CMC entries already made.
  27. Log out and log back in.

Subscribing the System Domain

Under SSM, each user can be subscribed to a single system domain and a single user domain. This is because the package modifies either the /etc/profile and /etc/login files that is executed each time a user logs in to the system (the system domain is defined in that file - the contents of the /etc/ssm.d directory are also modified during a system domain subscription), or the ~/.profile_usr file that belongs to each user independently (the appended _usr is a product of the SSM installation). To avoid the limitations that this implies, users are allowed to register subdomains below the user domain.

  1. If you do not have sudo or administrator priviliges, switch to the administrator accout by issuing the su command and entering the root password (do not use the -l login option since it modifies the environment).
  2. Subscribe the system domain:ssm subscribe --system -d ~armnlib/ssm
  3. Log out of root account.

User Accounts

Each user will have to make a slight modification to his/her account in order to correctly access the system domain. Have the user log in and execute the following commands.

  1. User environment setup: cd ~; mv -f .profile_usr .profile_usr.backup; mv -f .profile .profile_usr; ln -s ~armnlib/.profile .
  2. If the user is using a bash shell: cd; /bin/mv -f .bash_profile .old_bash_profile; /bin/mv -f .bash_logout .old_bash_logout

Installing the COMM Model

This section assumes that you are installing x86-64 binaries on an x86-64 system as the "armnlib" user. If you are on an x86 (or other) system, or you are installing x86 binaries on an x86-64 system, then the architecture extensions of the binary SSM packages must be modified to agree with your build needs.

The model has to be installed in a domain separate from the rest of the RPN Library. This is because multiple versions of the model should be allowed to exist on a single system. Since SSM works by creating directories and links to the "published" packages, there will be a collision for every published file that exists in more than one model distribution. To avoid this problem, we will install the model in a separate domain, and then use the subdomain subscription feature of SSM to select the correct model and version.

  1. Select a name for the new model installation (use the model name and version to make the domain easy to select - I use GEM version 3.2.2 in this example): export GEMSSM=/home/armnlib/ssm_gem_3.2.2
  2. Create a new domain for model installation: ssm created -y -d ssm_gem_3.2.2
  3. Add this repository to your list: echo "" >>~/ssm/etc/ssm.d/sources.list; echo "http://www.atmos.albany.edu/facstaff/rmctc/ssm/repo" >>~/ssm/etc/ssm.d/sources.list
  4. Clean the resulting file to remove original cruft if necessary
  5. If you are installing from outside the EC intranet, follow these additional instructions
  6. In the ${GEMSSM}/etc/ssm.d/profile file, change the word prepend to append to make sure that the local installation does not come before ~/ovbin in the directory tree: perl -pi -e 's/prepend/append/' ${GEMSSM}/etc/ssm.d/profile
  7. To install from binaries, add the following background packages (NOTE: you do not need to follow this step if a COMM model has already been installed on the machine - this is done only the first time that the COMM model is built): ssm install -y -p env-configs_1.0_all
    ssm publish -y -p env-configs_1.0_all
    ssm install -y -p env-etagere_1.0_all
    ssm publish -y -p env-etagere_1.0_all
    ssm install -y -p environment-lib-pub_1.0_linux24-x86-64
    ssm publish -y -p environment-lib-pub_1.0_linux24-x86-64
    ssm install -y -p rmnlib-bin_1.0_linux24-x86-64
    ssm publish -y -p rmnlib-bin_1.0_linux24-x86-64
    ssm install -y -p environment-lib-priv_1.0_linux24-x86-64
    ssm publish -y -p environment-lib-priv_1.0_linux24-x86-64
    ssm install -y -p rmnlib-bin-extras_1.0_all (see additional information about this package)
    ssm publish -y -p rmnlib-bin-extras_1.0_all

    To install from source, use the following packages: ssm install -y -p env-configs_1.0_all
    ssm publish -y -p env-configs_1.0_all
    ssm install -y -p env-etagere_1.0_all
    ssm publish -y -p env-etagere_1.0_all
    ssm install -y -p rmnlib-bin-extras_1.0_all (see additional information about this package)
    ssm publish -y -p rmnlib-bin-extras_1.0_all
    ssm install -y -p rmnlib-bin-extras_1.0_linux24-x86-64
    ssm publish -y -p rmnlib-bin-extras_1.0_linux24-x86-64
    ssm install -y -p rmnlib-lib_1.0_all
    ssm publish -y -p rmnlib-lib_1.0_all

  8. Install the following architecture-independent packages (change the value of GEMSSM if you are installing in a different path): echo "http://collaboration.cmc.ec.gc.ca/science/ssm" >>$GEMSSM/etc/ssm.d/sources.list
    echo "http://www.atmos.albany.edu/facstaff/rmctc/ssm/repo" >>$GEMSSM/etc/ssm.d/sources.list
    ssm install -y -d $GEMSSM -p model-data_1.0_all
    ssm publish -y -d $GEMSSM -p model-data_1.0_all
    ssm install -y -d $GEMSSM -p gem_3.2.2_all
    ssm publish -y -d $GEMSSM -p gem_3.2.2_all
    ssm install -y -d $GEMSSM -p phy_4.4_all
    ssm publish -y -d $GEMSSM -p phy_4.4_all
    ssm install -y -d $GEMSSM -p class_3.0_all
    ssm publish -y -d $GEMSSM -p class_3.0_all
  9. Install the following model packages: ssm install -y -d $GEMSSM -p gem_3.2.2_linux24-x86-64
    ssm publish -y -d $GEMSSM -p gem_3.2.2_linux24-x86-64
    ssm install -y -d $GEMSSM -p phy_4.4_linux24-x86-64
    ssm publish -y -d $GEMSSM -p phy_4.4_linux24-x86-64
  10. WARNING: If your $ARCH environment variable ends with _CUSTOM (i.e. you are not using the CMC Portland Group compilers), then follow these additional instructions.
  11. TIP: If you are installing on a new platform, you will need to edit the model make structure, so follow these additional instructions.
  12. TIP: If you built the RPN Libraries from source, then follow these additional instructions.
  13. TIP: If you wish to build support for OpenMP parallelism, then follow these additional instructions.

Running the COMM Model

To be able to access the model installation (which is in a separate domain from that registered as the system domain), you will need to subscribe to the subdomain of the model version that you wish to run. From there on, running the model is easy for those familiar with the standard COMM configuration.

  1. Subscribe to the appropriate model subdomain (this should be redone each time that you want to change models or model versions) - assuming that you have the GEMSSM environment variable set as shown in the COMM Model Insallation section: ssm subscribe --user -d $GEMSSM
  2. If your receive a permission error when running the ssm subscribe command and this is the first time that the command is being run for this profile, then follow these additional instructions.
  3. Log out and log back in.
  4. Make sure that the current directory (.) is included in your path. If it is not, then modify ~/.profile_usr or ~/.bashrc to include a line like: export PATH=$PATH:.
  5. (Optional) If you modified ~/.profile_usr then run: . ~/.profile_usr
  6. Create an experiment directory and enter it.
  7. Experiment directory setup: ouv_exp base -RCSPATH "/home/armnlib/ssm_gem_3.2.2/all/share/modeles/GEMDM/v_3.2.2/RCS /home/armnlib/ssm_gem_3.2.2/all/share/modeles/PHY/v_4.4/RCS"
  8. (Optional): If you will be running with more than 128 MPI jobs (subdomains), then you will need to link against the beta-level libraries (for current version 8 RPN libraries): echo "RMN=rmnbeta" >>mes_recettes
  9. Build makefile: r.make_exp
  10. Create build directory: mkdir malib${ARCH}
  11. Build the COMM model: make gem
  12. The data for the benchmark case is now stored in /home/armnlib/ssm_gem_3.2.2/model-data_1.0_all/all/share/data/dfiles, so the -inrep argument and others to Um_runent.sh will need to be modified accordingly (see below).
  13. TIP: A simple batch script like this one can be used to to launch the benchmark simulation (left shift and click to download).

Additional Information

The best place to get additional information about the Simple Software Manager (SSM) is at the SSM Homepage. A set of preliminary installation notes using the package manager are available here. More information about the RPN COMMunity modelling system is available at the RPN COMM website.

TIP: For a complete list of the SSM packages avaiable check out the official repository. For a list of the packages avaialable here, check out the local repository.



MRG Interactive is a supporter of open source initiatives and,

SourceForge.net Logo

Questions or Comments? Contact our WebMaster.