Title: ?????????????(free())??????
1???????????????????????????????
2????????????????????
- ????????????????????
- ???????(???)????????
- ????????????????????
- ?????????????(free())??????
- ???????????????????
- ????????????????????
- ???????????????????(GC)???
3??????????????????????
- ?????????? ??????????????????????
- ????????????????????(OS???malloc(), Java
VM????????)???????? - ????????
- ???????100K?/???????
- GC?????20
- ????????????? ????????????GC???
?????????? ????????? ???????!
4?????
- ????????????????????????????????
- ????????/GC????????????
- ????????
- ??????????(SMP, DSM)???????
- ????????????
- (??????????????)
- http//www.yl.is.s.u-tokyo.ac.jp/gc/
5?????????(1)
- ???????? ??????????
- ???????? ????????????
- C/C
- Pthread, Solaris thread??
- ?????1????1????????
- ????????????????????????????
SMP ???????????
DSM ??????????
6?????????(2)
- Conservative GC????? Boehm et al. 88??????
- BIBOP(Big-bag-of-pages)?????
- ????????????????
- ???????GC
- ???????????GC??
- ??????GC
- ????GC
- ??????????BIBOP????????????????????
7?????
- ??????????????
- ?????????????GC (???)
- ??????GC??????
- ????GC (???)
8Part 1??????????????????????
9?????????????????????(1)
- ??????????????????????????
- ??????? ????
- Libc malloc??????????????
Libc malloc???????
- SGI Origin 2000
- 16byte??????????????????malloc??(???????)
- ???????????????
- free???????
?? ?
10?????????????????????(2)
- ?????/????????????????
- ???????????????????????????
- ????????? (?????????)
- Larson?98 Vee?99 ????????
- Berger?00 ???????????
- ???????(DSM)?????????????????
11??????????????????
- ??????????????
- ??????????????????????
- ????????????m???????????????2m
- ???(???????????)???
????????????????
m
thread 1 ???
time
m
thread 2 ???
time
???????? ???
??????
???????
????????????? ????
??
12???????????????
- ????????
- ?????????????
- ??? (????DSM???)
- ?? ????/????????????????(3?)
- ?????????????????????????????????????
- ???????
- ???????????????????????
- ????????????????
- ???????????? ??????????
- ??????? ???????????????????
13???????
- LPS(locality-aware page shared)??
- BIBOP(big bag of pages)????????????
- ??????
- 64?????(R10000 195MHz)?25M malloc/s
- 1???????36?
- ?????????????????????????
- ?????????? (k, 1?k??????) ???
14BIBOP????????
- ???????????????????
- ????????????????????
- ??????????????
- ????????????(????)
- ?????????
- ???????
- ??????????????
- ???????????????
- ????OS????????/GC
free obj list
free page list
heap
15????????
threads
- All Local(AL)??
- ?????????????
- ? ????????????
- ???????
- Page Shared(PS)??
- ???????? ??????
- ????? ??
- ? ???????
- ???
free obj list
free page list
OS
All-local(AL)
threads
free obj list
free page list
OS
Page-Shared(PS)
16???? LPS??
threads
- Locality-aware Page Shared (LPS)??
- ????????????? ?????????????
- 1. ????????????????
- 2. ??????????????????
- ??????
- 3a. ??????????????????????
- 3b. ???????OS????
free obj list
free page list
OS
(kmax(l))
k?? ? ?????? k?? ? ?????
?????? (????????)
?????????? (PS???????)
17????
- ??? DSM??? SGI Origin 2000
- R10000 195MHz 80
- Hypercube network
- ??????16KB
- ??????????????????????????????????????????????????
??(first-touch) - ???????????
- Matmul(???)
- CKY(?????????)
- BH(N???)?????
- C, GC??, StackThreads/MP ?? 99 ??(CKY??)
18??????????????
- 16byte??????????????
- ???????????????
- free/GC???????
?? ?
- ?????????????malloc?????
- AL/LPS????????????
- 64?????25M?/? (1??????36?, libc 64 ?????54?)
19????(1) matmul
- ????????????????
- ???1?????????????
- ??????????(????)???
- AL???????????????????
- 10001000???????30?
64???????????
?
20????(2) matmul???
21????(3) CKY
- ?????????
- ????????????????????????
- ??????????????????????
- 36100?????200???
64???????????
????????? ??????
??
22????(4) CKY???
- AL/PS?????????
- LPS/AL?PS????5??
23??
- ??????????????????
- ???????????
- 32??????????????
- CKY?????????10???????
- ?????????????????????
- Matmul??????CKY???????????
?????
16???????????
(IRIX Memory Reference Counter?????)
24????
- ?????????????????????????
- ???94 KLIC???????????????GC
- Larson?98
- Vee?99 ???????????????
- Berger?00 BIBOP,????????
- Boehm00 BIBOP, ????????????????????????
- ????DSM??????????
25Part1????
- ??BIBOP???????LPS???
- ????
- ???????? 64?????36?
- ???????
- DSM?????
- ???????????????????????????????
??????
26Part 2?????????????GC
27??????GC
time
????
???? GC
??GC ????????
Doligez 93??
??????GC
????GC (Part 4)
Halstead 85??
Cheng 01
- ??????GC??
- ???????????GC??? ? GC?????
- GC??GC??? ? ????????????
28?????????GC(1)
- GC????????????????
- ????????????????? ? ???????!
- ?????????????????????
29?????????GC(2)
- ?????????????
- ????????????? (???????)
- ??????? ????????????????????(????????????)???
- ?????????????? ? ?????????????
Lazy task creation Mohr et al. 90???
30?????????????????
- ???????????????
- ?????????????????????
- DSM???????????????????????
??????
31????
- ???
- Sun Enterprise 10000 SMP
- Ultra SPARC 250 MHz 64
- 10GB/s??????????
- SGI Origin 2000 DSM
- ?????
- BH (N???)
- Cube (Rubiks Cube?????)
- CKY (?????????) ????
32???????? BH
60??????????? (Enterprise, BH-pt)
- Barnes-Hut?????????N????????
- ????1 ?????????????????????
- ????2 ??????????? (???O(N log N))
- ?????????????
- ??????????????????????
- 2?????????????
- ????2?????(BH-st)
- ? 1??????????
- ????1,2????(BH-pt)
- 30,000??20??????
- ?????? 50MB??
A
?
33???????? Cube
60??????????? (Enterprise)
- Rubiks Cube???????
- ??????????????(???????????)
- ?????????????????????
- ?????? 35MB??
???
?????????? ??????????
34????(1)Enterprise??GC????
- (??????????/?????)???????
- ??????????????????
- 60?????1932??????
35????(2)Origin??GC????
13?
7?
- Enterprise?????????
- Origin????BH-pt?BH-st??????
- ??????Part3???
36????
- ??????GC
- Halstead et al. 85 ??????
- Uzuhara 90 Imai et al. 93 ???????????????????
?? - Flood et al. 01 ??????????????Copy
GC?mark-compact GC????
37Part2????
- ????????????????????GC???
- ???????????????????
- Enterprise 10000 60?????1932??????
- Origin 2000 64?????720??????
38Part 3??????GC??????
- (??????????????, IPDPS2001???)
39???????????GC??????
- Part2????????GC??????
- SMP/DSM???????????
- ?????????
- ???????
- ????????????????????????
- GC??????????????????
- ???????
- ????????????
- ????????????(????)
40????????
- ??????????????????????
- ???????????????
- ?????????????????
- ??????????????????DSM???
Enterprise 10000 (SMP)
Origin 2000 (DSM)
41????????(1)
- ?? GC??????????????
- ?? P????????GC??????
- ??????????????????????
- Live??????????????????????
- 1????????CPU????????????????
- CPU?? ? Live??????????
- ???????? ? ??????????????????????
- ?????
42????????(2)
?????????????
???
???
CPU??
T1
TP
????GC??
??????? ?????
????????
Q1
QP
TPM
TPM TP QPMP/P
MVA
??????? ???
MP
M1
???? 4.3.1 ??? TPM TP QPMP ? TPM TP
QPMP / P
- ??????????????????????
- ??????/????????TLB???
43??????????
- ?????????????????????????????
- 1/P???????????????
- ??????????????????
- ??????????????? (cf. LoPC???Frank et al.97)
- ??????????????
- ????????? CPU?Mem?CPU
- ??????2???????????????
- ???????????????????????
- ?????????????????????
44?????????????
?????
? ??????????? ???????????? ???????????
??????
SL
SO
SL
- SL ????????SO ??????????????
- ??????? MP 2 SL SO ??????
????????????
??????????????????????????
????????? DSM????!
45???????????(1)
????
????
B
B
A
A
PE1
PE1
PE2
PE3
??????????????????????????????????? ? ??????
46???????????(2)
???? Q1 4
????????
???? QP Q148
???????
????????
??????????
- ?????????????????
- QP Q1 (????????) (?????????????)
???????? P log(live-objects)
???????????????
47???? ????????
BH-st
Cube
E10000 SMP
O2000 DSM
Real Pred (full) Pred (no contention) Pred (no
miss incr.)
- BH(DSM)?????????????
- Cube????????????
- ?????738
48????
- LogP???Culler et al. 93
- latency, overhead, gap(bandwidth), processor
- LoPC???Vernon et al. 97
- active message???????????????
- ??????????????
- Portable Parallel Memory Frigo 99
- ?????????????????
- ?????????? ?underestimate
- ??????(???? x steal??)????? ?overestimate
49Part3????
- ??GC???????????????
- ??????????????P?????????????
- ?????????????????????
- ?????????????(????)
- ???????????????
- ?????????????????
- GC??????????(????)
- ?????
- ??????(???????????????????)
- ?????????????
50Part 4????GC
51????GC
- ??????????????????????GC?????????? ? ??GC?????
- ????????????????????????????
- GC?????????????
- GC?????
????GC
52???? v.s. ??????
- ????GC?????
- ? ???????
- ?????????????
- ???/GC???????
- ? ????????GC?????
- ? ?????????????
?????????
?????????
53????GC??????
??????GC
GC cycle
??????
??????
??????
?????? ????GC
GC cycle
- Mostly parallel GCBoehm 91????
- ??????
- Incremental update??????Dijkstra 78????
- ?????????????????????????
54??????????
- ?????????????????GC?????
- ??????????
- Incremental update?????????
- ?????? ????????????
- ?????? ???????
- ??? ????????????GC???
- ??????
- A ??????????????
- B ???
- ?????? (?????????)
- ???????A?????(????)
55?????????
- 2????????????
- ????????????????
- ? ??????????
- ? GC?????????????
- ????????????????
- ?????
- ?????????????????????????????
56????(1) ????
BH-pt
Cube
CKY
E10K
O2K
- ??????GC??????GC(VM???)???
- E10000 8????????????????1.73.2????
- ????????????????????????????
57????(2) ????
BH-pt
Cube
CKY
E10K
O2K
- ????GC???????GC???????????(??1.9?)
- VM??????????????????????????
- ???????????????????VM???
58???????
- ????????GC?????????????????????????????
- ????????????????????
- ???????????????
BH-pt/E10K
CKY/E10K
Cube/E10K
BH-pt/O2K
CKY/O2K
Cube/O2K
59????
- ????????GC/??GC
- Steele 75 Dijkstra 78 Baker 78 Yuasa 90
Doligez 93 - GC????????????????
- ????????????1?????GC????????????
- ????GC Cheng et al. 01
- ???????GC??????????????
- ML???????????????????
- ? ?????????????????????
60Part4????
- ???????????GC???
- ???????????????????GC???
- ???????
- ?????????????????????
- 2??????????????????
- ????????????????????????
- ?????
- ?????????
- ???????(Snapshot-at-beginning??)????
- ????
- GC???/??????
- ????????????????
61??????
- ????????????????????????????????????
- ??????????????
- ????????????????????????? (Part 1)
- ???????????GC???????GC (Part 2, 4)
- ?????????????????
- ????????????? (Part 1)
- ???????????
- ?????????????? (Part 1)
- GC??????? (Part 4)
62?????????????????
- ??????????
- Region analysis
- ???GC
- ??????
- ?????????????GC?????
- ??????????????
- Escape analysis ? ????????????/???????????
- ??????????????????????
- ????????????????GC??????
- ?????/???????????
63