Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Kripke comm dynamic #591

Draft
wants to merge 9 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 13 additions & 3 deletions experiments/amg2023/experiment.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,21 @@ def compute_applications_section(self):
)

# Number of processes in each dimension
num_procs = {"px": 2, "py": 2, "pz": 2}
# num_procs = {"px": 2, "py": 2, "pz": 2}
num_procs = {
"px": [4, 8, 8, 8],
"py": [4, 4, 8, 8],
"pz": [4, 4, 4, 8]
}

# Per-process size (in zones) in each dimension
problem_sizes = {"nx": 80, "ny": 80, "nz": 80}

# problem_sizes = {"nx": 80, "ny": 80, "nz": 80}
problem_sizes = {
"nx": [32, 16, 32, 32],
"ny": [32, 32, 16, 32],
"nz": [16, 32, 32, 16]
}

if self.spec.satisfies("+single_node"):
n_resources = 1
# TODO: Check if n_ranks / n_resources_per_node <= 1
Expand Down
29 changes: 26 additions & 3 deletions experiments/kripke/experiment.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,27 @@ class Kripke(

variant(
"version",
default="develop",
default="comm_cali",
description="app version",
)

variant(
"caliper",
default="none",
values=(
"none",
"time",
"mpi",
"cuda",
"topdown-counters-all",
"topdown-counters-toplevel",
"topdown-all",
"topdown-toplevel",
),
multi=True,
description="caliper mode",
)

def compute_applications_section(self):
# TODO: Replace with conflicts clause
scaling_modes = {
Expand All @@ -61,10 +78,10 @@ def compute_applications_section(self):
}

# Number of processes in each dimension
num_procs = {"npx": 2, "npy": 2, "npz": 1}
num_procs = {"npx": 4, "npy": 4, "npz": 4}

# Number of zones in each dimension, per process
problem_sizes = {"nzx": 64, "nzy": 64, "nzz": 32}
problem_sizes = {"nzx": 256, "nzy": 128, "nzz": 128}

for k, v in input_variables.items():
self.add_experiment_variable(k, v, True)
Expand All @@ -90,6 +107,12 @@ def compute_applications_section(self):
for nk, nv in scaled_variables.items():
self.add_experiment_variable(nk, nv, True)
elif self.spec.satisfies("+strong"):
# Number of processes in each dimension
num_procs = {"npx": 2, "npy": 2, "npz": 1}

# Number of zones in each dimension, per process
problem_sizes = {"nzx": 64, "nzy": 64, "nzz": 32}

scaled_variables = self.generate_strong_scaling_params(
{tuple(num_procs.keys()): list(num_procs.values())},
int(self.spec.variants["scaling-factor"][0]),
Expand Down
7 changes: 4 additions & 3 deletions modifiers/caliper-mpi/modifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,10 @@ class CaliperMpi(CaliperBase):

env_var_modification(
"CALI_CONFIG",
"spot(output={},profile.mpi,mpi.message.size,mpi.message.count)".format(
_cali_datafile
),
#"spot(output={},profile.mpi,mpi.message.size,mpi.message.count)".format(
# _cali_datafile
#),
"spot(output={},profile.mpi,comm.stats)".format(_cali_datafile),
method="set",
modes=["mpi"],
)
2 changes: 1 addition & 1 deletion modifiers/caliper/modifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class Caliper(SpackModifier):

env_var_modification(
"CALI_CONFIG",
"spot(output={}{})".format(_cali_datafile, "${CALI_CONFIG_MODE}"),
"spot(output={},profile.mpi,comm.stats)".format(_cali_datafile, "${CALI_CONFIG_MODE}"),
method="set",
modes=[_default_mode],
)
Expand Down
12 changes: 5 additions & 7 deletions repo/kripke/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage):
transport proxy/mini app.
"""

homepage = "https://computing.llnl.gov/projects/co-design/kripke"
git = "https://github.com/LLNL/Kripke.git"
homepage = "https://github.com/gracenansamba/Kripke.git"
git = "https://github.com/gracenansamba/Kripke.git"

tags = ["proxy-app"]

maintainers("vsrana01")

license("BSD-3-Clause")

version("develop", branch="develop", submodules=False)
version("comm_cali", branch="comm_cali", submodules=False, git="https://github.com/gracenansamba/Kripke.git")
version(
"1.2.7.0", submodules=False, commit="db920c1f5e1dcbb9e949d120e7d86efcdb777635"
)
Expand Down Expand Up @@ -52,12 +52,10 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage):
variant("mpi", default=True, description="Build with MPI.")
variant("openmp", default=False, description="Build with OpenMP enabled.")
variant("caliper", default=False, description="Build with Caliper support enabled.")

depends_on('[email protected]', when='@develop')

depends_on("mpi", when="+mpi")
depends_on("caliper@master", when="+caliper")
depends_on("chai+mpi", when="+mpi")
depends_on("caliper", when="+caliper")
depends_on("[email protected]:", when="+caliper")
conflicts("^blt@:0.3.6", when="+rocm")

Expand Down