|
|
|
|
|
|
|
Ã¥³»¿ë |
|
¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á ´Ù¾çÇÑ ¿î¿µÃ¼Á¦°¡ ÇöÀç ¸ÖƼ½º·¹µùÀ» ±¸ÇöÇÏ´Â ¹æ½Ä
¡á »õ·Î¿î ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼³°è ½Ã ÃÖÀûÀÇ ¸ÖƼ½º·¹µù API ¼±ÅÃ
¡á ¹ÂÅؽº¿Í ½ºÇɶôÀÇ »ç¿ë, ±× ¿ÜÀÇ µ¿±âÈ °³³ä ÆľÇ
¡á ½º·¹µå °£ÀÇ ¾ÈÀüÇÑ µ¥ÀÌÅÍ Àü´Þ ¹æ¹ý
¡á ´Ù¾çÇÑ C++ ÅøüÀÎÀÌ Á¦°øÇÏ´Â API Áö¿ø ¼öÁØ
¡á ¸ÖƼ½º·¹µå ÄÚµåÀÇ ÀϹÝÀûÀÎ ¹®Á¦ ÇØ°á ¹× ºüÁö±â ½¬¿î ÇÔÁ¤ ÆľÇ
¡á ¿øÀÚÀû µ¿ÀÛÀÇ º»ÁúÀ» ÀÌÇØÇÏ°í À̵éÀ» ÄÚµå ÃÖÀûÈ¿¡ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ý
¡á ºÐ»ê ÄÄÇ»Æà ȯ°æ¿¡¼ÀÇ ¸ÖƼ½º·¹µå ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Çö
¡á ¸ÖƼ½º·¹µùÀ» äÅÃÇÑ C++ ±â¹ÝÀÇ GPGPU ¾ÖÇø®ÄÉÀÌ¼Ç ¼³°è
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
¸ÖƼ½º·¹µù°ú º´ÇàÀû 󸮿¡ ´ëÇÑ Áö½ÄÀ» ³ÐÈ÷°íÀÚ ÇÏ´Â C++ Áß±Þ °³¹ßÀÚ¸¦ ´ë»óÀ¸·Î ÇÑ´Ù. ÀÌ Ã¥À» º¸·Á¸é ¸ÖƼ½º·¹µù¿¡ ´ëÇÑ ±âº»Àû °æÇèÀÌ ÀÖ¾î¾ß ÇÏ°í ¸í·ÉÇà¿¡¼ C++ °³¹ß ÅøüÀÎÀ» ´Ù·ç´Â µ¥ Àͼ÷ÇØ¾ß ÇÑ´Ù.
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
1Àå, ¡®¸ÖƼ½º·¹µù °ËÅ䡯¿¡¼´Â C++¿¡¼ÀÇ ¸ÖƼ½º·¹µùÀ» ¿ä¾àÇÏ°í ¼÷ÁöÇÏ°í ÀÖ¾î¾ß ÇÒ °³³äÀ» »ìÆ캻´Ù. C++ÀÇ 2011³â °³Á¤¾È¿¡ Ãß°¡µÈ ³×ÀÌƼºê ½º·¹µù Áö¿øÀ» »ç¿ëÇÏ´Â ±âº» ¸ÖƼ½º·¹µù ¿¹Á¦¸¦ »ìÆ캻´Ù.
2Àå, ¡®ÇÁ·Î¼¼¼¿Í OS¿¡¼ÀÇ ¸ÖƼ½º·¹µù ±¸Çö¡¯¿¡¼´Â 1Àå¿¡¼ ³íÀÇÇÑ Çϵå¿þ¾î ±¸Çö¿¡¼ Á¦°øµÇ´Â ±âº» ±â´ÉÀ» ¹ÙÅÁÀ¸·Î, OS°¡ ¾î¶»°Ô ÀÌµé ±â´ÉÀ» »ç¿ëÇØ ¾ÖÇø®ÄÉÀ̼ǿ¡¼ À̵éÀ» ÀÌ¿ëÇÏ´ÂÁö ¾Ë¾Æº»´Ù. ¾ÖÇø®ÄÉÀ̼ǰú ½º·¹µå°¡ ¼·Î °£¼·ÇÏÁö ¾Êµµ·Ï ÇÁ·Î¼¼½º¿Í ½º·¹µå°¡ ¸Þ¸ð¸®¿Í ÇÁ·Î¼¼¼¸¦ »ç¿ëÇÏ´Â ¹æ¹ýµµ ³íÀÇÇÑ´Ù.
3Àå, ¡®C++ ¸ÖƼ½º·¹µù API¡¯¿¡¼´Â OS ¼öÁØÀÇ API(Win32¿Í POSIX µî)¿Í ÇÁ·¹ÀÓ¿öÅ©(Boost¿Í Qt, POCO µî)¿¡¼ Á¦°øµÇ´Â ´Ù¾çÇÑ ¸ÖƼ½º·¹µù API¸¦ ¾Ë¾Æº»´Ù. ÀÌµé °¢ API¸¦ ½ÇÇà, ´Ù¸¥ API¿Í ºñ±³ÇØ ±× Â÷ÀÌÁ¡À» ¾Ë¾Æº¸°í µ¶ÀÚÀÇ ¾ÖÇø®ÄÉÀ̼ǿ¡¼ °¡Áú ¼ö ÀÖ´Â Àå´ÜÁ¡À» »ìÆ캻´Ù.
4Àå, ¡®½º·¹µå µ¿±âÈ¿Í Åë½Å¡¯¿¡¼´Â ¾Õ¼ ¹è¿î ÁÖÁ¦¿¡ ´ëÇØ C++ 14 ¹öÀüÀÇ ³×ÀÌƼºê ½º·¹µù API¸¦ »ç¿ëÇØ ±¸ÇöµÈ °í±Þ ¸ÖƼ½º·¹µù ±¸ÇöÀ» ¾Ë¾Æº»´Ù. À̸¦ ÅëÇØ ¿©·¯ ½º·¹µå°¡ ½º·¹µå ¾ÈÀü¼º ¹®Á¦¾øÀÌ Åë½ÅÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ÀÌÇØÇÑ´Ù. ¹ÂÅؽº¿Í ¶ô, Á¶°Ç º¯¼ö¸¦ Æ÷ÇÔÇÑ ¿©·¯ À¯ÇüÀÇ µ¿±âÈ ¸ÞÄ¿´ÏÁò °£ÀÇ Â÷ÀÌÁ¡µµ ´Ù·é´Ù.
5Àå, ¡®³×ÀÌƼºê C++ ½º·¹µå¿Í ±âº» ¿ä¼Ò¡¯¿¡¼´Â ½º·¹µå¿Í º´Ç༺, ·ÎÄà ½ºÅ丮Áö¸¦ ºñ·ÔÇØ ÀÌ API¿¡¼ Áö¿øµÇ´Â ½º·¹µå ¾ÈÀü¼ºÀ» ´Ù·é´Ù. 4ÀåÀÇ ¿¹Á¦¿¡ ¹ÙÅÁÀ» µÎ°í C++ 11°ú C++ 14 ¹öÀüÀÇ ¿ÏÀüÇÑ ±â´É ¼¼Æ®¿¡ ÀÇÇØ Á¦°øµÇ´Â ±â´ÉÀ» »ç¿ëÇØ ½º·¹µå ¾ÈÀü¼ºÀ» È®ÀåÇÏ°í ÃÖÀûÈÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.
6Àå, ¡®¸ÖƼ½º·¹µå ÄÚµåÀÇ µð¹ö±ë¡¯¿¡¼´Â ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¸ÖƼ½º·¹µå ¼º´ÉÀ» ºÐ¼®ÇÏ°í ÇÖ½ºÆÌÀ» ŽÁöÇϸç, º´ÇàÀû Á¢±ÙÀ¸·Î ¹ßÇàÇÏ´Â ¹®Á¦¸¦ ÇØ°áÇÏ°í ¹æÁöÇϱâ À§ÇØ Valgrind(Memcheck¿Í DRD, Helgrind µî) °°Àº ÅøÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀ» ½ÀµæÇÑ´Ù.
7Àå, ¡®¸ð¹ü ½ÇÀü »ç·Ê¡¯¿¡¼´Â ÈçÈ÷ °Þ´Â ÇÔÁ¤°ú ³Á¦¸¦ ´Ù·é´Ù. ¹®Á¦¸¦ À¯¹ßÇϱâ Àü¿¡ »çÀü¿¡ ÆľÇÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù. ¶ÇÇÑ ¿¹Á¦¸¦ ÀÌ¿ëÇØ ¸î °¡Áö ÀϹÝÀûÀÎ »óȲ°ú ¿¹¿ÜÀûÀÎ »óȲÀ» »ìÆ캻´Ù.
8Àå, ¡®¿øÀÚÀû µ¿ÀÛ - Çϵå¿þ¾î¿Í ÀÛ¾÷Çϱ⡯¿¡¼´Â ¿øÀÚÀû µ¿ÀÛ¿¡ ´ëÇØ ¼¼ºÎÀûÀ¸·Î ´Ù·é´Ù. ¿øÀÚÀû µ¿ÀÛÀÌ ¹«¾ùÀ̸ç ÃÖÀûÀ¸·Î »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù. ¿©·¯ CPU ¾ÆÅ°ÅØó¿¡¼ ¾î¶² ÄÄÆÄÀÏ·¯ Áö¿øÀÌ ÀÌ·ïÁö´ÂÁö »ìÆ캸°í Äڵ忡 ¿øÀÚÀû µ¿ÀÛÀ» ±¸ÇöÇÒ ¶§ ½Ã°£À» ÅõÀÚÇÒ °¡Ä¡°¡ ÀÖ´ÂÁö Æò°¡Çغ»´Ù. ¶ÇÇÑ ÀÌ·± ÃÖÀûÈ·Î ÀÎÇØ ÄÚµåÀÇ À̽ļºÀÌ ¾î¶»°Ô Á¦ÇѵǴÂÁö ¾Ë¾Æº»´Ù.
9Àå, ¡®ºÐ»ê ÄÄÇ»Æÿ¡¼ÀÇ ¸ÖƼ½º·¹µù¡¯¿¡¼´Â ÀÌÀü Àåµé¿¡¼ ¹è¿î ¿©·¯ ³»¿ëÀ» ¸ÖƼ½Ã½ºÅÛ°ú Ŭ·¯½ºÅÍ ¼öÁØÀÇ ½Ã½ºÅÛ¿¡ Àû¿ëÇغ»´Ù. OpenMPI ±â¹ÝÀÇ ¿¹Á¦¸¦ ÀÌ¿ëÇØ ÄÄÇ»ÅÍ Å¬·¯½ºÅÍ ³»ÀÇ ³ëµå°°ÀÌ ¿©·¯ ½Ã½ºÅÛ¿¡¼ ¸ÖƼ½º·¹µùÀ» ¼öÇàÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.
10Àå, ¡®GPGPU¿¡¼ÀÇ ¸ÖƼ½º·¹µù¡¯¿¡¼´Â GPGPU ¾ÖÇø®ÄÉÀ̼Ç(CUDA¿Í OpenCL µî)¿¡¼ ¸ÖƼ½º·¹µù »ç¿ë¹ýÀ» »ìÆ캻´Ù. OpenCL ±â¹ÝÀÇ ¿¹Á¦¸¦ »ç¿ëÇØ º´·Ä·Î ÀÛ¾÷À» ½ÇÇàÇÏ´Â ±âº»ÀûÀÎ ¸ÖƼ½º·¹µå ¾ÖÇø®ÄÉÀ̼ÇÀ» ¾Ë¾Æº»´Ù. ÀÌÀü Àåµé¿¡¼ ¹è¿î ³»¿ëÀ» ºñµð¿À Ä«µå¿Í ±× ÆÄ»ý Çϵå¿þ¾î(¿¹¸¦ µé¾î ·¢-¸¶¿îÆ®(rack-mounted) º¤ÅÍ ÇÁ·Î¼¼¼ Çϵå¿þ¾î)¿¡¼ ó¸®ÇÒ ¼ö ÀÖµµ·Ï À̸¦ Àû¿ëÇÑ´Ù.
¡Ú ¿Å±äÀÌÀÇ ¸» ¡Ú
¾ðÁ¨°¡ºÎÅÍ ¸ÖƼ½º·¹µå°¡ ¾ø´Â ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀ» »ó»óÇϱâ Èûµé¾îÁ³´Ù. Á¦ÇÑµÈ ÄÄÇ»Æà ȯ°æ¿¡¼ ÁÖ¾îÁø ƯÁ¤ ÀÛ¾÷À» °¡Àå È¿À²ÀûÀ¸·Î ¼öÇàÇÏ´Â ¿©·¯ ¹æ½Ä °¡¿îµ¥, ¸ÖƼ½º·¹µå´Â º´Ç༺°ú º´·Ä¼º Ãø¸é¿¡¼ °¡Àå ¶Ù¾î³ ÇÁ·Î±×·¥ ±â¹ý Áß ÇϳªÀÏ °ÍÀÌ´Ù. ÀÌ Ã¥Àº ¸ÖƼ½º·¹µù°ú º´Ç༺ÀÇ ±âº» °³³äÀ» ÆľÇÇÏ°í À̸¦ C++¿¡ È¿À²ÀûÀ¸·Î Àû¿ëÇÏ´Â ¹æ¹ýÀ» ¾Ë·ÁÁØ´Ù.
¶ÇÇÑ ¸ÖƼ½º·¹µùÀÇ ¾ÈÀüÇÏ°íµµ È¿À²ÀûÀÎ ±¸ÇöÀ» À§ÇØ ÇʼöÀûÀÎ ³»¿ëÀ» ´Ù·é´Ù. Áï, ¿î¿µÃ¼Á¦¿Í ÇÁ·¹ÀÓ¿öÅ©°¡ À̵鿡 ´ëÇÑ Àú¼öÁØ ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ý°ú ÇÔ²² ÀÌµé °³³äÀÌ Çϵå¿þ¾î ¼öÁØ¿¡¼ µ¿ÀÛÇÏ´Â ¹æ¹ýÀ» ½Éµµ ÀÖ°Ô ´Ù·ç¸ç, ½º·¹µå °£ µ¿±âÈ¿Í Åë½Å, º´Ç༺ C++ ¾ÖÇø®ÄÉÀ̼ÇÀÇ µð¹ö±ë, C++¿¡¼ °¡Àå ¸ð¹üÀûÀÎ ÇÁ·Î±×·¡¹Ö »ç·Ê µîÀ» ´Ù·é´Ù.
¸¶Áö¸·À¸·Î ¿øÀÚÀû µ¿ÀÛÀÇ º»ÁúÀ» ÀÌÇØÇÏ°í À̵éÀ» ÄÚµå ÃÖÀûÈ¿¡ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ½ÀµæÇϸç, ºÐ»ê ÄÄÇ»Æà ȯ°æ¿¡¼ ¸ÖƼ½º·¹µå ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÇöÇÏ°í ¸ÖƼ½º·¹µùÀ» äÅÃÇÑ C++ ±â¹ÝÀÇ GPGPU ¾ÖÇø®ÄÉÀÌ¼Ç ¼³°è ¹æ¹ýÀ» ÀÍÈù´Ù. ƯÈ÷, 10Àå¿¡¼ ´Ù·ç´Â GPGPU ¾ÖÇø®ÄÉÀÌ¼Ç ¼³°è ¹æ¹ýÀº ÃÖ±Ù ºñÆ®ÄÚÀΠä±¼°ú °ü·ÃÇØ ±×·¡ÇÈ Ä«µåÀÇ Ç°±Í Çö»ó°úµµ ±× ±Ë¸¦ °°ÀÌÇÑ´Ù´Â Á¡¿¡¼ ÁÖ¸ñÇÒ ¸¸ÇÏ´Ù.
ÀÌ Ã¥Àº ±× ºÐ·®¿¡ ºñÇØ ´Ù·ç´Â ³»¿ëÀÇ ½Éµµ¿Í ÁÖÁ¦°¡ »ó´çÈ÷ ±¤¹üÀ§ÇÏ¸ç ¶§·Ð Æ÷°ýÀûÀÌ°íµµ ¶§·Ð ¸Å¿ì Á¤±³ÇÏ´Ù. °³¹ßÀÚ ¿©·¯ºÐ, ÀÌÁ¦ Áغñ°¡ µÇ¾ú´Ù¸é ¾ÈÀü¶ì¸¦ ´Ü´ÜÈ÷ Á¶ÀÌ°í ¸ÚÁø ÁúÁÖ¸¦ ½ÃÀÛÇغ¸ÀÚ! |
|
¸ñÂ÷ |
|
1Àå. ¸ÖƼ½º·¹µù °ËÅä
__½ÃÀÛÇϱâ
__¸ÖƼ½º·¹µå ¾ÖÇø®ÄÉÀ̼Ç
____¸ÞÀÌÅ©ÆÄÀÏ
__±× ¹ÛÀÇ ¾ÖÇø®ÄÉÀ̼Ç
__¿ä¾à
2Àå. ÇÁ·Î¼¼¼¿Í OS¿¡¼ÀÇ ¸ÖƼ½º·¹µù ±¸Çö
__ÇÁ·Î¼¼½º¿Í ½º·¹µåÀÇ Á¤ÀÇ
____x86¿¡¼ÀÇ Å½ºÅ©(32-ºñÆ®¿Í 64-ºñÆ®)
____ARM¿¡¼ÀÇ ÇÁ·Î¼¼½º »óÅÂ
__½ºÅÃ
__¸ÖƼ½º·¹µùÀÇ Á¤ÀÇ
____Çø°ÀÇ ºÐ·ù
____´ëĪ ´ë ºñ´ëĪ ¸ÖƼÇÁ·Î¼¼½Ì
____´À½¼Çϰųª ´Ü´ÜÇÏ°Ô °áÇÕµÈ ¸ÖƼÇÁ·Î¼¼½Ì
____¸ÖƼÇÁ·Î¼¼½Ì°ú ¸ÖƼ½º·¹µùÀÇ °áÇÕ
____¸ÖƼ½º·¹µù À¯Çü
__½ºÄÉÁÙ·¯
__¿¹Á¦ ¾ÖÇø®ÄÉÀÌ¼Ç ÃßÀû
__»óÈ£ ¹èÁ¦ ±¸Çö
____Çϵå¿þ¾î
____¼ÒÇÁÆ®¿þ¾î
__¿ä¾à
3Àå. C++ ¸ÖƼ½º·¹µù API
__API °³¿ä
__POSIX ½º·¹µå
____À©µµ¿ì Áö¿ø
____Pthreads ½º·¹µå °ü¸®
____¹ÂÅؽº
____Á¶°Ç º¯¼ö
____µ¿±âÈ
____¼¼¸¶Æ÷¾î
____½º·¹µå ·ÎÄà ½ºÅ丮Áö
__À©µµ¿ì ½º·¹µå
____½º·¹µå °ü¸®
____°í±Þ °ü¸®
____µ¿±âÈ
____Á¶°Ç º¯¼ö
____½º·¹µå ·ÎÄà ½ºÅ丮Áö
__»ó½Â
__Qt
____QThread
____½º·¹µå Ç®
____µ¿±âÈ
____QtConcurrent
____½º·¹µå ·ÎÄà ½ºÅ丮Áö
__POCO
____Thread Ŭ·¡½º
____½º·¹µå Ç®
____½º·¹µå ·ÎÄà ½ºÅ丮Áö
____µ¿±âÈ
__C++ ½º·¹µå
__¸ðµÎ ÇÕÄ¡¸é
__¿ä¾à
4Àå. ½º·¹µå µ¿±âÈ¿Í Åë½Å
__¾ÈÀü Á¦ÀÏ
__½ºÄÉÁÙ·¯
____°í¼öÁØ °üÁ¡
____±¸Çö
____¿äû Ŭ·¡½º
____Worker Ŭ·¡½º
__µð½ºÆÐó
____¸ÞÀÌÅ©ÆÄÀÏ
____Ãâ·Â °á°ú
__°øÀ¯ µ¥ÀÌÅÍ
____Àбâ-¾²±â ¶ôÀÇ »ç¿ë
____°øÀ¯ Æ÷ÀÎÅÍÀÇ »ç¿ë
__¿ä¾à
5Àå. ³×ÀÌƼºê C++ ½º·¹µå¿Í ±âº» ¿ä¼Ò
__STL ½º·¹µù API
____Boost.Thread API
__2011 Ç¥ÁØ
__C++14
__C++17
__STL ±¸¼º
__½º·¹µå Ŭ·¡½º
____±âº» »ç¿ë
____ÀÎÀÚ Àü´Þ
____¹Ýȯ °ª
____·¹µå À̵¿Çϱâ
____½º·¹µå ID
____½½¸³
____¾çº¸(Yield)
____ºÐ¸®(Detach)
____½º¿Ò(Swap)
__¹ÂÅؽº
____±âº» »ç¿ë
____ŸÀÓµå ¹ÂÅؽº
____¶ô °¡µå
____°íÀ¯ ¶ô
____¹üÀ§ ¶ô
____Àç±Í ¹ÂÅؽº
____Àç±Í ŸÀÓµå ¹ÂÅؽº
__°øÀ¯ ¹ÂÅؽº
____°øÀ¯ ŸÀÓµå ¹ÂÅؽº
__Á¶°Ç º¯¼ö
____Condition_variable_any
____½º·¹µå Á¾·á ½ÃÁ¡¿¡ ¸ðµÎ¿¡°Ô ÅëÁöÇϱâ
__ǻó
____ÇÁ¶ó¹Ì½º
____Packaged_task
____Async
__¿øÀÚÀû ¿ä¼Ò
__¿ä¾à
6Àå. ¸ÖƼ½º·¹µå ÄÚµåÀÇ µð¹ö±ë
__¾ðÁ¦ µð¹ö±ëÀ» ½ÃÀÛÇØ¾ß Çϳª
__´Ü¼øÇÑ µð¹ö°Å
____GDB
____¸ÖƼ½º·¹µå ÄÚµåÀÇ µð¹ö±ë
____ºê·¹ÀÌÅ©Æ÷ÀÎÆ®
____¹é Æ®·¹À̽º
__µ¿Àû ºÐ¼® Åø
____Á¦¾à
____´ë¾È
____Memcheck
____Helgrind
____pthreads APIÀÇ ¿À»ç¿ë
____¶ô ¼ø¼ ¹®Á¦
____µ¥ÀÌÅÍ °æÀï
____DRD
____±âº» »ç¿ë
____±â´É
____C++11 ½º·¹µå Áö¿ø
__¿ä¾à
7Àå. ¸ð¹ü ½ÇÀü »ç·Ê
__¿Ã¹Ù¸¥ ¸ÖƼ½º·¹µù
__À߸øµÈ ±â´ë-µ¥µå¶ô
__ºÎÁÖÀÇ-µ¥ÀÌÅÍ °æÀï
__¸¸´ÉÀÌ ¾Æ´Ñ ¹ÂÅؽº
__ÈǸ¢ÇÑ ¹ÂÅؽºÀÎ ¶ô
__½º·¹µå ´ë ǻó
__ÃʱâÈÀÇ Á¤Àû ¼ø¼
__¿ä¾à
8Àå. ¿øÀÚÀû µ¿ÀÛ - Çϵå¿þ¾î¿Í ÀÛ¾÷Çϱâ
__¿øÀÚÀû µ¿ÀÛ
____ºñÁÖ¾ó C++
__GCC
__¸Þ¸ð¸® ¼ø¼
____±âŸ ÄÄÆÄÀÏ·¯
____C++11 ¿øÀÚÀû ¿ä¼Ò
____¿¹Á¦
____ºñŬ·¡½º ÇÔ¼ö
____¿¹Á¦
____¿øÀÚÀû Ç÷¡±×
____¸Þ¸ð¸® ¼ø¼
__¿ä¾à
9Àå. ºÐ»ê ÄÄÇ»Æÿ¡¼ÀÇ ¸ÖƼ½º·¹µù
__ºÐ»ê ÄÄÇ»ÆÃÀ̶õ
____MPI
____MPI ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÄÄÆÄÀÏ
____Ŭ·¯½ºÅÍ Çϵå¿þ¾î
__Open MPI ¼³Ä¡Çϱâ
____¸®´ª½º¿Í BSD
____À©µµ¿ì
__³ëµå °£ÀÇ ÀÛ¾÷ ºÐ»ê
____MPI ³ëµå ¼³Á¤Çϱâ
____MPI È£½ºÆ® ÆÄÀÏ »ý¼ºÇϱâ
____ÀÛ¾÷ ½ÇÇàÇϱâ
____Ŭ·¯½ºÅÍ ½ºÄÉÁÙ·¯ »ç¿ëÇϱâ
__MPI Åë½Å
____MPI µ¥ÀÌÅÍ À¯Çü
____±âº» Åë½Å
____°í±Þ Åë½Å
____ºê·Îµåij½ºÆÃ
____ºÐ»ê°ú ¼öÁý
__MPI ´ë ½º·¹µå
__ÀáÀçÀû ¹®Á¦
__¿ä¾à
10Àå. GPGPU¿¡¼ÀÇ ¸ÖƼ½º·¹µù
__GPGPU ó¸® ¸ðµ¨
____±¸Çö
____OpenCL
____ÀϹÝÀûÀÎ OpenCL ¾ÖÇø®ÄÉÀ̼Ç
____OpenCL ¹öÀü
__°³¹ß ȯ°æ ¼³Á¤
____¸®´ª½º
____À©µµ¿ì
____OS X/MacOS
__±âº» OpenCL ¾ÖÇø®ÄÉÀ̼Ç
__GPU ¸Þ¸ð¸® °ü¸®
__GPGPU¿Í ¸ÖƼ½º·¹µù
____Áö¿¬ ½Ã°£
__ÀáÀçÀû ¹®Á¦
__GPGPU ¾ÖÇø®ÄÉÀ̼ÇÀÇ µð¹ö±ë
__¿ä¾à |
|
|
|
ÀúÀÚ
|
|
¸¶¾ß Æ÷½¬
¼ÒÇÁÆ®¿þ¾î °øÇÐÀÚ·Î ÀÌ ¾÷°è¿Í ÀüÀÚ, ·Îº¿, AI ºÐ¾ß¿¡ ½ÉÃëÇØ ÀÖ´Ù. ÀýÄ£ Æ®·¹¹ö ÆÛµð(Trevor Purdy)¿Í ÇÔ²² ¼ÒÇÁÆ®¿þ¾î °³¹ß ȸ»ç ´Ï¾áÄÚ(Nyanko)¸¦ ¿î¿µÇÏ¸ç ´Ù¾çÇÑ °ÔÀÓ °³¹ß ÇÁ·ÎÁ§Æ® ¾÷¹«¸¦ ÁøÇà ÁßÀÌ´Ù. ÀÌ¿Ü¿¡µµ Àü ¼¼°è ±â¾÷À» ´ë»óÀ¸·Î ´Ù¾çÇÑ ÇÁ¸®·£¼ ¾÷¹«¸¦ ÁøÇàÇÑ´Ù. ¼ÒÇÁÆ®¿þ¾î ÀÛ¼º ¿Ü¿¡µµ ¹æÁ¤½ÄÀ» Ç®°í ¼Ò¼³ ÁýÇÊÀ» Áñ±ä´Ù. ´ÑÅÙµµÀÇ ¸íÀÛ <Á©´ÙÀÇ Àü¼³: ½Ã°£ÀÇ ¿ÀÄ«¸®³ª>¸¦ ±â¹ÝÀ¸·Î ÇÑ À̾߱⸦ ¾²°í, ÃÖ±Ù¿¡´Â »ýÁ¸ °øÆ÷ ¼Ò¼³ ¡ºViral Desire¡»À» ¾²±â ½ÃÀÛÇß´Ù. µðÁöÅÐ µµ¼°ü À¥»çÀÌÆ® ½ºÅ©¸®ºêµå(Scribd) ÇÁ·ÎÇÊÀ» º¸¸é Àüü ÀúÀÛ ¸ñ·ÏÀ» º¼ ¼ö ÀÖ´Ù. »ýÈÇаú ·Îº¿, ÀÎü Çغο¡µµ °ü½ÉÀÌ ÀÖ´Ù. ´õ ¾Ë°í ½Í´Ù¸é ºí·Î±×(https://jinzouningen.wordpress.com)¸¦ ¹æ¹®ÇÏÀÚ. ¼ø¼öÇÑ ¾ß¸ÁÀ¸·Î °¡µæ Â÷ ÀÖ´Â µíÇÏ´Ù.
|
|
|
¸¶¾ß Æ÷½¬
|
|
¿ªÀÚ
|
|
±èÁ¡°©
»ï¼ºÀüÀÚ¿¡¼ GNU ÄÄÆÄÀÏ·¯¸¦ ±â¹ÝÀ¸·Î ARM CORE ÄÄÆÄÀÏ·¯ Æ÷ÆÃ/°³¹ß ÇÁ·ÎÁ§Æ®¸¦ ¼öÇàÇß´Ù. ÀÌÈÄ º¸¾È ºÐ¾ß¿Í µð¹ÙÀ̽º µå¶óÀ̹ö¿¡ °ü½ÉÀ» µÎ°í µ¥ºê±×·ç¸¦ °øµ¿À¸·Î â¾÷ÇØ ´Ù¾çÇÑ ÀåÄ¡/º¸¾È µå¶óÀ̹ö¸¦ °³¹ßÇß°í, ´Ù¼öÀÇ µå¶óÀ̹ö °ÀÇ¿Í ¼¼¹Ì³ª, ±³À°À» ÁøÇàÇß´Ù. (ÁÖ)¾È·¦ÀÇ ±â¹Ý ±â¼úÆÀ¿¡¼ º¸¾È °ü·Ã ½Ã½ºÅÛ ÇÁ·Î±×·¥ °³¹ß ¾÷¹«¸¦ ¼öÇàÇß´Ù. ÁÖ¿ä ¹ø¿ª¼·Î´Â ¡ºWindows Internals 7/e Vol.1¡»(¿¡ÀÌÄÜ, 2018), ¡ºTHE GARBAGE COLLECTION HANDBOOK¡»(¿¡ÀÌÄÜ, 2016), ¡º½ÇÀü À©µµ¿ì µð¹ö±ë¡»(¿¡ÀÌÄÜ, 2008), ¡ºWDF¡»(¿¡ÀÌÄÜ, 2008) µîÀÌ ÀÖ´Ù. Áö±ÝÀº ¿©Çà°ú »çÁø¿¡ Èï¹Ì¸¦ ´À³¢°í ÀÖ´Ù.
|
WDF | ±èÁ¡°© | ¿¡ÀÌÄÜÃâÆÇ
Functional Programming in C++ | ±èÁ¡°© | ¿¡ÀÌÄÜÃâÆÇ
Windows Internals Vol 1 | ±èÁ¡°© | ¿¡ÀÌÄÜÃâÆÇ
|
|
±èÁ¡°©
|
|
|
|
|
|
|
|
Ãâ°í¾È³» |
|
 |
Ãâ°í¶õ ÀÎÅÍÆÄÅ© ¹°·ùâ°í¿¡¼ µµ¼°¡ Æ÷ÀåµÇ¾î ³ª°¡´Â ½ÃÁ¡À» ¸»Çϸç, ½ÇÁ¦ °í°´´Ô²²¼ ¼ö·ÉÇϽô ½Ã°£Àº »óÇ°Áغñ¿Ï·áÇØ Ãâ°íÇÑ ³¯Â¥ + Åùè»ç ¹è¼ÛÀÏÀÔ´Ï´Ù. |
 |
ÀÎÅÍÆÄÅ© µµ¼´Â ¸ðµç »óÇ°ÀÇ Àç°í°¡ ÃæÁ·ÇÒ ½Ã¿¡ ÀÏ°ý Ãâ°í¸¦ ÇÕ´Ï´Ù. |
 |
ÀϺΠÀç°í¿¡ ´ëÇÑ Ãâ°í°¡ ÇÊ¿äÇÒ ½Ã¿¡´Â ´ã´çÀÚ¿¡°Ô Á÷Á¢ ¿¬¶ôÇϽðųª, °í°´¼¾ÅÍ(°í°´¼¾ÅÍ(1577-2555)·Î ¿¬¶ôÁֽñ⠹ٶø´Ï´Ù. |
|
¹è¼Ûºñ ¾È³» |
|
 |
ÀÎÅÍÆÄÅ© µµ¼ ´ë·®±¸¸Å´Â ¹è¼Û·á°¡ ¹«·áÀÔ´Ï´Ù. |
 |
´Ü, 1°³ÀÇ »óÇ°À» ´Ù¼öÀÇ ¹è¼ÛÁö·Î ÀÏ°ý ¹ß¼Û½Ã¿¡´Â 1°³ÀÇ ¹è¼ÛÁö´ç 2,000¿øÀÇ ¹è¼Ûºñ°¡ ºÎ°úµË´Ï´Ù. |
¾Ë¾ÆµÎ¼¼¿ä! |
|
 |
°í°´´Ô²²¼ ÁÖ¹®ÇϽŠµµ¼¶óµµ µµ¸Å»ó ¹× ÃâÆÇ»ç »çÁ¤¿¡ µû¶ó Ç°Àý/ÀýÆÇ µîÀÇ »çÀ¯·Î Ãë¼ÒµÉ ¼ö ÀÖ½À´Ï´Ù. |
 |
Åùè»ç ¹è¼ÛÀÏÀÎ ¼¿ï ¹× ¼öµµ±ÇÀº 1~2ÀÏ, Áö¹æÀº 2~3ÀÏ, µµ¼, »ê°£, ±ººÎ´ë´Â 3ÀÏ ÀÌ»óÀÇ ½Ã°£ÀÌ ¼Ò¿äµË´Ï´Ù.
(´Ü, Åä/ÀÏ¿äÀÏ Á¦¿Ü) |
|
|
|
|
ÀÎÅÍÆÄÅ©µµ¼´Â °í°´´ÔÀÇ ´Ü¼ø º¯½É¿¡ ÀÇÇÑ ±³È¯°ú ¹ÝÇ°¿¡ µå´Â ºñ¿ëÀº °í°´´ÔÀÌ ÁöºÒÄÉ µË´Ï´Ù.
´Ü, »óÇ°À̳ª ¼ºñ½º ÀÚüÀÇ ÇÏÀÚ·Î ÀÎÇÑ ±³È¯ ¹× ¹ÝÇ°Àº ¹«·á·Î ¹ÝÇ° µË´Ï´Ù.
±³È¯/¹ÝÇ°/º¸ÁõÁ¶°Ç ¹× Ç°Áúº¸Áõ ±âÁØÀº ¼ÒºñÀڱ⺻¹ý¿¡ µû¸¥ ¼ÒºñÀÚ ºÐÀï ÇØ°á ±âÁØ¿¡ µû¶ó ÇÇÇظ¦ º¸»ó ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.
Á¤È®ÇÑ È¯ºÒ ¹æ¹ý ¹× ȯºÒÀÌ Áö¿¬µÉ °æ¿ì 1:1¹®ÀÇ °Ô½ÃÆÇ ¶Ç´Â °í°´¼¾ÅÍ(1577-2555)·Î ¿¬¶ô Áֽñ⠹ٶø´Ï´Ù.
¼ÒºñÀÚ ÇÇÇغ¸»óÀÇ ºÐÀïó¸® µî¿¡ °üÇÑ »çÇ×Àº ¼ÒºñÀÚºÐÀïÇØ°á±âÁØ(°øÁ¤°Å·¡À§¿øȸ °í½Ã)¿¡ µû¶ó ºñÇØ º¸»ó ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.
|
±³È¯ ¹× ¹ÝÇ°ÀÌ °¡´ÉÇÑ °æ¿ì |
|
 |
»óÇ°À» °ø±Þ ¹ÞÀ¸½Å ³¯·ÎºÎÅÍ 7ÀÏÀ̳» °¡´ÉÇÕ´Ï´Ù. |
 |
°ø±Þ¹ÞÀ¸½Å »óÇ°ÀÇ ³»¿ëÀÌ Ç¥½Ã, ±¤°í ³»¿ë°ú ´Ù¸£°Å³ª ´Ù¸£°Ô ÀÌÇàµÈ °æ¿ì¿¡´Â °ø±Þ¹ÞÀº ³¯·ÎºÎÅÍ 3°³¿ùÀ̳», ±×»ç½ÇÀ» ¾Ë°Ô µÈ ³¯ ¶Ç´Â ¾Ë ¼ö ÀÖ¾ú´ø ³¯·ÎºÎÅÍ 30ÀÏÀ̳» °¡´ÉÇÕ´Ï´Ù. |
 |
»óÇ°¿¡ ¾Æ¹«·± ÇÏÀÚ°¡ ¾ø´Â °æ¿ì ¼ÒºñÀÚÀÇ °í°´º¯½É¿¡ ÀÇÇÑ ±³È¯Àº »óÇ°ÀÇ Æ÷Àå»óÅ µîÀÌ ÀüÇô ¼Õ»óµÇÁö ¾ÊÀº °æ¿ì¿¡ ÇÑÇÏ¿© °¡´ÉÇÕ´Ï´Ù.
|
|
|
|
±³È¯ ¹× ¹ÝÇ°ÀÌ ºÒ°¡´ÉÇÑ °æ¿ì |
|
|
 |
°í°´´ÔÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óÇ° µîÀÌ ¸ê½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì´Â ºÒ°¡´ÉÇÕ´Ï´Ù. (´Ü, »óÇ°ÀÇ ³»¿ëÀ» È®ÀÎÇϱâ À§ÇÏ¿© Æ÷Àå µîÀ» ÈѼÕÇÑ °æ¿ì´Â Á¦¿Ü) |
 |
½Ã°£ÀÌ Áö³²¿¡ µû¶ó ÀçÆǸŰ¡ °ï¶õÇÒ Á¤µµ·Î ¹°Ç°ÀÇ °¡Ä¡°¡ ¶³¾îÁø °æ¿ì´Â ºÒ°¡´ÉÇÕ´Ï´Ù. |
 |
Æ÷Àå °³ºÀµÇ¾î »óÇ° °¡Ä¡°¡ ÈÑ¼ÕµÈ °æ¿ì´Â ºÒ°¡´ÉÇÕ´Ï´Ù. |
|
|
´Ù¹è¼ÛÁöÀÇ °æ¿ì ¹ÝÇ° ȯºÒ |
|
|
 |
´Ù¹è¼ÛÁöÀÇ °æ¿ì ´Ù¸¥ Áö¿ªÀÇ ¹ÝÇ°À» µ¿½Ã¿¡ ÁøÇàÇÒ ¼ö ¾ø½À´Ï´Ù. |
 |
1°³ Áö¿ªÀÇ ¹ÝÇ°ÀÌ ¿Ï·áµÈ ÈÄ ´Ù¸¥ Áö¿ª ¹ÝÇ°À» ÁøÇàÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ÀÌÁ¡ ¾çÇØÇØ Áֽñ⠹ٶø´Ï´Ù. |
|
|
|
|
|
|