Hello
I have was able to successfully run a single application using Mercury, the .py file was as follows
import sst
from sst.merlin.base import *
from sst.merlin.endpoint import *
from sst.merlin.interface import *
from sst.merlin.topology import *
from sst.hg import *
if __name__ == "__main__":
PlatformDefinition.loadPlatformFile("platform_file_hg_test")
PlatformDefinition.setCurrentPlatform("platform_hg_test")
platform = PlatformDefinition.getCurrentPlatform()
# ── Rank count ──────────────────────────────────────────────────
num_ranks = 16
platform.addParamSet("operating_system", {
"verbose" : 1,
# ── App identity ──────────────────────────────────────────
"app1.name" : "project", # matches -Dssthg_app_name=project
"app1.exe_library_name" : "project-hgcc", # matches libproject-hgcc.so
"app1.argv" : "....",
"app1.verbose" : 1,
"app1.dependencies" : ["sumi"],
"app1.libraries" : [
"systemlibrary:SystemLibrary",
"computelibrary:ComputeLibrary",
"mask_mpi:MpiApi",
]
})
topo = topoHyperX()
topo.shape = "8x8"
topo.width = "1x1"
topo.local_ports = 1
ep = HgJob(0, num_ranks)
system = System()
system.setTopology(topo)
system.allocateNodes(ep, "linear")
system.build()
However when attempting to Co-Schedule 2 different projects using following .py file
import sst
from sst.merlin.base import *
from sst.merlin.endpoint import *
from sst.merlin.interface import *
from sst.merlin.topology import *
from sst.hg import *
if __name__ == "__main__":
PlatformDefinition.loadPlatformFile("platform_file_hg_test")
PlatformDefinition.setCurrentPlatform("platform_hg_test")
platform = PlatformDefinition.getCurrentPlatform()
npx, npy, npz = 4, 4, 2
proj2_ranks = npx * npy * npz
proj1_ranks = npx * npy * npz
proj1_job= HgJob(1, proj1_ranks)
proj1_job.os.addParams({
"verbose": 1,
"app1.name": "project1",
"app1.exe_library_name": "project1-hgcc",
"app1.argv": (
"....."
"....."
) % (npx, npy, npz),
"app1.verbose": 1,
"app1.dependencies": ["sumi"],
"app1.libraries": [
"systemlibrary:SystemLibrary",
"computelibrary:ComputeLibrary",
"mask_mpi:MpiApi",
],
})
proj2_job= HgJob(0, proj2_ranks)
proj2_job.os.addParams({
"verbose": 1,
"app1.name": "project2",
"app1.exe_library_name": "project2-hgcc",
"app1.argv": "....",
"app1.verbose": 1,
"app1.dependencies": ["sumi"],
"app1.libraries": [
"systemlibrary:SystemLibrary",
"computelibrary:ComputeLibrary",
"mask_mpi:MpiApi",
],
})
topo = topoHyperX()
topo.shape = "8x8"
topo.width = "1x1"
topo.local_ports = 1
system = System()
system.setTopology(topo)
system.allocateNodes(proj1_job, "linear")
system.allocateNodes(proj2_job, "linear")
system.build()
It doesn't run properly as expected. I have no way of verifying if this is the correct method to Co-Schedule the Application since documentation for it is scarce.
Any help or guide regarding how to Co-Schedule the applications for Mercury would be really appreciated
Thank You
Hello
I have was able to successfully run a single application using Mercury, the .py file was as follows
However when attempting to Co-Schedule 2 different projects using following .py file
It doesn't run properly as expected. I have no way of verifying if this is the correct method to Co-Schedule the Application since documentation for it is scarce.
Any help or guide regarding how to Co-Schedule the applications for Mercury would be really appreciated
Thank You