Primitives for the manipulation of three-dimensional subdivisions
SCG '87 Proceedings of the third annual symposium on Computational geometry
Efficient management of parallelism in object-oriented numerical software libraries
Modern software tools for scientific computing
A parallel algorithm for multilevel graph partitioning and sparse matrix ordering
Journal of Parallel and Distributed Computing
Maximizing parallelism and minimizing synchronization with affine partitions
Parallel Computing - Special issues on languages and compilers for parallel computers
Overture: An Object-Oriented Framework for Solving Partial Differential Equations
ISCOPE '97 Proceedings of the Scientific Computing in Object-Oriented Parallel Environments
A framework approach for developing parallel adaptive multiphysics applications
Finite Elements in Analysis and Design - Special issue: The fifteenth annual Robert J. Melosh competition
An overview of the Trilinos project
ACM Transactions on Mathematical Software (TOMS) - Special issue on the Advanced CompuTational Software (ACTS) Collection
ParFUM: a parallel framework for unstructured meshes for scalable dynamic physics applications
Engineering with Computers
A portable runtime interface for multi-level memory hierarchies
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
Scalable Parallel Programming with CUDA
Queue - GPU Computing
Entering the petaflop era: the architecture and performance of Roadrunner
Proceedings of the 2008 ACM/IEEE conference on Supercomputing
Millisecond-scale molecular dynamics simulations on Anton
Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis
Understanding sources of inefficiency in general-purpose chips
Proceedings of the 37th annual international symposium on Computer architecture
Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Language virtualization for heterogeneous parallel computing
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
SBLOCK: A Framework for Efficient Stencil-Based PDE Solvers on Multi-core Platforms
CIT '10 Proceedings of the 2010 10th IEEE International Conference on Computer and Information Technology
Performance analysis of the OP2 framework on many-core architectures
ACM SIGMETRICS Performance Evaluation Review - Special issue on the 1st international workshop on performance modeling, benchmarking and simulation of high performance computing systems (PMBS 10)
A distributed data-parallel framework for analysis and visualization algorithm development
Proceedings of the 5th Annual Workshop on General Purpose Processing with Graphics Processing Units
Mesh independent loop fusion for unstructured mesh applications
Proceedings of the 9th conference on Computing Frontiers
Diderot: a parallel DSL for image analysis and visualization
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Predictive modeling and analysis of OP2 on distributed memory GPU clusters
ACM SIGMETRICS Performance Evaluation Review
Paradigmatic shifts for exascale supercomputing
The Journal of Supercomputing
HPCML: a modeling language dedicated to high-performance scientific computing
Proceedings of the 1st International Workshop on Model-Driven Engineering for High Performance and CLoud computing
Terra: a multi-stage language for high-performance computing
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Abstractions to separate concerns in semi-regular grids
Proceedings of the 27th international ACM conference on International conference on supercomputing
A high-level framework for parallelizing legacy applications for multiple platforms
Proceedings of the Conference on Extreme Science and Engineering Discovery Environment: Gateway to Discovery
ColPack: Software for graph coloring and related problems in scientific computing
ACM Transactions on Mathematical Software (TOMS)
Forge: generating a high performance DSL implementation from a declarative specification
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
ACM SIGOPS 24th Symposium on Operating Systems Principles
Dandelion: a compiler and runtime for heterogeneous systems
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
Composition and reuse with compiled domain-specific languages
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Designing OP2 for GPU architectures
Journal of Parallel and Distributed Computing
Singe: leveraging warp specialization for high performance on GPUs
Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
SESSL: A domain-specific language for simulation experiments
ACM Transactions on Modeling and Computer Simulation (TOMACS)
Hi-index | 0.00 |
Heterogeneous computers with processors and accelerators are becoming widespread in scientific computing. However, it is difficult to program hybrid architectures and there is no commonly accepted programming model. Ideally, applications should be written in a way that is portable to many platforms, but providing this portability for general programs is a hard problem. By restricting the class of programs considered, we can make this portability feasible. We present Liszt, a domain-specific language for constructing mesh-based PDE solvers. We introduce language statements for interacting with an unstructured mesh, and storing data at its elements. Program analysis of these statements enables our compiler to expose the parallelism, locality, and synchronization of Liszt programs. Using this analysis, we generate applications for multiple platforms: a cluster, an SMP, and a GPU. This approach allows Liszt applications to perform within 12% of hand-written C++, scale to large clusters, and experience order-of-magnitude speedups on GPUs.