Yee Lok Wong

dblp:26/7062 · DBLP profile ↗
← Back
4ranked-venue papers
0as first author
0since 2021 · last 2012
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 3Software engineering, systems software and programming languages · 2

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
2 papers
High-performance computing · 88% Parallel and multicore computing · 12%
Software engineering, system software, and programming languages
1 paper
Programming languages and type systems · 50% Compilers and program optimization · 50%

Topics — the 6 heaviest of 6, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization
autotuning
0.112009
PetaBricks: a language and compiler for algorithmic choice · PLDI 2009
Programming languages and type systems
language design
0.112009
PetaBricks: a language and compiler for algorithmic choice · PLDI 2009
High-performance computing › performance optimization
auto-tuning
0.112009
Autotuning multigrid with PetaBricks · SC 2009
High-performance computing › numerical linear algebra › linear solver › iterative linear solvers
multigrid method
0.112009
Autotuning multigrid with PetaBricks · SC 2009
Parallel and multicore computing
parallel programming models
0.012009
Autotuning multigrid with PetaBricks · SC 2009
High-performance computing › performance engineering
performance portability
0.012009
PetaBricks: a language and compiler for algorithmic choice · PLDI 2009

Methods — techniques the papers use, named apart from their topics

auto-tuning · 0.1algorithmic choice · 0.1
YearPublicationVenuePosition
2012 Siblingrivalry: online autotuning through local competitions
abstract
Modern high performance libraries, such as ATLAS and FFTW, and programming languages, such as PetaBricks, have shown that autotuning computer programs can lead to significant speedups. However, autotuning can be burdensome to the deployment of a program, since the tuning process can take a long time and should be re-run whenever the program, microarchitecture, execution environment, or tool chain changes. Failure to re-autotune programs often leads to widespread use of sub-optimal algorithms. With the growth of cloud computing, where computations can run in environments with unknown load and migrate between different (possibly unknown) microarchitectures, the need for online autotuning has become increasingly important.
Jason Ansel, Maciej Pacula, Yee Lok Wong, Cy P. Chan, Marek Olszewski, Una-May O'Reilly, Saman P. Amarasinghe
CASES3
2011 Language and compiler support for auto-tuning variable-accuracy algorithms
abstract
Approximating ideal program outputs is a common technique for solving computationally difficult problems, for adhering to processing or timing constraints, and for performance optimization in situations where perfect precision is not necessary. To this end, programmers often use approximation algorithms, iterative methods, data resampling, and other heuristics. However, programming such variable accuracy algorithms presents difficult challenges since the optimal algorithms and parameters may change with different accuracy requirements and usage environments. This problem is further compounded when multiple variable accuracy algorithms are nested together due to the complex way that accuracy requirements can propagate across algorithms and because of the size of the set of allowable compositions. As a result, programmers often deal with this issue in an ad-hoc manner that can sometimes violate sound programming practices such as maintaining library abstractions. In this paper, we propose language extensions that expose trade-offs between time and accuracy to the compiler. The compiler performs fully automatic compile-time and installtime autotuning and analyses in order to construct optimized algorithms to achieve any given target accuracy. We present novel compiler techniques and a structured genetic tuning algorithm to search the space of candidate algorithms and accuracies in the presence of recursion and sub-calls to other variable accuracy code. These techniques benefit both the library writer, by providing an easy way to describe and search the parameter and algorithmic choice space, and the library user, by allowing high level specification of accuracy requirements which are then met automatically without the need for the user to understand any algorithm-specific parameters. Additionally, we present a new suite of benchmarks, written in our language, to examine the efficacy of our techniques. Our experimental results show that by relaxing accuracy requirements, we can easily obtain performance improvements ranging from 1.1× to orders of magnitude of speedup.
Jason Ansel, Yee Lok Wong, Cy P. Chan, Marek Olszewski, Alan Edelman, Saman P. Amarasinghe
CGO2
2009 PetaBricks: a language and compiler for algorithmic choice
abstract
It is often impossible to obtain a one-size-fits-all solution for high performance algorithms when considering different choices for data distributions, parallelism, transformations, and blocking. The best solution to these choices is often tightly coupled to different architectures, problem sizes, data, and available system resources. In some cases, completely different algorithms may provide the best performance. Current compiler and programming language techniques are able to change some of these parameters, but today there is no simple way for the programmer to express or the compiler to choose different algorithms to handle different parts of the data. Existing solutions normally can handle only coarse-grained, library level selections or hand coded cutoffs between base cases and recursive cases.
Jason Ansel, Cy P. Chan, Yee Lok Wong, Marek Olszewski, Alan Edelman, Saman P. Amarasinghe
PLDI3
2009 Autotuning multigrid with PetaBricks
abstract
Algorithmic choice is essential in any problem domain to realizing optimal computational performance. Multigrid is a prime example: not only is it possible to make choices at the highest grid resolution, but a program can switch techniques as the problem is recursively attacked on coarser grid levels to take advantage of algorithms with different scaling behaviors. Additionally, users with different convergence criteria must experiment with parameters to yield a tuned algorithm that meets their accuracy requirements. Even after a tuned algorithm has been found, users often have to start all over when migrating from one machine to another.
Cy P. Chan, Jason Ansel, Yee Lok Wong, Saman P. Amarasinghe, Alan Edelman
SC3