The Lights Out Game on Directed Graphs
Authors:
T. Elise Dettling,
Darren B. Parker
Abstract:
We study a version of the lights out game played on directed graphs. For a digraph $D$, we begin with a labeling of $V(D)$ with elements of $\mathbb{Z}_k$ for $k \ge 2$. When a vertex $v$ is toggled, the labels of $v$ and any vertex that $v$ dominates are increased by 1 mod $k$. The game is won when each vertex has label 0. We say that $D$ is $k$-Always Winnable (also written $k$-AW) if the game c…
▽ More
We study a version of the lights out game played on directed graphs. For a digraph $D$, we begin with a labeling of $V(D)$ with elements of $\mathbb{Z}_k$ for $k \ge 2$. When a vertex $v$ is toggled, the labels of $v$ and any vertex that $v$ dominates are increased by 1 mod $k$. The game is won when each vertex has label 0. We say that $D$ is $k$-Always Winnable (also written $k$-AW) if the game can be won for every initial labeling with elements of $\mathbb{Z}_k$. We prove that all acyclic digraphs are $k$-AW for all $k$, and we reduce the problem of determining whether a graph is $k$-AW to the case of strongly connected digraphs. We then determine winnability for tournaments with a minimum feedback arc set that arc-induces a directed path or directed star digraph.
△ Less
Submitted 9 June, 2023;
originally announced June 2023.
Evaluating performance and portability of high-level programming models: Julia, Python/Numba, and Kokkos on exascale nodes
Authors:
William F. Godoy,
Pedro Valero-Lara,
T. Elise Dettling,
Christian Trefftz,
Ian Jorquera,
Thomas Sheehy,
Ross G. Miller,
Marc Gonzalez-Tallada,
Jeffrey S. Vetter,
Valentin Churavy
Abstract:
We explore the performance and portability of the high-level programming models: the LLVM-based Julia and Python/Numba, and Kokkos on high-performance computing (HPC) nodes: AMD Epyc CPUs and MI250X graphical processing units (GPUs) on Frontier's test bed Crusher system and Ampere's Arm-based CPUs and NVIDIA's A100 GPUs on the Wombat system at the Oak Ridge Leadership Computing Facilities. We comp…
▽ More
We explore the performance and portability of the high-level programming models: the LLVM-based Julia and Python/Numba, and Kokkos on high-performance computing (HPC) nodes: AMD Epyc CPUs and MI250X graphical processing units (GPUs) on Frontier's test bed Crusher system and Ampere's Arm-based CPUs and NVIDIA's A100 GPUs on the Wombat system at the Oak Ridge Leadership Computing Facilities. We compare the default performance of a hand-rolled dense matrix multiplication algorithm on CPUs against vendor-compiled C/OpenMP implementations, and on each GPU against CUDA and HIP. Rather than focusing on the kernel optimization per-se, we select this naive approach to resemble exploratory work in science and as a lower-bound for performance to isolate the effect of each programming model. Julia and Kokkos perform comparably with C/OpenMP on CPUs, while Julia implementations are competitive with CUDA and HIP on GPUs. Performance gaps are identified on NVIDIA A100 GPUs for Julia's single precision and Kokkos, and for Python/Numba in all scenarios. We also comment on half-precision support, productivity, performance portability metrics, and platform readiness. We expect to contribute to the understanding and direction for high-level, high-productivity languages in HPC as the first-generation exascale systems are deployed.
△ Less
Submitted 10 March, 2023;
originally announced March 2023.