±¹³»µµ¼
Àü°øµµ¼/´ëÇб³Àç
°øÇаè¿
ÄÄÇ»ÅÍ°øÇÐ
2013³â 9¿ù 9ÀÏ ÀÌÈÄ ´©Àû¼öÄ¡ÀÔ´Ï´Ù.
Á¤°¡ |
25,000¿ø |
---|
22,500¿ø (10%ÇÒÀÎ)
1,250P (5%Àû¸³)
ÇÒÀÎÇýÅÃ | |
---|---|
Àû¸³ÇýÅà |
|
|
|
Ãß°¡ÇýÅÃ |
|
À̺¥Æ®/±âȹÀü
¿¬°üµµ¼(207)
»óÇ°±Ç
ÀÌ»óÇ°ÀÇ ºÐ·ù
Ã¥¼Ò°³
[R º´·Ä ÇÁ·Î±×·¡¹Ö]Àº R¿¡¼ÀÇ º´·Ä 󸮸¦ À§ÇÑ ÇÙ½É ÆÐÅ°Áö parallel¿¡¼ ½ÃÀÛÇØ Å¬¶ó¿ìµå ±â¹Ý ÆÐÅ°Áö, °í±Þ MPI, GPU ±â¹Ý º´·ÄÈ µî¿¡ °üÇØ ±â¼úÀûÀ¸·Î ±íÀÌ ´Ù·é´Ù. R¿¡¼ È¿À²ÀûÀÎ º´·Ä Äڵ带 ÀÛ¼ºÇÒ ¼ö ÀÖ´Â ¹æ¹ý ¹× ÇÇÇØ¾ß ÇÒ ¹®Á¦¿¡ ´ëÇØ ±íÀÌ ÀÖ°Ô ¹è¿ï ¼ö ÀÖ´Ù. R º´·Ä ÇÁ·Î±×·¡¹ÖÀ» °£´ÜÇÏ°Ô ±¸ÇöÇÏ´Â ¹æ¹ýÀº ¹°·Ð, °íÂ÷¿øÀÇ º´·ÄÈ ±â¼úÀ» Á¢ÇÏ´Â µ¥ ÁÁÀº ±æÀâÀÌ°¡ µÉ °ÍÀÌ´Ù.
ÃâÆÇ»ç ¼Æò
¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á RÀÇ ³»Àå º´·Ä ÆÐÅ°Áö¸¦ »ç¿ëÇÑ ·Îµå¹ë·±½ÌµÈ º´·Ä ¿¬»êÀÇ È¿À²ÀûÀÎ ±¸Ãà
¡á AWS¿¡¼ µ¿ÀÛÇÏ´Â ÇϵÓÀÇ ºÐ»êÈµÈ ¿¬»ê ½ÇÇàÀ» Æ÷ÇÔÇÑ R¿¡¼ Ŭ¶ó¿ìµå ±â¹Ý º´·Ä ÀÎÇÁ¶ó ¹èÄ¡ ¹× È°¿ë
¡á RMPI, pbdMPI, SPRINT ÆÐÅ°Áö¸¦ »ç¿ëÇÑ ¸Þ½ÃÁö Àü´Þ ÀÎÅÍÆäÀ̽º(MPI)·Î º¹ÀâÇÑ º´·Ä ó¸® ¾Ë°í¸®Áò °³¹ß
¡á»ç¿ëÀÚÀÇ MPI ±â¹Ý ·çƾÀ¸·Î º´·Ä R ÆÐÅ°Áö(SPRINT)ÀÇ »ý¼º ¹× È®Àå
¡á OpenCL·Î ±×·¡ÇÈ ÇÁ·Î¼¼½Ì À¯´Ö(GPU)ÀÇ º¤ÅÍ Ã³¸® ´É·ÂÀ» È°¿ëÇÑ R¿¡¼ °¡¼ÓÈµÈ ¼öÄ¡ ÇÔ¼ö ±¸Çö
¡á µ¥µå¶ô ¹× ¼öÄ¡Àû ºÒ¾ÈÁ¤¼º°ú °°Àº º´·Ä ÇÁ·Î±×·¡¹ÖÀÇ ÇÔÁ¤°ú ó¸® ¹× ȸÇÇ ¹æ¹ý
¡á ¸¶½ºÅÍ-¿öÄ¿ °úÁ¦ ³óÀå, °ø°£ ±×¸®µå, ÇÏÀ̺긮µå º´·Ä R ÇÁ·Î±×·¥ ¸¸µé±â
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
Àå½Ã°£ ½ÇÇàµÇ´Â ¿¬»ê ¹× ´ë·®ÀÇ µ¥ÀÌÅÍ ºÐ¼®À» À§ÇØ º´·Ä ÄÄÇ»Æà ÆÄ¿öÀÇ È°¿ë¹ýÀ» ¹è¿ì°íÀÚ ÇÏ´Â Áß±Þ¿¡¼ °í±Þ ¼öÁØÀÇ ÇÁ·Î±×·¡¸Ó¸¦ ´ë»óÀ¸·Î ÇÑ´Ù. R ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ÀûÀýÇÑ Áö½Ä°ú ÀÌÇØ°¡ ¿ä±¸µÈ´Ù. C³ª C++¿Í °°Àº ³·Àº ¼öÁØ ¾ð¾î¸¦ Àаí ÀÌÇØÇÒ ¼ö ÀÖÀ¸¸ç ÄÚµå ÄÄÆÄÀÏ ÇÁ·Î¼¼½º¿¡ Àͼ÷ÇÒ Á¤µµ·Î ÃæºÐÇÑ ´É·ÂÀÇ ÇÁ·Î±×·¡¸Ó¾ß ÇÑ´Ù. µ¶ÀÚ´Â ½º½º·Î ¼÷·ÃµÈ ÇÁ·Î±×·¡¸ÓÀÌÀÚ ¼öÇÐÀÚÀÎ »õ·Î¿î À¯ÇüÀÇ µ¥ÀÌÅÍ °úÇÐÀÚ¶ó°í ¿©°Ü¾ß ÇÑ´Ù.
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
1Àå, 'R¿¡¼ÀÇ °£´ÜÇÑ º´·ÄÈ'¿¡¼´Â RÀÇ º´·ÄÈµÈ ÇÙ½É ¹öÀüÀÎ lapply()¸¦ »ç¿ëÇØ ³ëÆ®ºÏÀÇ ¸ÖƼÄÚ¾î ÇÁ·Î¼¼½Ì ´É·ÂÀ» ¾î¶»°Ô È°¿ëÇÒ ¼ö ÀÖ´ÂÁö ºü¸£°Ô ¾Ë¾Æº»´Ù. ¶ÇÇÑ ¾Æ¸¶Á¸ À¥ ¼ºñ½º¸¦ ÅëÇØ Å¬¶ó¿ìµåÀÇ ¸·´ëÇÑ ÄÄÇ»Æà ´É·Â¿¡ ´ëÇØ °£´ÜÈ÷ »ìÆ캻´Ù.
2Àå, '¸Þ½ÃÁö Àü´Þ ¼Ò°³'¿¡¼´Â °í±Þ º´·Ä ¾Ë°í¸®Áò ±¸Çö¿¡ ÇÙ½ÉÀûÀÎ ±â¼úÀÎ MPI¸¦ ´Ù·é´Ù. µÎ °¡ÁöÀÇ R MPI ÆÐÅ°ÁöÀÎ Rmpi ¹× pbdMPI¿Í ÇÔ²² ÇØ´ç Åë½Å ¼ºê½Ã½ºÅÛÀÇ OpenMPIÀ» ±¸ÇöÇÑ´Ù.
3Àå, '°í±Þ ¸Þ½ÃÁö Àü´Þ'¿¡¼´Â ±¸Ã¼ÀûÀÎ Rmpi ¿¹Á¦¸¦ °³¹ßÇÏ°í ºñÂ÷´Ü Åë½Å°ú ÇÁ·Î¼¼½º °£ ¸Þ½ÃÁö ±³È¯ÀÇ Áö¿ªÈ ÆÐÅÏÀ» ¼³¸íÇϸç MPI ÇнÀÀ» ¸¶¹«¸®ÇÑ´Ù. À̸¦ À§ÇØ °ø°£ ±×¸®µå º´·Äȸ¦ ±¸ÇöÇÑ´Ù.
4Àå, '½´ÆÛÄÄÇ»ÅÍ¿ë MPI ±â¹Ý R ÆÐÅ°Áö: SPRINT °³¹ß'¿¡¼´Â ½ÇÁ¦ ½´ÆÛÄÄÇ»ÅÍ¿¡¼ º´·Ä Äڵ带 ½ÇÇàÇÏ´Â °æÇèÀ» ¼Ò°³ÇÑ´Ù. ¶ÇÇÑ ½´ÆÛÄÄÇ»ÅÍ´Â ¹°·Ð ³ëÆ®ºÏ¿¡¼µµ ½ÇÇàÇÒ ¼ö ÀÖ´Â C·Î ÀÛ¼ºµÈ º´·Ä ÄÄÇ»Æà R ÆÐÅ°ÁöÀÎ SPRINT °³¹ß¿¡ ´ëÇØ »ó¼¼È÷ ¼³¸íÇÑ´Ù. ±×¸®°í Á÷Á¢ ÀÛ¼ºÇÑ °í¼º´ÉÀÇ º´·Ä ¾Ë°í¸®ÁòÀ¸·Î ¾î¶»°Ô ÀÌ ÆÐÅ°Áö¸¦ È®ÀåÇÒ ¼ö ÀÖ´ÂÁö, ¾î¶»°Ô À̸¦ R¿¡¼ Á¢±ÙÇÒ ¼ö ÀÖ´ÂÁö º¸¿©ÁØ´Ù.
5Àå, '³ëÆ®ºÏ ¾ÈÀÇ ½´ÆÛÄÄÇ»ÅÍ'¿¡¼´Â ¿©·¯ºÐÀÇ ³ëÆ®ºÏ¿¡ ³»ÀåµÈ ±×·¡ÇȽº ÇÁ·Î¼¼½Ì À¯´Ö(GPU, Graphics Processing Unit)ÀÇ ¾öû³ º´·Ä ¹× º¤ÅÍ ÇÁ·Î¼¼½Ì ´É·ÂÀ» R¿¡¼ ¾î¶»°Ô µå·¯³¾ ¼ö ÀÖ´ÂÁö º¸¿©ÁØ´Ù. À̸¦ À§ÇØ °ø°³ ÄÄÇ»Æà ¾ð¾î(OpenCL, Open Computing Language)ÀÇ R ·¡ÆÛ(wrapper)ÀÎ ROpenCL ÆÐÅ°Áö¸¦ »ç¿ëÇÑ´Ù.
6Àå, 'º´·Ä ÄÄÇ»ÆÃÀÇ ¿¹¼ú'¿¡¼´Â º´·Ä ÇÁ·Î±×·¡¹Ö ¹× ±× ¼º´É À̸éÀÇ ±âÃÊ °úÇаú ÀáÀçÀûÀÎ ÇÔÁ¤À» °Á¶ÇÑ´Ù. ¸ð¹ü »ç·ÊÀÇ ±â¼úÀ» Á¦°øÇÏ°í, º´·Ä ÄÄÇ»Æà ½Ã½ºÅÛÀÇ ¹Ì·¡¸¦ »ìÆ캽À¸·Î½á ³¡¸Î´Â´Ù.
¡Ú ÁöÀºÀÌÀÇ ¸» ¡Ú
¿ì¸®´Â ÇöÀç Æø¹ßÀûÀ¸·Î ±ÞÁõÇÏ°í ÀÖ´Â Á¤º¸ÀÇ ÇÑ°¡¿îµ¥ ÀÖ´Ù. ¿ì¸® »îÀÇ ¸ðµç °ÍÀº ÀÚ½ÅÀÇ »ý¸í È°µ¿¿¡¼ ¼¼°è ȯ°æ¿¡ À̸£±â±îÁö »ç¹° ÀÎÅͳÝ(IoT, Internet of Things)À» ÅëÇØ ½Ç½Ã°£À¸·Î ÃøÁ¤µÇ¸ç ¿¬°áµÅ ÀÖ´Ù. ÀϺΠÁöÇ¥¿¡ µû¸£¸é 2020³â¿¡´Â ¼¼°èÀÇ Á¤º¸·®ÀÌ ¿À´Ã³¯·ÎºÎÅÍ 10¹è Áõ°¡ÇØ ¹Ï±â ¾î·Á¿î ±Ô¸ðÀÎ 44Á¦Å¸ ¹ÙÀÌÆ®(1Á¦Å¸ ¹ÙÀÌÆ®´Â 2,500¾ï °³ DVD¿Í °°Àº ±Ô¸ð´Ù)¿¡ À̸¦ °ÍÀ¸·Î Àü¸ÁµÇ°í ÀÖ´Ù. ÀÌ·¯ÇÑ ±Ô¸ð¿Í ¼ÓµµÀÇ ºòµ¥ÀÌÅ͸¦ ó¸®Çϱâ À§ÇØ ¸·´ëÇÑ ±Ô¸ðÀÇ °è»ê·Â, ¸Þ¸ð¸®, µð½ºÅ© ÀÚ¿øÀÌ ÇÊ¿äÇϸç, À̸¦ À§Çؼ´Â º´·ÄÈ°¡ ÇÊ¿äÇÏ´Ù.
¿ÀǼҽº Åë°è ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÎ RÀº ¸¸µé¾îÁø ÇÞ¼ö¿¡µµ ºÒ±¸ÇÏ°í µ¥ÀÌÅÍ ºÐ¼®¿¡ ÁÖÃåµ¹°ú °°Àº ±â¼ú Áß Çϳª·Î Àα⸦ ¾ò°í ÀÖ´Ù. ±×¸®°í °è¼Ó È®ÀåµÇ°í ÀÖ´Â Ä¿¹Â´ÏƼÀÌ¸é¼ Àå´ãÇÏ°Ç´ë ÇöÀç Àαâ ÀÖ´Â ¸íĪÀÎ ¡®µ¥ÀÌÅÍ °úÇÐÀÚ¡¯¿¡ ÀÇÇØ ¾²ÀÌ°í ÀÖ´Ù.
¹°·Ð µ¥ÀÌÅÍ °úÇÐÀÚ°¡ ºòµ¥ÀÌÅͶó´Â ¾ß¼ö¸¦ ±æµéÀ̱â À§ÇØ µµÀÔÇÒ ¼ö ÀÖ´Â µµ±¸´Â ¿©·¯ °¡Áö°¡ ÀÖ´Ù. ¾î¼¸é ¿©·¯ºÐÀº ÆÄÀ̽ã(Python), SAS, SPSS ¾Æ´Ï¸é MATLABÀÇ °í¼öÀÏ ¼öµµ ÀÖ´Ù. ±×·¯³ª 1997³â ÀÌÈÄ·Î ±â³ª±ä ¿ÀǼҽºÀÇ À¯»ê°ú ÇÔ²²ÇÑ RÀº ±×»çÀÌ 20³â µ¿¾È °³¹ßµÅ ¿Â CRAN È£½ºÆÃÀÇ ¸Å¿ì ´Ù¾çÇÑ Ç÷¯±×ÀÎ ¶óÀ̺귯¸® ÆÐÅ°Áö¿Í ÇÔ²² ³Î¸® º¸±ÞµÇ°í ÀÖÀ¸¸ç, ÀÛÀº ¼ýÀÚ Çà·Ä¿¡¼ºÎÅÍ »ýü ºÐÀÚ DNA¿Í °°Àº ±ØÈ÷ ´ë±Ô¸ðÀÇ ±âÈ£·Î µÈ µ¥ÀÌÅͼ¿¡ À̸£±â±îÁö ´ëºÎºÐÀÇ µ¥ÀÌÅÍ ÇüŸ¦ ´Ù·ê ¼ö ÀÖ´Ù. ¹°·Ð ¿ì¸®´Â RÀÌ ¸Å¿ì ´Ù¾çÇÑ ÇüÅÂÀÇ µ¥ÀÌÅÍ¿¡ °ü·ÃµÈ »ó´çÈ÷ º¹ÀâÇÑ ºÐ¼® °úÁ¤À» Á¶À²ÇÒ ¼ö ÀÖ´Â, »ç½Ç»ó µ¥ÀÌÅÍ °úÇÐ ½ºÅ©¸³Æà ¾ð¾î·Î ÀÚ¸®¸Å±èÇÏ°í ÀÖ´Ù´Â °ÍÀ» Á¦½ÃÇϱâ À§ÇØ °¡´ÉÇÑ ÇÑ ±í°Ô µé¾î°¡°íÀÚ ÇÑ´Ù.
R ÀÚü´Â Ç×»ó ½Ì±Û ½º·¹µå(single thread)·Î ±¸ÇöµÆÀ¸¸ç, ¾ð¾î ±Ùº» ÀÚü ³»¿¡¼ º´·Äȸ¦ »ç¿ëÇÏÁö ¾Êµµ·Ï µðÀÚÀεƴÙ. ´ë½Å ƯÁ¤ °¡¼ÓÈµÈ ÇÔ¼ö¸¦ À§ÇÑ º´·ÄÈ ¼ö¸³°ú º´·Ä ó¸® ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÏ·Á°í Ưº°È÷ ±¸ÇöµÈ ¿ÜºÎ ÆÐÅ°Áö ¶óÀ̺귯¸®¿¡ ÀÇÁ¸ÇÑ´Ù. ´Ù¾çÇÑ ±â¼ú ºÐ¾ß¿¡¼ º´·Ä ¾Ë°í¸®ÁòÀ» °³¹ßÇÒ ¼ö ÀÖ°Ô ÇÏ´Â °¡Àå ÁÁÀº ´ëÇ¥Àû ±¸Çö ¹æ¹ýÀ» ¸î °¡Áö »ìÆ캻´Ù.
ÀÌ Ã¥¿¡¼´Â RÀÇ ÀÚü ¸ÖƼÄÚ¾î ´É·ÂÀ» È°¿ëÇÏ´Â parallel ÆÐÅ°Áö¿Í ¸Þ½ÃÁö Àü´Þ ÀÎÅÍÆäÀ̽º(MPI, Message Passing Interface) Ç¥ÁØÀ» »ç¿ëÇÏ´Â ¸Þ½ÃÁö Àü´Þ¹ý, OpenCLÀ» ÅëÇÑ ¹ü¿ë ¸ñÀûÀÇ GPU(GPGPU) ±â¹Ý º´·Äȸ¦ ºñ·ÔÇØ ´ÜÀÏ ÇÁ·Î±×·¥ º¹¼ö µ¥ÀÌÅÍ(SPMD, Single Program Multiple Data)¿¡¼ ´ÜÀÏ ¸í·É º¹¼ö µ¥ÀÌÅÍ(SIMD, Single Instruction Multiple Data)¿¡ À̸£±â±îÁö º´·ÄÈÀÇ ¿©·¯ ´Ù¸¥ ¸éÀ» »ìÆ캻´Ù. ¶ÇÇÑ °úÁ¦ ÆĹÖ(farming)À» ÅëÇÑ ·Îµå¹ë·±½Ì¿¡¼ ±×¸®µå¸¦ ÅëÇÑ °ø°£ 󸮿¡ À̸£±â±îÁö ÇÁ·¹ÀÓ¿öÅ© º´·ÄÈ Á¢±Ù ¹æ¹ýÀÇ Â÷ÀÌÁ¡À» »ìÆ캻´Ù. ±×¸®°í Ŭ¶ó¿ìµå¿¡¼ ÇϵÓÀ» ÅëÇÑ ÀϹÝÀûÀÎ ¸ñÀûÀÇ ¹èÄ¡ µ¥ÀÌÅÍ(batch-data) ó¸®, ±×¸®°í º¸³Ê½º·Î Ŭ·¯½ºÅÍ ÄÄÇ»Æÿ¡¼ ÃÖ±Ù Àαâ ÀÖ´Â »õ·Î¿î ±â¼úÀÌ¸é¼ ´ë±Ô¸ðÀÇ ½Ç½Ã°£ µ¥ÀÌÅÍ Ã³¸®¿¡ ´õ ÀûÇÕÇÑ ¾ÆÆÄÄ¡ ½ºÆÄÅ©¿¡ ´ëÇØ °£´ÜÈ÷ ¾ð±ÞÇÑ´Ù. °Ô´Ù°¡ ¼ö¹é¸¸ ÆÄ¿îµåÂ¥¸® ½´ÆÛÄÄÇ»ÅÍÀÇ »ç¿ë¹ýÀ» »ìÆ캻´Ù. À̸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö, ¾î´À Á¤µµÀÇ ¼º´ÉÀ» ´Þ¼ºÇÒ ¼ö ÀÖ´ÂÁö º¸µµ·Ï ÇÑ´Ù. ¿©·¯ºÐÀÌ »ç´Â Áö¿ªÀÇ ½´ÆÛÄÄÇ»ÅÍ ¼¾ÅÍ¿¡ µéÀÌ´ÚÄ£ ÈÄ, ¿©·¯ºÐÀÌ ¹ß°ßÇÑ »õ·Î¿î Áö½ÄÀ¸·Î ¾öû³ ±Ô¸ðÀÇ º´·Ä ÄÄÇ»ÆÃÀ» Çغ¼ ¼ö ÀÖ°Ô µÉÁö ´©°¡ ¾Ë°Ú´Â°¡?
ÀÌ Ã¥¿¡ ³ª¿Â ¸ðµç ÄÚµù ¿¹Á¦´Â Á÷Á¢ ÀÛ¼ºÇÑ °ÍÀ̸ç, ÀϺΠ¿¹Á¦´Â °°Àº ºÐ¾ßÀÇ ´Ù¸¥ Ã¥¿¡¼ ¸¸³¯ ¼ö ÀÖÀ» ¹ýÇÑ Á¾·ùÀÇ ¿¹Á¦¿Í °ãÄ¡Áö ¾Ê°Ô ¼±ÅÃÇß´Ù. ¿ì¸®´Â Æò¹üÇÑ °Í°ú ´Ù¼Ò ´Ù¸¥ ¹«¾ð°¡·Î µ¶ÀÚ ¿©·¯ºÐÀ» »ç·ÎÀâÀ» ¼ö ÀÖ°Ô ¿¹Á¦µéÀ» ¼±ÅÃÇß´Ù. ¿ì¸®´Â ¿©·¯ºÐÀÌ ÀÌÁ¦ ¸· ½ÃÀÛÇÏ´Â R¿¡¼ÀÇ º´·Ä ÇÁ·Î±×·¡¹Ö ¿Ï¼º °úÁ¤À» Áñ±â±â¸¦ ±â´ëÇÑ´Ù.
¡Ú ¿Å±äÀÌÀÇ ¸»¡Ú
21¼¼±â µé¾î IT¾÷°è¿¡¼ °¡Àå Àαâ Àִ ȵΠÁß Çϳª´Â ¹Ù·Î 'µ¥ÀÌÅÍ¡¯°¡ ¾Æ´Ò±î ÇÑ´Ù. ¼ÒÇÁÆ®¿þ¾î ¾øÀÌ Áö¼Ó °¡´ÉÇÑ »ê¾÷ÀÌ Àü¹«ÇÏ´Ù°í ÇÒ ¼ö ÀÖ´Â Áö±Ý ºñ´Ü IT»Ó¸¸ ¾Æ´Ï¶ó ¸ðµç ¾÷°è¿¡¼ µ¥ÀÌÅÍÀÇ Á߿伺À» ¿ÜÄ¡°í ÀÖ´Ù. Àú¼ºÀåÀ¸·Î ÀÎÇØ ¾çÀû ÆØâÀÌ ¾î·Á¿öÁö¸é¼ µ¥ÀÌÅÍ´Â ¸ðµç ºÐ¾ß¿¡¼ »ý»ê¼ºÀ» Á¶±ÝÀÌ¶óµµ Å°¿ì±â À§ÇÑ ÇÙ½ÉÀûÀÎ ¼ö´ÜÀÌ µÇ°í ÀÖ´Ù.
µ¥ÀÌÅÍ ºÐ¼®¿¡¼ ÆÄÀ̽ã(Python)ÀÌ ºñ±³Àû ÃÖ±Ù¿¡ ÁÖ¸ñÀ» ¹Þ°í ÀÖ´Ù¸é RÀº dzºÎÇÑ ¶óÀ̺귯¸® »ýÅ°踦 ±â¹ÝÀ¸·Î ÇÑ ÀüÅëÀÇ °ÀÚ¶ó ÇÒ ¼ö ÀÖ´Ù. Åë°èÇÐ, »ý¹°ÇÐ, ÀÇÇÐ, »çȸ°úÇÐ µî Æø³ÐÀº ºÐ¾ßÀÇ ¿¬±¸ÀÚ°¡ R¿¡¼ ¾µ ¼ö ÀÖ´Â ´Ù¾çÇÑ ¶óÀ̺귯¸®¸¦ °³¹ßÇسõÀº ´öºÐ¿¡ µ¥ÀÌÅÍ ºÐ¼®°¡´Â ÀÚ½ÅÀÌ Á÷Á¢ ºÐ¼® µµ±¸¸¦ °³¹ßÇÒ ÇÊ¿ä ¾øÀÌ ±âÁ¸ ¶óÀ̺귯¸®¸¦ ½±°Ô °¡Á®´Ù ¾µ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ °³¹æ¼ºÀÌ RÀ» Àαâ ÀÖ´Â µ¥ÀÌÅÍ ºÐ¼® ¾ð¾î·Î ¸¸µé¾î ÁØ °¡Àå Áß¿äÇÑ ¿øµ¿·ÂÀ̶ó ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
¸ðµç ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼ Çϵå¿þ¾î°¡ ¹ßÀüÇÏ¸é¼ CPU, GPUÀÇ ¸ÖƼÄھ Àß È°¿ëÇÒ ¼ö ÀÖ´Â ´É·ÂÀÌ ´õ¿í Áß¿äÇØÁö°í ÀÖ´Ù. Rµµ ¿¹¿Ü°¡ µÉ ¼ö´Â ¾ø´Ù. R ÀÚü´Â ½Ì±Û ½º·¹µå·Î ±¸ÇöµÅ ÀÖÀ¸¹Ç·Î º´·Ä ¿¬»êÀ» À§Çؼ´Â º°µµÀÇ ¶óÀ̺귯¸®¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ Ã¥¿¡¼ ÀÌ·¯ÇÑ ¶óÀ̺귯¸®¸¦ ÀÌÇØÇÏ°í ´Ù·ç´Â ¹æ¹ýÀ» ü°èÀûÀ¸·Î ¹è¿ï ¼ö ÀÖ´Ù.
ÀÌ Ã¥Àº R º´·Ä 󸮸¦ À§ÇÑ ÇÙ½É ÆÐÅ°ÁöÀÎ parallel¿¡¼ ½ÃÀÛÇØ Å¬¶ó¿ìµå ±â¹Ý ¶óÀ̺귯¸®, °í±Þ MPI, ±×¸®µå º´·ÄÈ, OpenCLÀ» ÀÌ¿ëÇÑ GPU ±â¹Ý º´·ÄÈ µî ±â¼úÀûÀ¸·Î ±íÀº ³»¿ë±îÁö ´Ù·é´Ù. ¶ÇÇÑ R¿¡¼ È¿À²ÀûÀÎ º´·Ä Äڵ带 ÀÛ¼ºÇÏ´Â ¹æ¹ý ¹× ÇÇÇØ¾ß ÇÒ ¹®Á¦¿¡ ´ëÇØ ÀÚ¼¼È÷ ¹è¿ï ¼ö ÀÖ´Ù. ¸¶À½ ±ÞÇϽŠºÐµéÀº 2À常 Àо ÈÄ, ±âÁ¸¿¡ °³¹ßÇسõÀº RÄڵ忡 º´·Äȸ¦ Àû¿ëÇÑ´Ù¸é ºü¸£°Ô ½ÇÇà ½Ã°£À» ´ÜÃàÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌ Ã¥ÀÌ R¿¡¼ÀÇ º´·ÄÈ¿¡ ´ëÇÑ ±âÃÊ´Â ¹°·Ð °í±Þ ±â¼úÀ» Á¢ÇÏ´Â µ¥ ÁÁÀº µðµõµ¹ÀÌ µÉ ¼ö Àֱ⸦ ±â´ëÇÑ´Ù.
¸ñÂ÷
1Àå. R¿¡¼ÀÇ °£´ÜÇÑ º´·ÄÈ
__¾Æ¸®½ºÅäÅÚ·¹½ºÀÇ ¼ýÀÚ ÆÛÁñ
____Çؼ®±â ±¸Çö
____Çؼ®±â °³¼±
______½ÇÇà ½Ã°£ ÃøÁ¤
____¹®Á¦¸¦ ¿©·¯ °úÁ¦·Î ºÐÇÒ
______lapply()·Î º¹¼öÀÇ °úÁ¦ ½ÇÇà
__R º´·Ä ÆÐÅ°Áö
____mclapply() »ç¿ë
______mclapply() ¿É¼Ç
____parLapply() »ç¿ë
____º´·Ä ·Îµå¹ë·±½Ì
__segue ÆÐÅ°Áö
____segue ¼³Ä¡
____AWS °èÁ¤ ¼³Á¤ Çϱâ
____segue ½ÇÇà
______createCluster() ¿É¼Ç
______AWS ÄÜ¼Ö È¸é
____¾Æ¸®½ºÅäÅÚ·¹½ºÀÇ ¼ýÀÚ ÆÛÁñ Ç®±â
______°á°ú ºÐ¼®
__¿ä¾à
2Àå. ¸Þ½ÃÁö Àü´Þ ¼Ò°³
__MPI¸¦ À§ÇÑ ½Ã½ºÅÛ È¯°æ ¼³Á¤
____MPI¸¦ À§ÇÑ R ÆÐÅ°Áö ¼±ÅÃ
____MPI ¼ºê½Ã½ºÅÛ ¼±ÅÃ
____OpenMPI ¼³Ä¡
__MPI Ç¥ÁØ
____MPI À¯´Ï¹ö½º
____Rmpi ¼³Ä¡
____pbdMPI ¼³Ä¡
__MPI API
____ÁöÁ¡ °£ Â÷´Ü Åë½Å
______MPI ³»ºÎÅë½Å±â
____ÁöÁ¡ °£ ºñÂ÷´Ü Åë½Å
____Áý´Ü Åë½Å
__¿ä¾à
3Àå. °í±Þ ¸Þ½ÃÁö Àü´Þ
__±×¸®µå º´·ÄÈ
____±×¸®µå Ŭ·¯½ºÅÍ ¸¸µé±â
____°æ°è µ¥ÀÌÅÍ ±³È¯
____Áß¾Ó°ª ÇÊÅÍ
____À̹ÌÁö¸¦ Á¶°¢À¸·Î ºÐ»ê
____Áß¾Ó°ª ÇÊÅÍ ±×¸®µå ÇÁ·Î±×·¥
______¼º´É
__Åë½Å °Ë»ç¿Í °ü¸®
__lapply() º¯Çü
____Rmpi¿¡¼ÀÇ parLapply()
__¿ä¾à
4Àå. ½´ÆÛÄÄÇ»ÅÍ¿ë MPI ±â¹Ý R ÆÐÅ°Áö: SPRINT °³¹ß
__ARHCER
__R¿¡¼ MPI ÄÚµå È£Ãâ
____MPI Çï·Î ¿ùµå
____R¿¡¼ C È£Ãâ
______R¿¡¼ È£Ãâ °¡´ÉÇÏ°ÔCÄÚµå ¼öÁ¤
______MPI Äڵ带 R °øÀ¯ °´Ã¼·Î ÄÄÆÄÀÏ
______R¿¡¼ MPI Hello World ¿¹Á¦ È£Ãâ
__MPI R ÆÐÅ°Áö ºôµå: SPRINT
____°£´ÜÇÑ º´·Ä R ÀÎÅÍÆäÀ̽º(SPRINT) ÆÐÅ°Áö
______R½ºÅ©¸³Æ®¿¡¼ »çÀü ±¸ÃàµÈSPRINT ·çƾ »ç¿ë
____SPRINT ÆÐÅ°ÁöÀÇ ¾ÆÅ°ÅØó
__SPRINT ÆÐÅ°Áö¿¡ »õ·Î¿î ÇÔ¼ö Ãß°¡
____SPRINT ¼Ò½ºÄÚµå ´Ù¿î·Îµå
____R¿¡¼ ½ºÅÓ ¸¸µé±â: phello.R
____ÀÎÅÍÆäÀ̽º ÇÔ¼ö Ãß°¡: phello.c
____±¸Çö ÇÔ¼ö Ãß°¡: hello.c
____½ºÅÓ, ÀÎÅÍÆäÀ̽º, ±¸Çö ¿¬°á
______functions.h
______functions.c
______³×ÀÓ½ºÆäÀ̽º
______Makefile
____SPRINT ÄÚµå ÄÄÆÄÀÏ°ú ½ÇÇà
__À¯ÀüüÇÐ ºÐ¼® »ç·Ê ¿¬±¸
____À¯ÀüüÇÐ
____À¯ÀüüÀû µ¥ÀÌÅÍ
__½´ÆÛÄÄÇ»ÅÍ¿Í ÇÔ²²ÇÏ´Â À¯ÀüüÇÐ
____¸ñÇ¥
____ARCHER ½´ÆÛÄÄÇ»ÅÍ
____·£´ý Æ÷·¹½ºÆ®
____À¯ÀüüÇÐ ºÐ¼® »ç·Ê ¿¬±¸¸¦ À§ÇÑ µ¥ÀÌÅÍ
____ARCHER¿¡¼ÀÇ ·£´ý Æ÷·¹½ºÆ® ¼º´É
____·©Å© ÇÁ·Î´öÆ®
____ARCHER¿¡¼ÀÇ ·©Å© ÇÁ·Î´öÆ® ¼º´É
____°á·Ð
__¿ä¾à
5Àå. ³ëÆ®ºÏ ¾ÈÀÇ ½´ÆÛÄÄÇ»ÅÍ
__OpenCL
____½Ã½ºÅÛ¿¡¼ OpenCL ´É·Â Äõ¸®
__ROpenCL ÆÐÅ°Áö
____ROpenCL ÇÁ·Î±×·¡¹Ö ¸ðµ¨
______°£´ÜÇÑ º¤ÅÍ µ¡¼À ¿¹Á¦
______Ä¿³Î ÇÔ¼ö
____°Å¸® Çà·Ä ¿¹Á¦
______´ÙÁß ºó°ï Áö¼ö
______GPU ÄÚ¾î ¿ÜºÎ ¸Þ¸ð¸® ó¸®
__¿ä¾à
6Àå. º´·Ä ÇÁ·Î±×·¡¹ÖÀÇ ¿¹¼ú
__º´·Ä È¿À²¼º ÀÌÇØ
____°¡¼Ó°è¼ö
____¾Ï´ÞÀÇ ¹ýÄ¢
____º´·ÄÈÇÒ °ÍÀΰ¡ ÇÏÁö ¾ÊÀ» °ÍÀΰ¡
______äÇÃÀÇ ¹ýÄ¢
__¼öÄ¡Àû ±Ù»ç
__³¼ö
__µ¥µå¶ô
µ¥µå¶ô ÇÇÇϱâ
__º´·Ä ¿À¹öÇìµå ÁÙÀ̱â
__ÀûÀÀÀûÀÎ ·Îµå¹ë·±½Ì
____°úÁ¦ ³óÀå
____È¿À²ÀûÀÎ ±×¸®µå ó¸®
____¼º°øÀûÀÎ º´·Äȸ¦ À§ÇÑ ¼¼ °¡Áö ´Ü°è
____¹«¾ùÀÌ ¹Ì·¡¸¦ Ç°°í Àִ°¡
____ÇÏÀ̺긮µå º´·ÄÈ
__¿ä¾à
ÀúÀÚ¼Ò°³
»ý³â¿ùÀÏ | - |
---|
ÇØ´çÀÛ°¡¿¡ ´ëÇÑ ¼Ò°³°¡ ¾ø½À´Ï´Ù.
»ý³â¿ùÀÏ | - |
---|
ÇØ´çÀÛ°¡¿¡ ´ëÇÑ ¼Ò°³°¡ ¾ø½À´Ï´Ù.
ÁÖ°£·©Å·
´õº¸±â»óÇ°Á¤º¸Á¦°ø°í½Ã
À̺¥Æ® ±âȹÀü
ÀÌ »óÇ°ÀÇ ½Ã¸®Áî
(ÃÑ 208±Ç / ÇöÀ籸¸Å °¡´Éµµ¼ 208±Ç)
Àü°øµµ¼/´ëÇб³Àç ºÐ¾ß¿¡¼ ¸¹Àº ȸ¿øÀÌ ±¸¸ÅÇÑ Ã¥
ÆǸÅÀÚÁ¤º¸
»óÈ£ |
(ÁÖ)±³º¸¹®°í |
---|---|
´ëÇ¥ÀÚ¸í |
¾Èº´Çö |
»ç¾÷ÀÚµî·Ï¹øÈ£ |
102-81-11670 |
¿¬¶ôó |
1544-1900 |
ÀüÀÚ¿ìÆíÁÖ¼Ò |
callcenter@kyobobook.co.kr |
Åë½ÅÆǸž÷½Å°í¹øÈ£ |
01-0653 |
¿µ¾÷¼ÒÀçÁö |
¼¿ïƯº°½Ã Á¾·Î±¸ Á¾·Î 1(Á¾·Î1°¡,±³º¸ºôµù) |
±³È¯/ȯºÒ
¹ÝÇ°/±³È¯ ¹æ¹ý |
¡®¸¶ÀÌÆäÀÌÁö > Ãë¼Ò/¹ÝÇ°/±³È¯/ȯºÒ¡¯ ¿¡¼ ½Åû ¶Ç´Â 1:1 ¹®ÀÇ °Ô½ÃÆÇ ¹× °í°´¼¾ÅÍ(1577-2555)¿¡¼ ½Åû °¡´É |
---|---|
¹ÝÇ°/±³È¯°¡´É ±â°£ |
º¯½É ¹ÝÇ°ÀÇ °æ¿ì Ãâ°í¿Ï·á ÈÄ 6ÀÏ(¿µ¾÷ÀÏ ±âÁØ) À̳»±îÁö¸¸ °¡´É |
¹ÝÇ°/±³È¯ ºñ¿ë |
º¯½É ȤÀº ±¸¸ÅÂø¿À·Î ÀÎÇÑ ¹ÝÇ°/±³È¯Àº ¹Ý¼Û·á °í°´ ºÎ´ã |
¹ÝÇ°/±³È¯ ºÒ°¡ »çÀ¯ |
·¼ÒºñÀÚÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óÇ° µîÀÌ ¼Õ½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì ·¼ÒºñÀÚÀÇ »ç¿ë, Æ÷Àå °³ºÀ¿¡ ÀÇÇØ »óÇ° µîÀÇ °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì ·º¹Á¦°¡ °¡´ÉÇÑ »óÇ° µîÀÇ Æ÷ÀåÀ» ÈѼÕÇÑ °æ¿ì ·½Ã°£ÀÇ °æ°ú¿¡ ÀÇÇØ ÀçÆǸŰ¡ °ï¶õÇÑ Á¤µµ·Î °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì ·ÀüÀÚ»ó°Å·¡ µî¿¡¼ÀÇ ¼ÒºñÀÚº¸È£¿¡ °üÇÑ ¹ý·üÀÌ Á¤ÇÏ´Â ¼ÒºñÀÚ Ã»¾àöȸ Á¦ÇÑ ³»¿ë¿¡ ÇØ´çµÇ´Â °æ¿ì |
»óÇ° Ç°Àý |
°ø±Þ»ç(ÃâÆÇ»ç) Àç°í »çÁ¤¿¡ ÀÇÇØ Ç°Àý/Áö¿¬µÉ ¼ö ÀÖÀ½ |
¼ÒºñÀÚ ÇÇÇغ¸»ó |
·»óÇ°ÀÇ ºÒ·®¿¡ ÀÇÇÑ ±³È¯, A/S, ȯºÒ, Ç°Áúº¸Áõ ¹× ÇÇÇغ¸»ó µî¿¡ °üÇÑ »çÇ×Àº¼ÒºñÀÚºÐÀïÇØ°á ±âÁØ (°øÁ¤°Å·¡À§¿øȸ °í½Ã)¿¡ ÁØÇÏ¿© ó¸®µÊ ·´ë±Ý ȯºÒ ¹× ȯºÒÁö¿¬¿¡ µû¸¥ ¹è»ó±Ý Áö±Þ Á¶°Ç, ÀýÂ÷ µîÀº ÀüÀÚ»ó°Å·¡ µî¿¡¼ÀǼҺñÀÚ º¸È£¿¡ °üÇÑ ¹ý·ü¿¡ µû¶ó ó¸®ÇÔ |
(ÁÖ)ÀÎÅÍÆÄÅ©Ä¿¸Ó½º´Â ȸ¿ø´ÔµéÀÇ ¾ÈÀü°Å·¡¸¦ À§ÇØ ±¸¸Å±Ý¾×, °áÁ¦¼ö´Ü¿¡ »ó°ü¾øÀÌ (ÁÖ)ÀÎÅÍÆÄÅ©Ä¿¸Ó½º¸¦ ÅëÇÑ ¸ðµç °Å·¡¿¡ ´ëÇÏ¿©
(ÁÖ)KGÀ̴Ͻýº°¡ Á¦°øÇÏ´Â ±¸¸Å¾ÈÀü¼ºñ½º¸¦ Àû¿ëÇÏ°í ÀÖ½À´Ï´Ù.
¹è¼Û¾È³»
±³º¸¹®°í »óÇ°Àº Åùè·Î ¹è¼ÛµÇ¸ç, Ãâ°í¿Ï·á 1~2Àϳ» »óÇ°À» ¹Þ¾Æ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.
Ãâ°í°¡´É ½Ã°£ÀÌ ¼·Î ´Ù¸¥ »óÇ°À» ÇÔ²² ÁÖ¹®ÇÒ °æ¿ì Ãâ°í°¡´É ½Ã°£ÀÌ °¡Àå ±ä »óÇ°À» ±âÁØÀ¸·Î ¹è¼ÛµË´Ï´Ù.
±ººÎ´ë, ±³µµ¼Ò µî ƯÁ¤±â°üÀº ¿ìü±¹ Åù踸 ¹è¼Û°¡´ÉÇÕ´Ï´Ù.
¹è¼Ûºñ´Â ¾÷ü ¹è¼Ûºñ Á¤Ã¥¿¡ µû¸¨´Ï´Ù.