IEEE Transactions on Computers
Compile-time partitioning and scheduling of parallel programs
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
ACE: an automatic complexity evaluator
ACM Transactions on Programming Languages and Systems (TOPLAS)
Multiprocessor execution of functional programs
International Journal of Parallel Programming
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Computer architecture: a quantitative approach
Computer architecture: a quantitative approach
Lazy task creation: a technique for increasing the granularity of parallel programs
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Algebraic reconstruction of types and effects
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Predicting program behavior using real or estimated profiles
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Size and access inference for data-parallel programs
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Handbook of theoretical computer science (vol. B)
Polymorphic time systems for estimating program complexity
ACM Letters on Programming Languages and Systems (LOPLAS)
Dynamic program parallelization
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Using the run-time sizes of data structures to guide parallel-thread creation
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
A Machine-Oriented Logic Based on the Resolution Principle
Journal of the ACM (JACM)
Computer-assisted microanalysis of programs
Communications of the ACM
Communications of the ACM
Communications of the ACM
WSA '93 Proceedings of the Third International Workshop on Static Analysis
A Portable Multiprocessor Interface for Standard ML of New Jersey
A Portable Multiprocessor Interface for Standard ML of New Jersey
FX-87 PERFORMANCE MEASUREMENTS: DATAFLOW IMPLEMENTATION
FX-87 PERFORMANCE MEASUREMENTS: DATAFLOW IMPLEMENTATION
Using the run-time sizes of data structures to guide parallel-thread creation
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Abstract interpretation and low-level code optimization
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Parallelism in sequential functional languages
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Proving the correctness of reactive systems using sized types
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic time-bound analysis for a higher-order language
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Cost recurrences for DML programs
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Stochastic Prediction of Execution Time for Dynamic Bulk Synchronous Computations
The Journal of Supercomputing
Stochastic Prediction of Execution Time for Dynamic Bulk Synchronous Computations
IPDPS '01 Proceedings of the 15th International Parallel & Distributed Processing Symposium
IFL '00 Selected Papers from the 12th International Workshop on Implementation of Functional Languages
HCW '99 Proceedings of the Eighth Heterogeneous Computing Workshop
Run-Time Statistical Estimation of Task Execution Times for Heterogeneous Distributed Computing
HPDC '96 Proceedings of the 5th IEEE International Symposium on High Performance Distributed Computing
SAGE: an automatic analyzing system for a new high-performance SoC architecture-processor-in-memory
Journal of Systems Architecture: the EUROMICRO Journal
Dynamic Grid Scheduling Using Job Runtime Requirements and Variable Resource Availability
Euro-Par '08 Proceedings of the 14th international Euro-Par conference on Parallel Processing
Amortised Memory Analysis Using the Depth of Data Structures
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
A Hybrid Intelligent Method for Performance Modeling and Prediction of Workflow Activities in Grids
CCGRID '09 Proceedings of the 2009 9th IEEE/ACM International Symposium on Cluster Computing and the Grid
Cost-driven autonomous mobility
Computer Languages, Systems and Structures
Safe compositional network sketches: formal framework
Proceedings of the 13th ACM international conference on Hybrid systems: computation and control
Cost analysis using automatic size and time inference
IFL'02 Proceedings of the 14th international conference on Implementation of functional languages
Selective tail call elimination
SAS'03 Proceedings of the 10th international conference on Static analysis
Using intersection types for cost-analysis of higher-order polymorphic functional programs
TYPES'06 Proceedings of the 2006 international conference on Types for proofs and programs
Characterising effective resource analyses for parallel and distributed coordination
FOPARA'09 Proceedings of the First international conference on Foundational and practical aspects of resource analysis
The essence of monotonic state
Proceedings of the 7th ACM SIGPLAN workshop on Types in language design and implementation
COSPIM: a program optimization system for tightly-coupled heterogeneous environments
ICCOMP'06 Proceedings of the 10th WSEAS international conference on Computers
Inferring cost equations for recursive, polymorphic and higher-order functional programs
IFL'03 Proceedings of the 15th international conference on Implementation of Functional Languages
Distributed call-tracking for security
Computer Languages, Systems and Structures
Hi-index | 0.00 |
We present the first system for estimating and using data-dependent expression execution times in a language with first-class procedures and imperative constructs. The presence of first-class procedures and imperative constructs makes cost estimation a global problem that can benefit from type information. We estimate expression costs with the aid of an algebraic type reconstruction system that assigns every procedure a type that includes a static dependent cost. A static dependent cost describes the execution time of a procedure in terms of its inputs. In particular, a procedure's static dependent cost can depend on the size of input data structures and the cost of input first-class procedures. Our cost system produces symbolic cost expressions that contain free variables describing the size and cost of the procedure's inputs. At run-time, a cost estimate is dynamically computed from the statically determined cost expression and run-time cost and size information. We present experimental results that validate our cost system on three compilers and architectures. We experimentally demonstrate the utility of cost estimates in making dynamic parallelization decisions. In our experience, dynamic parallelization meets or exceeds the parallel performance of any fixed number of processors.