Scheduler vs. envVariables#

Scheduler Profiles vs. envVariables

Although both Scheduler Profiles and envVariables influence the job environment, they operate at different stages and serve different purposes.

A. Scheduler Profiles (system-level initialization)#

Executed by TACC before your wrapper script runs.

They control:

  • How the compute node is initialized

  • Whether the module command is available

  • Whether any default modules (Python, MPI, compilers) are preloaded

  • Job-launching behavior (srun, ibrun, environment hygiene, etc.)

A scheduler profile is owned by the execution system, not by your app.

Example: –tapis-profile tacc-no-modules → Start with a completely clean environment, no modules preloaded.

Key Concept:

Scheduler Profiles configure the system before your app starts executing.


B. envVariables in app.json (app-level configuration#

Passed directly into your running job and visible within tapisjob_app.sh.

They allow the app user (or the app developer) to express configuration options such as:

  • Which modules to load (MODULE_LOADS_LIST)

  • Which pip packages to install (PIP_INSTALLS_LIST)

  • Whether to copy OpenSeesPy (GET_TACC_OPENSEESPY)

  • MPI/serial toggle (UseMPI)

  • Paths for input copying or output movement

These variables appear in your wrapper script like:

echo "MODULE_LOADS_LIST = ${MODULE_LOADS_LIST}"

and are fully controlled by the app developer or job submitter—not by TACC.

Key Concept:

envVariables configure your application’s behavior, not the system.

Summary#

Scheduler Profiles initialize the compute node environment, while envVariables configure how your app behaves within that environment.