Draco: a method for engineering reusable software systems
Software reusability: vol. 1, concepts and models
A set of level 3 basic linear algebra subprograms
ACM Transactions on Mathematical Software (TOMS)
Partial evaluation applied to numerical computation
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Analysis of pointers and structures
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
LAPACK's user's guide
Increasing network throughput by integrating protocol layers
IEEE/ACM Transactions on Networking (TON)
Exploiting specifications to improve program performance
Exploiting specifications to improve program performance
Efficient context-sensitive pointer analysis for C programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Abstract interpretation: a semantics-based tool for program analysis
Handbook of logic in computer science (vol. 4)
Declarative specialization of object-oriented programs
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using PLAPACK: parallel linear algebra package
Using PLAPACK: parallel linear algebra package
Advanced compiler design and implementation
Advanced compiler design and implementation
An evaluation of staged run-time optimizations in DyC
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
DyC: an expressive annotation-directed dynamic compiler for C
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
PLAPACK: High Performance through High-Level Abstraction
ICPP '98 Proceedings of the 1998 International Conference on Parallel Processing
Fast concurrent dynamic linking for an adaptive operating system
ICCDS '96 Proceedings of the 3rd International Conference on Configurable Distributed Systems
Incorporating application semantics and control into compilation
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
DiSTiL: a transformation library for data structures
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
Impact of economics on compiler optimization
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
ICS '01 Proceedings of the 15th international conference on Supercomputing
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Reducing and Vectorizing Procedures for Telescoping Languages
International Journal of Parallel Programming
Treating a User-Defined Parallel Library as a Domain-Specific Language
IPDPS '02 Proceedings of the 16th International Parallel and Distributed Processing Symposium
Optimizing the Use of High Performance Software Libraries
LCPC '00 Proceedings of the 13th International Workshop on Languages and Compilers for Parallel Computing-Revised Papers
Imperative Program Transformation by Rewriting
CC '01 Proceedings of the 10th International Conference on Compiler Construction
Incremental execution of transformation specifications
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Representing linear algebra algorithms in code: the FLAME application program interfaces
ACM Transactions on Mathematical Software (TOMS)
The GrADS Project: Software Support for High-Level Grid Application Development
International Journal of High Performance Computing Applications
Improving the computational intensity of unstructured mesh applications
Proceedings of the 19th annual international conference on Supercomputing
Error checking with client-driven pointer analysis
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
Software annotations for power optimization on mobile devices
Proceedings of the conference on Design, automation and test in Europe: Proceedings
JunGL: a scripting language for refactoring
Proceedings of the 28th international conference on Software engineering
Sequoia: programming the memory hierarchy
Proceedings of the 2006 ACM/IEEE conference on Supercomputing
Sequoia: programming the memory hierarchy
Proceedings of the 2006 ACM/IEEE conference on Supercomputing
Compilation for explicitly managed memory hierarchies
Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
Ilea: inter-language analysis across java and c
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Merge: a programming model for heterogeneous multi-core systems
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
Proceedings of the 22nd annual international conference on Supercomputing
Efficient and extensible security enforcement using dynamic data flow analysis
Proceedings of the 15th ACM conference on Computer and communications security
May/must analysis and the DFAGen data-flow analysis generator
Information and Software Technology
Client-driven pointer analysis
SAS'03 Proceedings of the 10th international conference on Static analysis
A language for role specifications
LCPC'01 Proceedings of the 14th international conference on Languages and compilers for parallel computing
LCPC'01 Proceedings of the 14th international conference on Languages and compilers for parallel computing
Annotating user-defined abstractions for optimization
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
A domain-specific approach to heterogeneous parallelism
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
IFL'08 Proceedings of the 20th international conference on Implementation and application of functional languages
Classification and utilization of abstractions for optimization
ISoLA'04 Proceedings of the First international conference on Leveraging Applications of Formal Methods
LCPC'04 Proceedings of the 17th international conference on Languages and Compilers for High Performance Computing
Green-Marl: a DSL for easy and efficient graph analysis
ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
Proceedings of the seventh workshop on Domain-Specific Aspect Languages
Efficient flow-sensitive interprocedural data-flow analysis in the presence of pointers
CC'06 Proceedings of the 15th international conference on Compiler Construction
Proceedings of the 49th Annual Design Automation Conference
Bamboo: translating MPI applications to a latency-tolerant, data-driven form
SC '12 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis
Second-order constraints in dynamic invariant inference
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Hi-index | 0.00 |
This paper introduces an annotation language and a compiler that together can customize a library implementation for specific application needs. Our approach is distinguished by its ability to exploit high level, domain-specific information in the customization process. In particular, the annotations provide semantic information that enables our compiler to analyze and optimize library operations as if they were primitives of a domain-specific language. Thus, our approach yields many of the performance benefits of domain-specific languages, without the effort of developing a new compiler for each domain.This paper presents the annotation language, describes its role in optimization, and illustrates the benefits of the overall approach. Using a partially implemented compiler, we show how our system can significantly improve the performance of two applications written using the PLAPACK parallel linear algebra library.