Last update: Thu Apr 12 03:37:15 MDT 2012
Top |
Symbols |
Numbers |
Math |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z
BibTeX entry
@Article{Brewer:1995:HOA,
author = "E. A. Brewer",
title = "High-level optimization via automated statistical
modeling",
journal = j-SIGPLAN,
volume = "30",
number = "8",
pages = "80--91",
month = aug,
year = "1995",
CODEN = "SINODQ",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160 (electronic)",
ISSN-L = "0362-1340",
bibdate = "Sat Sep 7 07:51:54 MDT 1996",
abstract = "We develop the use of statistical modeling for
portable high-level optimizations such as data layout
and algorithm selection. We build the models
automatically from profiling information which ensures
robust and accurate models that reflect all aspects of
the target platform. We use the models to select among
several data layouts for an iterative PDE solver and to
select among several sorting algorithms. The selection
is correct more than 99\% of the time on each of four
platforms. In the few cases it selects suboptimally,
the selected implementation performs nearly as well;
that is, it always makes at least a very good choice.
Correct selection is platform- and workload-dependent
and can improve the performance by nearly a factor of
three. We also use the models to optimize parameters of
these applications automatically. In all cases, the
models predicted the optimal parameter setting,
resulting in improvements ranging up to factor of
three. Finally, we use the models to construct portable
high-level libraries, which contain multiple
implementations and support for automatic selection and
parameter optimization of the fastest implementation
for the target platform and workload.",
acknowledgement = ack-nhfb,
affiliation = "California Univ., Berkeley, CA, USA",
classification = "C1140Z (Other topics in statistics); C1180
(Optimisation techniques); C4170 (Differential
equations); C6110B (Software engineering techniques);
C6115 (Programming support); C6130 (Data handling
techniques); C7310 (Mathematics computing)",
keywords = "Accurate models; Algorithm selection; Automated
statistical modeling; Automatic parameter optimization;
Data layout; High-level optimization; Iterative PDE
solver; Multiple implementations; Partial differential
equations; Performance improvement; Platform-dependent
selection; Portable high-level libraries; Portable
high-level optimizations; Profiling information; Robust
models; Sorting algorithm selection; Workload-dependent
selection",
thesaurus = "Iterative methods; Mathematics computing;
Optimisation; Partial differential equations; Software
libraries; Software performance evaluation; Software
portability; Sorting; Statistics",
}
Related entries
- accurate,
28(7)129,
29(6)1,
29(6)85,
29(6)218,
29(6)337,
29(6)337-1,
29(11)242,
29(11)252,
30(6)67,
30(8)207,
31(5)108,
32(12)63,
32(12)63
- always,
25(6)92,
25(6)112,
25(6)127-1,
28(3)361,
28(7)229,
30(6)233,
30(6)279,
30(8)179
- aspect,
25(6)337,
28(2)21,
28(6)187,
28(6)237,
29(6)290,
29(8)1,
30(8)19,
30(11)88,
31(8)74,
31(8)74-1,
32(10)162
- automated,
25(8)37,
26(2)109,
28(8)90,
29(8)35,
30(8)80
- automatic,
25(6)283,
25(6)337,
26(6)120,
26(6)317,
28(1)82,
28(3)359,
28(6)207-1,
28(8)90,
29(6)73,
29(6)135,
29(8)46,
29(10)164,
29(11)12,
29(11)263,
29(12)104,
30(3)13,
30(4)71,
30(4)71-1,
30(6)186,
30(8)58,
30(8)134,
30(8)156,
30(11)60,
30(11)99,
30(11)134,
31(4)11,
31(4)11-1,
31(6)190,
31(10)235,
31(10)251,
32(5)7,
32(5)57,
32(5)159,
32(5)215,
32(5)226,
32(5)249,
32(5)346-1,
32(7)136,
32(8)274,
33(10)1,
34(5)242,
34(8)72,
34(8)84,
34(8)163
- automatically,
25(4)59,
25(6)223,
25(6)283,
25(6)322,
26(12)132,
27(7)261,
28(3)367,
29(6)135,
29(8)59,
29(10)31,
30(8)48,
30(8)58,
30(8)166,
30(11)60,
30(11)99,
32(7)112,
32(7)112,
33(5)345,
33(7)43
- build,
25(4)51,
27(7)82,
27(9)262,
29(6)196,
29(11)98,
30(3)94,
30(3)111,
30(8)29,
30(11)20-1,
34(4)19,
34(4)19-1,
34(9)249
- C1180,
29(4)58,
29(6)73,
29(6)85,
29(6)97,
29(6)159,
29(6)257-1,
29(6)266,
29(9)38,
30(6)139,
30(8)134
- C4170,
30(8)48
- C6110B,
25(10)237,
27(12)20,
28(2)21,
28(6)166,
28(7)112,
29(1)27,
29(4)23,
29(4)41,
29(5)7,
29(6)302,
29(7)29,
29(7)43,
29(8)35,
29(8)46,
29(8)59,
29(8)84,
29(8)111,
29(9)77,
29(10)176,
29(10)205,
29(10)212,
29(12)78,
30(2)12,
30(3)103,
30(3)111,
30(6)103,
30(6)291,
30(8)11,
30(8)19,
30(8)29,
30(11)20-1,
30(11)31,
30(11)60,
30(11)134,
30(11)146-1
- C6115,
25(1)52,
29(6)196,
29(8)1,
29(8)13,
29(8)22,
29(8)46,
29(9)44,
29(9)77,
29(10)164,
29(10)212,
29(10)229,
29(10)287,
29(10)355,
29(10)403,
29(11)263,
29(12)38,
29(12)73,
29(12)78,
29(12)94,
30(3)111,
30(3)119,
30(6)103,
30(6)291,
30(8)11,
30(8)48,
30(8)68,
30(11)50,
30(11)99,
30(11)108,
30(11)117,
30(11)134,
30(11)146-1
- C6130,
17(9)18,
28(7)33,
29(2)13,
29(3)23,
29(5)31,
29(9)64,
29(10)191,
29(10)388,
29(11)110,
29(11)208,
30(8)112,
30(11)50,
30(11)79
- C7310,
25(6)92,
25(6)102,
25(6)112,
28(3)209,
28(3)355,
28(7)169,
28(7)179,
28(7)187,
28(8)90,
29(3)12,
30(8)48
- case,
6(4)72,
25(6)78,
25(6)296,
25(10)57,
26(4)279,
26(7)201,
27(7)116,
27(7)235,
27(9)262,
27(10)377,
28(3)37,
28(6)187,
28(6)197,
28(7)83,
28(7)169,
29(3)12,
29(6)49,
29(6)107,
29(6)135,
29(6)147,
29(6)218,
29(8)46,
29(9)91,
29(11)76-1,
29(11)219,
29(11)274,
30(3)1,
30(6)67,
30(6)93,
30(6)151,
30(6)174,
30(6)186,
30(6)233,
30(8)92,
30(11)31,
30(11)88,
31(5)117,
31(7)4,
31(9)2,
31(9)2-1,
31(10)342,
32(6)34,
32(10)206-1,
33(10)226,
33(10)226-1,
33(11)252,
34(10)340
- choice,
27(7)300,
28(7)64,
29(6)159,
29(6)349,
29(6)349-1,
29(8)1,
29(10)129,
29(10)164,
29(11)25,
29(11)76-1,
29(11)122,
30(3)71,
30(11)79
- contain,
23(12)728-1,
27(7)32,
27(7)152,
27(7)188-1,
27(7)200,
28(3)133,
28(6)100,
29(6)49,
29(6)302,
29(8)101,
30(6)130,
33(1)56
- correct,
25(4)51,
25(6)102,
25(7)7,
28(7)83,
28(7)159,
29(6)278,
29(11)183
- develop,
25(6)137,
27(7)200,
27(9)285,
28(6)100,
30(6)233,
33(7)59
- differential,
30(8)48
- each,
25(6)85-1,
25(6)234,
25(6)283,
26(4)290,
27(7)1,
27(7)22,
27(7)68,
27(7)82,
27(7)188-1,
27(7)212,
27(7)273,
27(7)322,
28(2)21,
28(3)299,
28(6)1,
28(6)26,
28(6)56,
28(6)90,
28(6)100,
28(6)126,
28(6)147,
28(8)90,
29(6)13,
29(6)85,
29(6)107,
29(6)171,
29(6)349,
29(6)349-1,
29(8)59,
29(8)101,
29(8)119,
29(11)61,
29(11)98,
29(11)171,
29(11)286,
29(11)297,
29(11)319,
30(3)35,
30(3)62,
30(6)23,
30(6)47,
30(6)79-1,
30(6)93,
30(8)29,
30(8)134,
30(8)189,
30(11)79,
30(11)125,
33(7)43
- engineering,
6(4)72,
25(8)15,
25(10)237,
26(10)73,
27(10)166,
27(10)166-1,
27(12)20,
28(2)21,
28(3)343,
28(6)166,
28(7)1,
28(7)112,
28(8)90,
29(1)27,
29(4)23,
29(4)41,
29(5)7,
29(6)196,
29(6)302,
29(7)29,
29(7)43,
29(8)35,
29(8)46,
29(8)59,
29(8)84,
29(8)111,
29(9)77,
29(10)176,
29(10)205,
29(10)212,
29(11)132-1,
29(12)78,
30(2)12,
30(3)103,
30(3)111,
30(6)103,
30(6)291,
30(8)11,
30(8)19,
30(8)29,
30(8)48,
30(10)333,
30(11)20-1,
30(11)31,
30(11)60,
30(11)79,
30(11)134,
30(11)146-1,
32(1)86,
32(1)86-1,
32(5)159,
33(7)1,
33(7)11,
33(7)19,
33(7)27,
33(7)35,
33(7)43,
33(7)51,
33(7)59,
33(7)67,
33(7)75,
33(7)83,
33(12)14,
34(10)97
- ensure,
25(6)165,
28(7)229,
29(6)278,
29(11)61,
30(6)196
- equation,
25(6)1,
27(7)152,
27(8)43,
28(6)78-1,
28(7)159,
28(7)179,
30(6)163-1,
30(8)48,
32(12)90,
32(12)90
- factor,
25(6)53,
25(6)66,
27(7)106,
28(3)53,
28(3)97,
28(6)1,
28(12)169,
29(6)73,
29(6)337,
29(6)337-1,
29(9)81,
29(11)25,
30(3)71,
30(8)179,
30(8)207,
30(11)99
- fastest,
30(8)58
- few,
25(6)92,
25(6)112,
25(6)165,
27(7)82,
28(3)209,
28(3)231,
28(6)139-1,
29(6)36,
29(6)337,
29(6)337-1,
29(11)232,
29(11)242,
29(11)328,
30(6)186,
33(7)51
- finally,
25(6)53,
25(6)112,
28(3)209,
28(3)347,
28(6)46,
28(6)237,
29(6)171,
29(6)290,
30(6)32,
30(8)156,
30(11)50
- four,
27(3)35,
27(7)44,
28(3)299,
28(8)90,
29(8)129,
29(11)61,
30(6)270
- good,
25(6)53,
25(6)85-1,
25(6)174,
27(9)248,
27(12)61,
28(3)347,
28(6)139-1,
28(6)177,
28(6)278,
28(7)13,
28(7)112,
28(11)9,
28(11)9-1,
29(6)290,
29(10)145,
29(11)208,
29(11)219,
30(3)119,
30(6)130,
30(8)134,
30(8)199,
30(11)7,
32(3)27,
32(3)27-1,
33(4)34,
33(7)59
- handling,
17(9)18,
25(6)28,
25(10)116,
25(10)322,
27(4)77,
27(7)128,
27(12)61,
28(3)133,
28(6)13,
28(6)26,
28(6)147,
28(7)33,
28(10)271,
28(10)271-1,
28(10)288,
29(2)13,
29(3)23,
29(5)31,
29(6)242,
29(6)242-1,
29(6)349-1,
29(9)64,
29(9)68,
29(9)159,
29(10)191,
29(10)259,
29(10)388,
29(11)51,
29(11)110,
29(11)208,
29(12)104,
30(8)112,
30(8)217,
30(11)50,
30(11)79,
33(8)40,
33(11)151
- high-level,
25(3)156,
27(7)55,
27(7)116,
27(11)59,
28(3)359,
28(6)139-1,
28(7)44,
28(7)112,
28(7)119,
28(7)119-1,
28(7)239,
29(8)59,
29(10)176,
30(3)119,
30(6)1,
30(8)11,
30(8)19,
30(8)80,
30(11)50,
32(5)109,
33(10)271
- improve,
25(6)53,
25(6)337,
26(6)145,
26(6)177,
26(6)177-1,
27(7)106,
27(7)116,
27(7)162,
27(7)188-1,
27(7)249,
27(9)223,
28(3)201,
28(6)100,
28(6)187,
28(6)268,
28(6)300,
29(6)36,
29(6)49,
29(6)97,
29(6)159,
29(6)206,
29(6)257,
29(6)257-1,
29(11)171,
29(11)208,
29(11)219,
29(11)232,
29(11)242,
29(11)252,
30(6)13,
30(6)56,
30(6)93,
30(6)116,
30(6)151,
30(6)174,
30(6)186,
30(6)196,
30(6)205,
30(6)279,
30(8)29,
30(8)166,
30(8)189,
30(8)199,
33(5)97,
33(7)51,
34(5)215
- improvement,
23(1)17,
24(3)34,
25(6)16,
25(6)174,
26(4)28,
26(6)219,
27(7)68,
28(6)78-1,
28(6)278,
29(6)36,
29(6)186,
29(6)266,
29(6)313,
29(6)349,
29(6)349-1,
29(11)12,
29(11)51,
29(11)232,
29(11)242,
29(11)252,
30(3)23,
30(6)186,
30(6)196,
30(6)205,
30(8)1,
30(8)29,
30(11)1,
30(11)7
- iterative,
25(6)150,
27(10)178,
28(3)299,
29(6)349-1,
30(8)123,
32(3)21,
33(5)38
- layout,
25(6)85,
25(6)85-1,
25(6)223,
25(10)237,
30(6)67,
30(6)205,
30(6)279,
30(8)166,
30(10)124,
34(5)1,
34(10)256
- least,
25(6)165,
27(7)212,
28(6)197,
30(6)246,
30(11)50
- level, High-,
28(7)44,
28(7)239,
30(6)1,
30(8)19,
30(8)80,
30(11)50,
32(5)109,
33(10)271
- level, high-,
25(3)156,
27(7)55,
27(7)116,
27(11)59,
28(3)359,
28(6)139-1,
28(7)44,
28(7)112,
28(7)119,
28(7)119-1,
28(7)239,
29(8)59,
29(10)176,
30(3)119,
30(6)1,
30(8)11,
30(8)19,
30(11)50
- library,
26(4)290,
26(11)47,
27(3)71,
27(7)200,
27(9)285,
27(10)435,
27(10)435-1,
27(12)81,
28(1)21,
28(1)21-1,
28(3)271,
28(3)343,
28(3)347,
28(6)100,
28(7)102,
28(10)83,
29(6)49,
29(8)46,
29(10)212,
29(10)453,
30(3)119,
30(6)291,
30(8)11,
30(8)58,
30(8)68,
31(4)4,
31(4)4-1,
31(12)22,
32(5)206,
32(10)1,
32(10)1-1,
34(1)261,
34(3)86,
34(6)76,
34(10)399
- make,
25(1)59,
25(6)78,
25(6)85-1,
25(6)150,
25(6)246,
26(8)145,
27(7)1,
27(7)82,
27(7)152,
27(7)249,
27(9)285,
27(12)61,
28(3)69,
28(3)97,
28(3)231,
28(3)347,
28(6)156,
28(6)300,
28(7)64,
28(7)239,
29(6)24,
29(6)73,
29(6)257,
29(6)257-1,
29(6)349,
29(6)349-1,
29(8)35,
29(11)171,
29(11)196,
29(11)308,
30(3)62,
30(3)94,
30(6)93,
30(6)103,
30(6)130,
30(6)174,
30(8)1,
30(8)58,
30(8)68,
32(10)253
- modeling,
25(3)11,
26(8)27,
27(7)200,
27(10)359,
28(6)100,
28(10)305,
29(9)81,
29(10)272,
29(11)122,
29(11)132-1,
30(6)13,
30(8)80,
31(9)138,
31(11)49,
32(7)276,
32(10)77,
32(10)108,
34(10)57,
34(12)47,
34(12)67
- nearly,
25(6)311,
27(7)44,
28(7)83,
29(6)49,
29(11)158,
30(8)217
- optimal,
25(6)85-1,
26(4)28,
26(6)256,
26(6)256-1,
26(7)1,
27(4)68,
27(7)200,
27(7)224,
27(9)149,
28(1)68,
28(6)248,
28(7)64,
28(7)64-1,
28(12)1,
29(6)147,
29(6)313,
29(11)328,
30(3)71,
30(6)32,
30(6)186,
30(6)246,
30(8)134,
30(8)207,
31(5)1,
32(5)194,
32(8)188,
33(11)218
- optimisation,
29(4)41,
29(4)58,
29(6)49,
29(6)73,
29(6)85,
29(6)97,
29(6)159,
29(6)257-1,
29(6)266,
29(9)38,
29(10)229,
29(10)244,
29(10)324,
29(10)453,
29(11)110,
30(6)130,
30(6)139,
30(6)279,
30(8)112,
30(8)134,
34(1)39
- optimize,
27(7)55,
27(9)262,
28(6)126,
28(6)237,
29(11)122,
30(6)130,
30(8)112,
30(8)166
- parameter,
25(1)59,
25(6)127,
25(6)127-1,
27(7)152,
28(2)14,
28(2)14-1,
28(5)9,
28(6)90,
28(6)227,
28(6)237,
29(6)135,
29(8)46,
29(8)59,
29(11)219,
30(4)80
- perform,
26(6)219,
27(7)12,
27(7)32,
27(7)82,
27(7)200,
28(6)156,
28(6)177,
28(6)237,
28(6)300,
28(8)90,
29(6)49,
29(6)206,
29(11)25,
29(11)145,
29(11)158,
29(11)171,
29(11)319,
30(3)94,
30(6)151,
30(6)163-1,
30(6)186,
30(6)205,
30(8)48,
30(8)123,
30(8)217,
30(11)7,
30(11)20-1
- platform,
26(12)184,
28(7)198,
29(6)186,
30(8)123,
31(9)150
- portable,
25(1)59,
26(1)109,
26(4)86,
26(12)184,
28(3)1,
28(3)347,
28(6)26,
28(7)1,
28(7)102,
28(7)179,
28(7)198,
28(7)208,
28(9)39,
28(10)91,
28(12)96,
29(6)73,
30(3)111,
30(8)11,
30(8)102,
30(8)123,
31(4)20,
31(4)20-1,
31(5)79,
31(7)19,
31(8)52,
31(10)18,
34(3)146
- profiling,
25(6)78,
29(1)37,
29(6)36,
29(6)85,
29(6)97,
29(6)196,
30(6)67,
31(6)34,
32(5)85,
32(7)240,
32(7)240,
33(7)67,
33(7)75
- ranging,
29(6)186,
29(6)218
- reflect,
29(6)1,
33(7)19
- resulting,
25(6)174,
26(6)219,
27(7)152,
29(6)13,
29(6)147,
30(3)35,
30(6)301
- robust,
25(1)59,
27(7)55,
28(3)97,
30(8)58
- select,
29(11)25,
29(11)252,
30(8)29
- selected,
25(6)127-1,
25(10)237,
28(2)21,
29(6)121,
30(11)99,
33(4)30,
33(4)30,
33(4)31
- selection,
27(4)68,
29(12)66,
30(6)279,
30(11)99,
31(6)190,
33(7)1,
33(7)11,
33(7)19,
33(7)27,
33(7)35,
33(7)43,
33(7)51,
33(7)59,
33(7)67,
33(7)75,
33(7)83,
34(8)163
- setting,
28(6)147,
29(8)46,
29(9)77,
30(6)130,
30(6)301
- several,
25(4)20,
25(4)59,
25(6)9,
25(6)246,
25(6)283,
25(10)237,
27(7)68,
27(7)175,
27(7)212,
27(9)274,
28(3)1,
28(3)351,
28(6)90,
28(6)126,
28(6)207-1,
28(6)278,
28(7)112,
28(7)218,
29(6)73,
29(8)59,
29(11)12,
29(11)25,
29(11)38,
29(11)76-1,
29(11)110,
29(11)242,
29(11)252,
30(3)23,
30(3)50,
30(3)62,
30(6)67,
30(6)116,
30(6)315,
30(8)1,
30(8)48,
30(8)144,
30(8)179,
30(11)1,
30(11)79,
30(11)88,
30(11)146-1,
33(2)65,
33(7)51,
33(7)75,
33(7)83,
33(11)252,
33(11)295
- solver,
26(11)286,
29(10)259
- sorting,
25(6)66,
25(6)223,
28(3)363,
29(2)13,
29(9)64
- statistical,
27(7)200,
29(4)58,
30(8)80,
33(7)27,
34(5)242
- statistics,
29(1)37,
29(11)122,
29(11)252,
30(6)67
- target,
25(6)1,
25(6)322,
27(7)22,
28(3)347,
28(7)112,
29(9)140,
29(11)122,
30(6)93,
30(11)41,
30(11)88,
30(11)146-1
- three,
26(4)28,
27(7)22,
27(7)44,
27(7)200,
27(7)212,
28(6)13,
28(6)237,
28(7)33,
28(7)187,
28(7)198,
29(6)1,
29(6)186,
29(8)46,
29(11)61,
29(11)98,
29(11)286,
29(11)297,
30(3)83,
30(3)94,
30(4)29,
30(6)151,
30(8)68,
30(11)50,
30(11)117
- topics,
25(6)197,
29(9)149
- very,
24(3)34,
25(4)51,
25(6)1,
25(6)137,
25(6)234,
27(7)283,
27(7)341,
28(3)343,
28(3)359,
28(3)365,
28(6)26,
28(6)177,
28(6)197,
28(7)149,
28(8)90,
29(6)36,
29(6)73,
29(6)230,
29(6)349,
29(6)349-1,
29(11)12,
29(11)171,
30(6)246,
30(6)270,
30(6)301,
30(8)156,
31(5)160,
31(9)26,
31(9)37,
33(7)51,
33(7)67,
34(3)166
- via,
25(4)83,
26(6)192,
26(8)27,
27(9)51,
27(9)213,
28(4)29,
29(1)37,
29(6)49,
29(6)266,
29(11)242,
30(8)80,
30(11)125,
31(9)128,
31(9)160,
32(5)287,
33(7)27
- well,
25(6)28,
25(6)40,
27(1)95,
27(7)22,
27(9)285,
28(3)359,
28(6)36,
28(6)46,
28(6)166,
28(6)177,
28(6)187,
28(6)227,
28(6)300,
28(7)13,
28(7)102,
29(6)186,
29(6)206,
29(6)218,
29(6)266,
29(11)2,
29(11)122,
29(11)145,
29(11)158,
29(11)308,
30(6)32,
30(8)39,
30(8)48,
30(8)123,
30(8)217,
30(11)60,
33(7)1,
33(7)35,
33(7)75
- workload,
28(6)278,
29(10)414,
29(11)12,
29(11)76-1,
29(11)86,
29(11)132-1,
29(11)145,
29(11)274,
29(11)308,
33(11)307