Application Catalog

Introduction
  • Application Catalog is where you will add your gateway applications/tools/codes for gateway users to consume.
  • Application/tool/code is what you create in the gateway, which will have all the configurations required to execute the actual code in the remote resource.
  • Configuring an Application is a three step process. You would;
  • First add the main Details of the application
  • Next its the Interface, where you would add all the input required to execute application and also the outputs that the gateway should bring back for the user.
  • Last is the Deployment, Which is the place you will add all the commands that are needed to execute the application in the remote resource.

  • Gateway admins can;

    • Create new applications
    • Test the application with job submissions
    • Edit existing applications
    • Delete applications no longer needed

NOTE: In order to explain how an application could be added to the gateway, we would take Gaussian16 application as the example.

Add Gaussian16 Details
  1. SettingsApplication CatalogNew Application +
  2. In Details tab:
    • Application Name: Gaussian16
    • Application Version: Gaussian 16: ES64L-G16RevA.03 (Optional)
    • Application Description: Gaussian computes molecular electronic properties using ab inito and dft techniques. Core Count should be same as %nproc value in the input. (Optional)
    • Save

------ Screenshot Image:Adding Gaussian16 Details

Add Gaussian16 Inputs and Outputs
  1. SettingsApplication CatalogGaussian16Interface
  2. In Interface tab:
    • Set Enable Archiving Working Directory to True (Why? - This is set to true when you want to bring back all the files in the remote working directory back to the gateway portal. Caution: Gateway has a size restriction on ARCHIVE. Please contact SciGaP admins for more details.)
    • Set Show Queue Settings to False - This is your gateway preference. If you gateway users are not give the option of changing the queue properties when submitting jobs, you can hide this and have same properties set for all the users.
    • Provide Input Fields
      • Click Add Application Input
      • Name: Input-File
      • Initial Value: gaussian.com (This is if you want to override the input names given by the user, if not leave it empty)
      • Type: URI (Why? - This is the type for file uploads)
      • Application Arguments: NULL
      • Required in Commandline: True
      • Required: True
      • Read Only: False (Why? - this is only meaningful for String, Integer or Float inputs)
      • User Friendly Description: Gaussian16 input file specifying desired calculation type, model chemistry, molecular system and other parameters. (This is information to the user at creating job experiment. Optional)
      • Advanced Input Field Modification Metadata: NULL (Why? - This is used mostly for advance string input options. For more information refer: Advance Application Inputs


NOTE: For this application, only a single input, and its a file. For applications, there can be multiple inputs and different input types, such as String, Integer or multiple files. - Provide application outputs
NOTE: 4 application outputs to define.
- 1st Output - Click Add application output - Name: Gaussian-Application-Output - Value: *.log - Type: URI_COLLECTION - Application Argument: NULL - Is Required: True - Required on Command Line: True - Metadata:

json { "output-view-providers": [ "gaussian_eigenvalues_view" ] }

    - 2nd output
        - CLick _Add Application Output_
        - _Name_: `Gaussian_Checkpoint_File`
        - _Value_: `*.chk`
        - _Type_: `URI_COLLECTION`
        - _Application Argument_: NULL
        - _Is Required_: `True`
        - _Required on Command Line_: `True`
        - _Metadata_: NULL
    - For applications, STDOUT and STDERR will be automatically added for you.

Screenshot Screenshot Image: Gaussian16 Inputs and Outputs

Add Gaussian16 Deployment
  1. SettingsApplication CatalogGaussian16Deployment
  2. In Deployment tab
    • Click New Deployment +
      • Select Expanse
      • Share button: Add groups and users you want to have access to this deployment. Meaning, who can submit Gaussian16 jobs to Expanse
      • Application Executable Path: /home/gridchem/bin/rung09_with_chk_recovery.sh
      • Application Parallelism Type: SERIAL
      • Application Deployment Description: Gaussian16 Rev A.03
      • Module Load Commands:
        • #SBATCH -N 1
        • export MODULEPATH=/share/apps/compute/modulefiles/applications:$MODULEPATH; module load gaussian/16.B.01
      • Pre Job Commands:
        • export AIRAVATA_USERNAME=$gatewayUserName
        • export AIRAVATA_INPUTS=$inputs
        • export AIRAVATA_ExptDataDir=$experimentDataDir;
      • Default Queue Name: shared
      • Default Node Count: 1
      • Default CPU Count: 4
      • Default Walltime: 30
      • Save

Screenshot Image: Gaussian16 Deployment

Other Application Catalog Details
  1. An Application can have multiple deployment, each deployment is for each remote resource the gateway wants to submit jobs to.
  2. When sharing application, deployment you would only share it with gateway user who you want to use it.
  3. Tip: When you are adding a new application, you can keep it without sharing it with gateway users until you test it. Unshared applications will appear grayed out to gateway uses.