Run OpenSeesMP App#
Submit Jobs to OpenSeesMP App
by Silvia Mazzoni, DesignSafe, 2025
In this Notebook we are going to run a set of OpenSeesMP jobs and a set of OpenSees-Express Jobs. We are also submitting the jobs from different input-file storage systems – MyData, CommunityData, Work, MyProjects
This notebook serves as a template for submitting the following DesignSafe OpenSees Apps:
openSees-mp-s3
opensees-sp-s3
I have combined all the commands into a common-command cell and one cell per storage system.
We are using previously-defined python function to streamline the process.
Connect to Tapis#
t=OpsUtils.connect_tapis()
-- Checking Tapis token --
Token loaded from file. Token is still valid!
Token expires at: 2025-09-10T07:14:42+00:00
Token expires in: 2:09:45.388630
-- LOG IN SUCCESSFUL! --
OpenSeesMP#
Common Input#
# initalize
tapisInputAll = {}
tapisInputAll["name"] = 'OpenSeesMP'
tapisInputAll["appId"] = "opensees-mp-s3" # options: "opensees-express", "opensees-mp-s3", "opensees-2p-s3"
tapisInputAll["appVersion"] = "latest" # always use latest in this Notebook Template
tapisInputAll["maxMinutes"] = 6
# OpenSees-mp-s3 and OpenSees-xp-s3 only:
tapisInputAll["execSystemId"] = "stampede3" # the app runs on stampede only
tapisInputAll["execSystemLogicalQueue"] = "skx-dev" # "skx", "skx-dev"
tapisInputAll["nodeCount"] = 1 # limits set by which compute nodes you use
tapisInputAll["coresPerNode"] = 48 # limits set by which compute nodes you use
tapisInputAll["allocation"] = "DS-HPC1"
tapisInputAll['archive_system']='MyData' # Options: MyData or Work
MyData#
This job is in the MyData Storage System
# initalize
tapisInput = tapisInputAll.copy()
tapisInput['storage_system'] = 'MyData' # ########################## unique
tapisInput['input_folder'] = '_ToCommunityData/OpenSees/TrainingMaterial/training-OpenSees-on-DesignSafe/Examples_OpenSees/BasicExamples' # ########################## unique
tapisInput['Main Script'] = 'Ex1a_verymany.Canti2D.Push.mp.tcl' # ########################## unique
tapisInput["name"] = tapisInput["name"] + '_' + tapisInput['storage_system']
# -----------------------------------------------------
jobReturns = OpsUtils.run_tapis_job(t,tapisInput,get_job_metadata=True,get_job_history=True,get_job_filedata=True,askConfirmJob = False,askConfirmMonitorRT = False)
# -----------------------------------------------------
CommunityData#
This job is in the CommunityData Storage System
# initalize
tapisInput = tapisInputAll.copy()
tapisInput['storage_system'] = 'CommunityData' # ########################## unique
tapisInput['input_folder'] = 'OpenSees/TrainingMaterial/training-OpenSees-on-DesignSafe/Examples_OpenSees/BasicExamples' # ########################## unique
tapisInput['Main Script'] = 'Ex1a_verymany.Canti2D.Push.mp.tcl' # ########################## unique
tapisInput["name"] = tapisInput["name"] + '_' + tapisInput['storage_system']
# -----------------------------------------------------
jobReturns = OpsUtils.run_tapis_job(t,tapisInput,get_job_metadata=True,get_job_history=True,get_job_filedata=True,askConfirmJob = False,askConfirmMonitorRT = False)
# -----------------------------------------------------
Work#
This job is in the Work Storage System
# initalize
tapisInput = tapisInputAll.copy()
tapisInput['storage_system'] = 'Work/stampede3' # ########################## unique
tapisInput['input_folder'] = 'BasicExamples' # ########################## unique
tapisInput['Main Script'] = 'Ex1a_verymany.Canti2D.Push.mp.tcl' # ########################## unique
tapisInput["name"] = tapisInput["name"] + '_' + tapisInput['storage_system']
# -----------------------------------------------------
jobReturns = OpsUtils.run_tapis_job(t,tapisInput,get_job_metadata=True,get_job_history=True,get_job_filedata=True,askConfirmJob = False,askConfirmMonitorRT = False)
# -----------------------------------------------------
MyProjects#
This job is in the MyProjects Storage System
# initalize
tapisInput = tapisInputAll.copy()
tapisInput['storage_system'] = 'MyProjects' # ########################## unique
# The following are project-dependent
# This value needs to be updated for each project -- got this from the web-portal app
if tapisInput['storage_system']=='MyProjects': # ########################## unique
tapisInput['storage_system_baseURL'] = 'tapis://project-7997906542076432871-242ac11c-0001-012' # ########################## unique
tapisInput['input_folder'] = 'OpenSees/TrainingMaterial/training-OpenSees-on-DesignSafe/Examples_OpenSees/BasicExamples' # ########################## unique
tapisInput['Main Script'] = 'Ex1a_verymany.Canti2D.Push.mp.tcl'
tapisInput["name"] = tapisInput["name"] + '_' + tapisInput['storage_system']
# -----------------------------------------------------
jobReturns = OpsUtils.run_tapis_job(t,tapisInput,get_job_metadata=True,get_job_history=True,get_job_filedata=True,askConfirmJob = False,askConfirmMonitorRT = False)
# -----------------------------------------------------