๊ฒŒ์ž„ ๊ตฌ์ƒํ•˜๋Š”๊ฑฐ๋‚˜ ๋ฐธ๋Ÿฐ์‹ฑ์ด๋ผ๋˜์ง€ ๋ฉ”์นด๋‹ˆ์ฆ˜ ๊ณ ๋ฏผํ•˜๋Š”๊ฑฐ๋ž‘ ๊ด€๋ จ๋œ ์ผ์€ ๋ญ๋ผ๋„ ์žฌ๋ฐŒ๋Š”๊ฑฐ ๊ฐ™์€๋ฐ


ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ง„์งœ ... ๋„˜ ๊ท€์ฐฎ์•„์„œ ์š”์ฆ˜์— ๊ทธ๋ƒฅ ์—‘์…€ ๊ฐ€์ง€๊ณ  ์ˆซ์ž ๋ณ€ํ•˜๋Š”๊ฑฐ๋งŒ ๋ณด๊ณ  ์žˆ๋‹ค๊ฐ€ ๊ฒŒ์ž„ ๊ธฐํš์ž๋“ค์— ๋Œ€ํ•œ ๋ธ”๋กœ๊ทธ๋‚˜ ์œ ํŠœ๋ธŒ ๋ณด๋‹ˆ๊ณ  ๋ง‰ ๋Œ๋ฆฌ๊ณ  ์žˆ๋Š” ์ค‘.



๋‚ด ์ƒํƒœ๊ฐ€ ๋Œ€๊ฐ• ์ด๋Ÿผ.


๊ธฐ๊ณ„๊ณตํ•™ ์ „๊ณตํ•ด์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ˆ˜์น˜ํ•ด์„ ๋•Œ ๋ฐฐ์šด๊ฒŒ ์ „๋ถ€์ง€๋งŒ ๋Œ€ํ•™์› ์ „๊ณต์ด ์ „์‚ฐ์œ ์ฒด์—ญํ•™์ด๋ผ ์ธํ•˜์šฐ์Šค ์ฝ”๋”ฉํ–ˆ๋˜ ๊ฒฝํ—˜์œผ๋กœ ์ˆ˜์น˜ํ•ด์„์ข€ ํ•˜๋Š” ์ •๋„.


๋‹น์‹œ์— C#์œผ๋กœ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ(์ดˆ๋ณด์žํ•œํ…Œ ํŽธํ•˜๋‹ค๋Š” ์ด์œ ๋กœ ์„ ํƒํ•จ) ์ข€ ๋А๋ ค์„œ ์ฟ ๋‹ค๋ž‘ openCL ์จ์„œ ๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ–ˆ์—ˆ์Œ(๊ฑ ์ดˆ๋ณด์ ์ธ ์ˆ˜์ค€๋งŒ ํ• ์ค„ ์•” for loop unrolling ํ•˜๋Š” ์ •๋„)


ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋Œ€๊ฐ• ๊ฒฝํ—˜ํ•ด๋ณธ๊ฑด C#, ํŒŒ์ด์ฌ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ. ์ž๋ฃŒ๊ตฌ์กฐ๋‹ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋Ÿฐ๊ฑด ์ž˜ ๋ชฐ๋ผ์„œ ๊ทธ๋ƒฅ ใ„นใ…‡ ๋น„์ „๊ณต์ž์ธ ๊ณต๋Œ€์ƒ ์ˆ˜์ค€์œผ๋กœ๋งŒ ํ•จ.

VBA๋‚˜ ๋ฃจ์•„ ๊ฐ™์€๊ฑด ์•ˆํ•ด๋ดค์ง€๋งŒ ์–ด์งœํ”ผ ๋‚ด ์ˆ˜์ค€์—์„  if ๋ฌธ, for ๋ฌธ, ์ปจํ…Œ์ด๋„ˆ ์“ฐ๋Š”๊ฑฐ๋งŒ ์ตํžˆ๋ฉด ๊ทธ ์–ธ์–ด๊ฐ€ ๊ทธ ์–ธ์–ด๋ผ ๋ณ„ ๊ฑฑ์ • ์•ˆํ•จ. ์–ด์งœํ”ผ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ ๊ฒŒ์ž„ํšŒ์‚ฌ ๊ฐ€๊ณ  ์‹ถ์€ ์ƒ๊ฐ๋„ ์—†์Œ.


์ˆ˜ํ•™ ์ž˜ํ•˜๋Š”๊ฑด ์•„๋‹ˆ์ง€๋งŒ ๊ทธ๋ž˜๋„ ๊ฒŒ์ž„์— ์“ธ ์ˆ˜ ์žˆ๋Š” ์ด๋ก ์ด๋‚˜ ๋…ผ๋ฌธ์ด ์žˆ๋‹ค๋ฉด ๋ถ„์•ผ ๊ฐ€๋ฆฌ์ง€ ์•Š๊ณ  ์žฌ๋ฐŒ๊ฒŒ ๋ด„.


์•„ ๊ทธ๋ฆฌ๊ณ  ์กด๋‚˜ ๊ฒŒ์ž„ ํ์ธ์ž„, ใ„นใ…‡๋ฃจ... ์ข‹์•„ํ•˜๋Š” ์žฅ๋ฅด๋Š” ๋กœ๊ทธ๋ผ์ดํฌ ๋„ทํ•ต, ToME4, ๋Œ์ฃฝ ์ด๋Ÿฐ ๊ฒƒ. ๋งŒ๋“ค ๋•Œ๋Š” ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด๋‚˜ ํด๋ฆฌ์ปค ๊ฐ™์€๊ฒŒ ์ข‹์Œ. ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๊ธฐ ํŽธํ•ด๋ณด์ด๊ธฐ๋„ ํ•˜๊ณ , ๊ฒŒ์ž„ ์ž์ฒด๊ฐ€ ์ข€ ์ˆ˜ํ•™์ ์ธ ๊ตฌ์กฐ๊ฐ€ ์ค‘์š”ํ•ด๋ณด์—ฌ์„œ.



์ค€๋น„์ข€ ํ•ด์„œ ๊ธฐํš์ž ๋ชจ์ง‘ํ• ๋•Œ ๋ง‰ ์ง€์›ํ•˜๋ฉด ๊ผฝ์‚ฌ๋ฆฌ ๋ผ๋Š”๊ฑฐ ๊ฐ€๋Šฅํ•จ?