Optimizations on Graph-Level for Domain Specific Computations in Julia and Application to QED
By: Anton Reinhard , Simeon Ehrig , René Widera and more
Potential Business Impact:
Makes super-fast computers solve hard science problems.
Complex computational problems in science often consist of smaller parts that can have largely distinct compute requirements from one another. For optimal efficiency, analyzing each subtask and scheduling it on the best-suited hardware would be necessary. Other considerations must be taken into account, too, such as parallelism, dependencies between different subtasks, and data transfer speeds between devices. To achieve this, directed acyclic graphs are often employed to represent these problems and enable utilizing as much hardware as possible on a given machine. In this paper, we present a software framework written in Julia capable of automatically and dynamically producing statically scheduled and compiled code. We lay theoretical foundations and add domain-specific information about the computation to the existing concepts of DAG scheduling, enabling optimizations that would otherwise be impossible. To illustrate the theory we implement an example application: the computation of matrix elements for scattering processes with many external particles in quantum electrodynamics.
Similar Papers
A Graph-Based, Distributed Memory, Modeling Abstraction for Optimization
Distributed, Parallel, and Cluster Computing
Solves huge math problems faster on many computers.
A High-level Synthesis Toolchain for the Julia Language
Software Engineering
Lets scientists build special computer chips easily.
S-DAG: A Subject-Based Directed Acyclic Graph for Multi-Agent Heterogeneous Reasoning
Multiagent Systems
Helps computers solve hard problems with many subjects.