Slide 1

Slide 1 text

ϓϩάϥϜΛ ߴ଎Խ͠Α͏ dংষd

Slide 2

Slide 2 text

ϓϩάϥϜΛߴ଎Խ͢Δ࿩ ˔ ϜʔΞͷ๏ଇ௨Γʹ$16ͷੑೳ͕
 ্͕Δ࣌୅͸ऴΘͬͨ Ὂ ͜Ε͔Β͸ߴ଎ԽΛҙ͍͔ࣝͯ͠ͳ͍ͱ͍͚ͳ͍ ˔ ํ๏ͱͯ͠͸େମͭ ίϯύΠϥͰ࠷దԽ ࣗ෼Ͱ࠷దԽ ͦͷ͏ͪษڧձͰ΍Γ·͢ ฒྻԽ

Slide 3

Slide 3 text

ίϯύΠϥͰ࠷దԽ ˔ ΠϯςϧͷίϯύΠϥ Ὂ উखʹฒྻԽͯ͘͠ΕΔΒ͍͠ Ὂ ֶੜ͸ແྉͰखʹೖΕΒΕΔ ˔ ίϯύΠϥͷ࠷దԽΦϓγϣϯ Ὂ 0ϝϞϦ΁ͷΞΫηεΛݮΒ͢ Ὂ 0΄ͱΜͲͷ࠷దԽΦϓγϣϯΛ༗ޮԽ Ὂ 00JOMJOFGVODUJPOT

Slide 4

Slide 4 text

ฒྻԽ ˔ ϚϧνεϨουϓϩηε Ὂ ͬ͘͟Γݴ͏ͱϝϞϦۭؒͷѻ͍͕ҧ͏ ˗ εϨου਌ͱࢠ͕ϝϞϦڞ༗ ˗ ϓϩηε਌ͱࢠͷϝϞϦ͸ผ ˔ (16ʹΑΔฒྻԋࢉ Ὂ $VEBͱ͔

Slide 5

Slide 5 text

࣮ࡍʹߴ଎Խͯ͠ΈΔ ˔ ΈΜͳେ޷͖$ݴޠͰࢼͯ͠ΈΑ͏ʂ ˔ άϨΰϦʔϥΠϓχοπڃ਺L?Λܭࢉର৅

Slide 6

Slide 6 text

$ݴޠ4JOHMF #include #include double get_coefficient(int i){ return i % 2 ? -1.0 : 1.0; } int main(int argc, char *argv[]){ printf("%d\n", argc); int i; double sum = 0.0; for(i=0; i<=100000000; i++){ sum += get_coefficient(i) / (2.0 * i + 1.0); } sum *= 4; printf("Ans:%.16f\n", sum); return 0; }

Slide 7

Slide 7 text

$ݴޠ.VMUJ5ISFBE int main(void){ struct index idx[N_THREAD]; int i; int base = 100000000/N_THREAD; pthread_t threads[N_THREAD]; int rets[N_THREAD]; for(i=0; i

Slide 8

Slide 8 text

ܭࢉ଎౓/@5)3&"% 4JOHMF .VMUJ ௨ৗ 0.49 0.25 0 0.41 0.11 0 0.12 0.07 0 0.12 0.07

Slide 9

Slide 9 text

ૣ͍͚Ͳ$ͰฒྻԽ͸ਏ͍ ˔ ͋ͬͪ΋ͬͪ͜΋ϙΠϯλͩΒ͚ Ὂ ΋ͬͱେن໛ͳϓϩάϥϜʹͳͬͨΒͲ͏͢Δʁ Ὂ ΋ͱ΋ͱ$ݴޠ͸ฒྻԽʹదͯ͠ͳ͍ ˔ Ͱ΋ฒྻԋࢉ͍ͨ͠

Slide 10

Slide 10 text

ͦΜͳ͋ͳͨʹ 3VTU

Slide 11

Slide 11 text

3VTUͬͯʁ ˔ อূ͞ΕͨϝϞϦ҆શ ˔ σʔλڝ߹ͷͳ͍εϨου ˔ ܕਪ࿦ ˔ ޮ཰తͳ$όΠϯσΟϯά ˔ ௒༏लͳ$BSHP

Slide 12

Slide 12 text

3VTUͰฒྻԽ use std::thread; fn calc(begin: i32, end: i32) -> f32{ let mut sum = 0.0; for i in begin..end{ sum += if i % 2 == 0 {1.0} else {-1.0} / (2.0 * i as f32 + 1.0); } sum * 4.0 } const N_THREAD: i32 = 10; fn main() { let mut children = vec![]; let base = 100000000 / N_THREAD; for i in 0..N_THREAD{ children.push(thread::spawn(move || { calc(i*base, (i+1)*base) })); } let mut sum = 0.0; for c in children{ let ret = c.join().unwrap(); sum += ret; } println!("{}", sum); }

Slide 13

Slide 13 text

ܭࢉ଎౓/@5)3&"% ˔ DBSHPCVJMESFMFBTFͰ
 ࠷దԽͨ͠όΠφϦΛग़ྗͯ͘͠ΕΔ ˔ $ΑΓ΋҆શʹॻ͚ͯɼ$ͷΑ͏ͳ଎౓͕ग़Δʂʂ 4JOHMF .VMUJ ௨ৗ 0.13 0.06

Slide 14

Slide 14 text

3VTUͷ։ൃ؀ڥʹ͍ͭͯ ˔ SVTUVQίϯύΠϥͷΠϯετʔϧؔ࿈πʔϧ ˔ SVTUJDίϯύΠϥ ˔ DBSHPϏϧυγεςϜύοέʔδϚωʔδϟ ˔ ΤσΟλܥ Ὂ +FU#SBJOTͷϓϥάΠϯ Ὂ ެ͕ࣜิ׬༻ͷϓϥάΠϯΛग़ͯ͠Δ ˗ SBDFS ˗ 74$PEFͱ͔7JNͰ΋Ͱ͖Δʂʂ

Slide 15

Slide 15 text

շదͳ 3VTUϥΠϑΛʂ

Slide 16

Slide 16 text

·ͱΊ ˔ ίϯύΠϥͰϓϩάϥϜ͸ߴ଎ԽͰ͖Δ ˔ Ϣʔβʔ͕ฒྻԽ͢Δͷ͸େม Ὂ 3VTU࢖͏ͱ͍͍Α ˔ νϡʔχϯάʹ͍ͭͯ͸௕͘ͳΔͷͰ
 ͦͷ͏ͪԿ͔ͷษڧձͰ΍Γ·͢ɽ ˔ $ 3VTU 1ZUIPO (PͳͲͰ࣮ݧͨ͠ͷͰ
 ·ͱΊͨ݁ՌΛϒϩάʹ্͛·͢ ͨͿΜ