Intel® Software Home > Intel® Parallel Studio Home > Intel® Parallel Composer

 

Á¦Ç° Á¤º¸

¸ÖƼ ÄÚ¾î ½Ã½ºÅÛ¿ë Á÷·Ä ¹× º´·Ä C ¹× C++ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸Ãà

ÀÎÅÚ® Æз¯·¼ ÄÄÆ÷Àú´Â Windows* ±â¹Ý Ŭ¶óÀ̾ðÆ® ÀÀ¿ë ÇÁ·Î±×·¥À» º´·ÄÈ­ÇÏ´Â °³¹ßÀÚ¸¦ À§ÇÑ ÀÎÅÚ® C++ ÄÄÆÄÀÏ·¯, ¶óÀ̺귯¸® ¹× µð¹ö±ë ±â´ÉÀÌ Æ÷ÇÔµÈ Á¾ÇÕ ¼¼Æ®ÀÔ´Ï´Ù. ÀÌ Á¦Ç°Àº Microsoft Visual Studio*¿Í ÅëÇյǸç, Visual C++°ú ȣȯµÇ°í, °³¹ßÀÚ ÀÛ¾÷ ¹æ½ÄÀ» Áö¿øÇÏ¿© IDE ÅõÀÚ¸¦ º¸È£ÇÔ°ú µ¿½Ã¿¡ º´·Ä µð¹ö±ëÀ» Æ÷ÇÔÇÑ Àü·Ê ¾ø´Â ±¤¹üÀ§ÇÑ º´·ÄÈ­ °³¹ß ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ÀÎÅÚ Æз¯·¼ ÄÄÆ÷Àú´Â µ¶¸³Çü Á¦Ç° ¶Ç´Â ÀÎÅÚ® Æз¯·¼ ½ºÆ©µð¿ÀÀÇ Æ÷ÇÔµÈ Á¦Ç°À¸·Î ±¸ÀÔÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÎÅÚ® Æз¯·¼ ½ºÆ©µð¿À¿¡´Â ½º·¹µù ¹× ¸Þ¸ð¸® ¿À·ù¸¦ ºÐ¼®Çϱâ À§ÇÑ ÀÎÅÚ® Æз¯·¼ ÀνºÆåÅÍ¿Í º´·Ä ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¼º´ÉÀ» ºÐ¼®Çϱâ À§ÇÑ ÀÎÅÚ® Æз¯·¼ ¾ÚÇø®ÆÄÀ̾ Æ÷ÇԵ˴ϴÙ.

 ÀÎÅÚ Æз¯·¼ ÄÄÆ÷Àú ÄÄÆ÷³ÍÆ®

 

32ºñÆ® ÇÁ·Î¼¼¼­¿ë ÀÎÅÚ C++ ÄÄÆÄÀÏ·¯, 32ºñÆ® ½Ã½ºÅÛ¿¡¼­ 64ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥À» »ý¼ºÇÒ ¼ö ÀÖ´Â Å©·Î½º ÄÄÆÄÀÏ·¯ ¹× ³×ÀÌƼºê 64ºñÆ® ÄÄÆÄÀÏ·¯

 

Microsoft Visual Studio µð¹ö°Å¿Í ÅëÇյǴ ÀÎÅÚ® Æз¯·¼ µð¹ö°Å ÀͽºÅÙ¼Ç

 

½º·¹µå¸¦ ¾ÈÁ¤¼º, À̽ļº ¹× È®À强ÀÌ ¶Ù¾î³­ º´·Ä ÀÀ¿ë ÇÁ·Î±×·¥À» »ý¼ºÇÏ´Â ÀÛ¾÷À¸·Î Ãß»óÈ­ÇÏ´Â ¼ö»ó °æ·ÂÀÇ C++ ÅÛÇø´ ¶óÀ̺귯¸®ÀÎ ÀÎÅÚ® ½º·¹µù ºôµù ºí·Ï(ÀÎÅÚ® TBB). Visual C++°úµµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù

 

ÀÎÅÚ® ÅëÇÕ ¼º´É ÇÁ¸®¹ÌƼºê(ÀÎÅÚ® IPP)´Â ¸ÖƼ Äھ Áö¿øÇÏ´Â ±¤¹üÀ§ÇÑ ¶óÀ̺귯¸®·Î, ¸ÖƼ¹Ìµð¾î, µ¥ÀÌÅÍ Ã³¸® ¹× Åë½Å ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ¸Â°Ô °íµµ·Î ÃÖÀûÈ­µÈ ¼ÒÇÁÆ®¿þ¾î ±â´ÉÀ» °®Ãß°í ÀÖ½À´Ï´Ù. ÀÎÅÚ IPP¿¡´Â ¼öÀÛ¾÷À» ÅëÇØ ÃÖÀûÈ­µÈ ±âº» ¼öÁØÀÇ ÇÔ¼ö¿Í ÄÚµ¦ µî °í±Þ ½º·¹µå ¼Ö·ç¼ÇÀÌ Æ÷ÇԵ˴ϴÙ. Visual C++°ú .NET °³¹ß¿¡ ¸ðµÎ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù

 

°³¹ßÀ» ½Å¼ÓÈ÷ ½ÃÀÛÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁÙ »ùÇà ÄÚµå¿Í ÈǸ¢ÇÑ ½ÃÀÛ ¾È³»¼­ÀÔ´Ï´Ù

¸Ç À§·Î  
 
Á¦Ç° ±¸¼º±â´É

ÀÎÅÚ® C++ ÄÄÆÄÀÏ·¯

Microsoft Visual Studio ÅëÇÕ ¹× ȣȯ¼º

 

ÀÎÅÚ Æз¯·¼ ½ºÆ©µð¿ÀÀÇ ¸ðµç ±â´ÉÀº Microsoft Visual Studio 2005 ¹× 2008¿¡ ÅëÇյ˴ϴÙ. ÀÎÅÚ Æз¯·¼ ÄÄÆ÷Àú´Â ÀÎÅÚ Æз¯·¼ ½ºÆ©µð¿ÀÀÇ ¼¼ °¡Áö ÁÖ¿ä ±â´É ±×·ì Áß ÇϳªÀÔ´Ï´Ù. ¿©±â¿¡´Â ÀÎÅÚ C++ ÄÄÆÄÀÏ·¯, ÀÎÅÚ Æз¯·¼ µð¹ö°Å ÀͽºÅÙ¼Ç, ÀÎÅÚ ½º·¹µù ºôµù ºí·Ï, ±×¸®°í ÀÎÅÚ ÅëÇÕ ¼º´É ÇÁ¸®¹ÌƼºê°¡ Æ÷ÇԵ˴ϴÙ.

 

ÀÌ ÄÄÆÄÀÏ·¯´Â ³×ÀÌƼºê 32ºñÆ® °³¹ß, Å©·Î½º ÄÄÆÄÀÏ È¯°æ(32ºñÆ® ½Ã½ºÅÛ¿¡¼­ 64ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ß Áö¿ø) ¹× ±âº» 64ºñÆ® °³¹ßÀ» Á¦°øÇÕ´Ï´Ù. 32ºñÆ® ±â´É¸¸ ¼³Ä¡Çϰųª, 64ºñÆ® ±â´É¸¸ ¼³Ä¡Çϰųª, ¶Ç´Â µÎ °¡Áö ±â´ÉÀ» ¸ðµÎ ¼³Ä¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

ÀÎÅÚ C++ ÄÄÆÄÀÏ·¯¿Í °ü·Ã ÀÎÅÚ Æз¯·¼ µð¹ö°Å ÀͽºÅÙ¼ÇÀº C/C++ °³¹ßÀÚ¿¡°Ô ¸¹Àº ÀåÁ¡À» Á¦°øÇÏÁö¸¸, ÀÎÅÚ Æз¯·¼ ÄÄÆ÷Àú ¶Ç´Â Àüü ÀÎÅÚ Æз¯·¼ ½ºÆ©µð¿À¿¡ Æ÷ÇÔµÈ ´Ù¸¥ ÄÄÆ÷³ÍÆ®¸¦ ¹Ýµå½Ã »ç¿ëÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ´Ù½Ã ¸»Çؼ­ ÀÎÅÚ ½º·¹µù ºôµù ºí·Ï°ú ÀÎÅÚ ÅëÇÕ ¼º´É ÇÁ¸®¹ÌƼºê¸¦ Visual C++ ÄÄÆ÷Àú¿Í ÇÔ²² »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â ¶æÀÔ´Ï´Ù. ¶ÇÇÑ Visual C++·Î ÀÛ¼ºµÈ ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ ÀÎÅÚ Æз¯·¼ ½ºÆ©µð¿À ¸Þ¸ð¸® ´©¼ö ¶Ç´Â º´Ç༺ °Ë»ç ±â´Éµµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇѸ¶µð·Î, °­·ÂÇÏ°í »ç¿ëÇϱ⠽¬¿î ȣȯ ÀÎÅÚ C++ ÄÄÆÄÀÏ·¯¸¦ ºñ·ÔÇÏ¿©, Àüü ÀÎÅÚ Æз¯·¼ ½ºÆ©µð¿ÀÀÇ »ç¿ë°ú °ü·ÃÇÏ¿© °³¹ßÀÚÀÇ Èï¹Ì¸¦ ²ø¸¸ÇÑ ¿ä¼Ò°¡ ¸¹ÀÌ ÀÖ½À´Ï´Ù.

 

 

            ±×¸² 1: ÀÎÅÚ® Æз¯·¼ ÄÄÆ÷Àú´Â Visual Studio*¿¡ ÅëÇյ˴ϴÙ. È­¸éÀÇ ¼Ö·ç¼ÇÀº ÀÎÅÚ C++À» »ç¿ëÇÕ´Ï´Ù. ÇÁ·ÎÁ§Æ®(Project) ¸Þ´º¸¦ ÅëÇØ ¶Ç´Â             ¼Ö·ç¼ÇÀ̳ª ÇÁ·ÎÁ§Æ® À̸§ À§¿¡¼­ ¸¶¿ì½º ¿À¸¥ÂÊ ´ÜÃ߸¦ ´­·¯ Visual C++·Î ½±°Ô ÀüȯÇÒ ¼ö ÀÖ½À´Ï´Ù

 ½±°Ô ½ÃÀÛÇÒ ¼ö ÀÖÀ¸¸ç ¼ºÀåÇÏ°í ÀÖ´Â º´·ÄÈ­ Ä¿¹Â´ÏƼ¿ÍÀÇ Áö¼ÓÀûÀÎ °ü°è À¯Áö

 

ÀÎÅÚ Æз¯·¼ ÄÄÆ÷Àú¿¡´Â ¹æ¹ý¿¡ ´ëÇÑ ¼³¸íÀ» Àü´ÞÇÏ´Â µ¥ »ç¿ëµÇ´Â ±â´É µÑ·¯º¸±â¿Í ÄÚµå »ùÇÃÀ» Á¦°øÇÒ »ç¿ëÇϱ⽬¿î ½ÃÀÛ ¾È³»¼­°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ¶ÇÇÑ °£´ÜÇѺñµð¿À¸¦ º¼ ¼ö ÀÖ´Â ¸µÅ©µµ Æ÷ÇԵǾî ÀÖ¾î ÀÎÅÚ Æз¯·¼ ÄÄÆ÷ÀúÀÇ º´·ÄÈ­ ±â´ÉÀ» »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ °ÆÁ¤ÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù. ÀÎÅÚ Æз¯·¼ ÄÄÆ÷ÀúÀÇ »ç¿ëÀÚ´Â ÀÌ ¾È³»¼­°¡ Àá½Ã ½Ã°£À» ³»¾î Àо ¸¸ÇÑ ÃæºÐÇÑ °¡Ä¡¸¦ °¡Áö°í ÀÖ´Ù°í ¸»ÇÕ´Ï´Ù. ¶ÇÇÑ µµ±¸¸¦ »ý»êÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â º´·ÄÈ­ °³³ä ¹× ±â¹ýÀ» ¼Ò°³ÇÏ´Â ºÎºÐ¿¡¼­ »ùÇà Äڵ尡 ¸Å¿ì À¯¿ëÇß´Ù°í ¸»ÇÕ´Ï´Ù.

 

½ÃÀÛ ¾È³»¼­´Â ¸î¸î À§Ä¡¿¡¼­ Á¦°øµË´Ï´Ù. ¿¹¸¦ µé¸é, ÀÎÅÚ À¥ ÆäÀÌÁö, ¼³Ä¡ ½Ã ¸î¸î ÁöÁ¡, Visual Studio µµ¿ò¸» ¸Þ´º(»ó¼¼ ¼³¸í¼­¿Í ÇÔ²²) ¶Ç´Â Windows "½ÃÀÛ" ´ÜÃß¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â ÀÎÅÚ Æз¯·¼ ½ºÆ©µð¿À ¶Ç´Â ÀÎÅÚ Æз¯·¼ ÄÄÆ÷Àú Æ®¸® ±¸Á¶¿¡¼­ ã¾Æº¼ ¼ö ÀÖ½À´Ï´Ù. ¼³Ä¡ ¿Ï·á ½Ã¿¡µµ ½ÃÀÛ ¾È³»¼­¸¦ Àо °ÍÀÎÁö ¹¯´Â ¸Þ½ÃÁö°¡ Ç¥½ÃµË´Ï´Ù. ½ÃÀÛ ¾È³»¼­´Â Ãʺ¸ÀÚµç º´·ÄÈ­ Àü¹®°¡µç, ´©±¸¶óµµ Àá½Ã ½Ã°£À» ³»¾î Àо ¸¸ÇÑ ÃæºÐÇÑ °¡Ä¡¸¦ Áö´Ï°í ÀÖ½À´Ï´Ù.

 

½ÃÀÛÇÏ°í ³ª¸é ¼ºÀåÇÏ°í ÀÖ´Â °³¹ßÀÚ Ä¿¹Â´ÏƼ¿¡ Âü¿©ÇÏ¿© ÀÎÅÚ ¸ÖƼ ÄÚ¾î ÇÁ·Î¼¼¼­ ±â¹Ý ½Ã½ºÅÛÀ» È°¿ëÇÏ´Â °³¹ßÀÚµé°ú Á¤º¸¸¦ ±³È¯ÇÒ ¼ö ÀÖÀ½ÀÌ ¸Å¿ì À¯¿ëÇÏ°Ô »ý°¢µÉ °ÍÀÔ´Ï´Ù. ÀÎÅÚÀº °³¹ßÀÚ°¡ ¾ÆÀ̵ð¾î¸¦ ±³È¯ÇÏ°í ÀÇ°ß ¹× Áú¹®À» °Ô½ÃÇϸç Æ÷ÀÎÆ®¸¦ ȹµæÇÏ¿© ÀÎÅÚ® ºí·¢ º§Æ® ¼ÒÇÁÆ®¿þ¾î °³¹ßÀÚ°¡ µÉ ¼ö ÀÖ´Â µ¿Àû Æ÷·³À» Á¦°øÇÕ´Ï´Ù. ¶ÇÇÑ º´·ÄÈ­¿¡ °ü½ÉÀÌ ÀÖ´Â °³¹ßÀÚ¸¦ À§ÇØ °è¼Ó ´Ã¾î³ª°í ÀÖ´Â ¹æ´ëÇÑ ±â¼ú ÀÚ·áµµ Á¦°øÇÕ´Ï´Ù. Áö±Ý ¹Ù·Î Ä¿¹Â´ÏƼ¿¡ Âü¿©ÇϽʽÿÀ. º´·Ä ÇÁ·Î±×·¡¹Ö ¹× ¸ÖƼÄÚ¾î Ä¿¹Â´ÏƼ (http://software.intel.com/en-us/articles/intelparallel-studio/)¸¦ ¹æ¹®ÇϽʽÿÀ. ¿©±â¼­´Â ºí·Î±×, ±â¼ú ÀÚ·á, ´Ù¿î·Îµå µî ¸ðµç ¸®¼Ò½º¸¦ ã¾Æº¼ ¼ö ÀÖ½À´Ï´Ù. ÀÚÀ¯·Ó°Ô »ìÆ캻 ´ÙÀ½, Áñ°Üã±â ¸ñ·Ï¿¡ ÀúÀåÇÏ´Â °Íµµ ÀØÁö ¸¶½Ê½Ã¿À.

 ¶÷´Ù ÇÔ¼ö Áö¿ø

 

ÀÎÅÚ ÄÄÆÄÀÏ·¯´Â ´ÙÀ½ C++ Ç¥ÁØÀÎ C++0xÀÇ ÃʾÈÀ» Áö¿øÇÏ¿© ¶÷´Ù ÇÔ¼ö¸¦ ±¸ÇöÇÏ´Â ÃÖÃÊÀÇ C++ ÄÄÆÄÀÏ·¯ÀÔ´Ï´Ù. ¶÷´Ù ±¸Á¶´Â C++ÀÇ ÇÔ¼ö °³Ã¼ ¶Ç´Â CÀÇ ÇÔ¼ö Æ÷ÀÎÅÍ¿Í °ÅÀÇ µ¿ÀÏÇÕ´Ï´Ù. ÄÚµå¿Í ½ºÄÚÇÁ¸¦ °áÇÕÇϱ⠶§¹®¿¡ Ŭ·ÎÀú¿Í ÇÔ²² °­·ÂÇÑ °³³äÀ» ³ªÅ¸³À´Ï´Ù. Ŭ·ÎÀú´Â ÅؽºÆ® ÇüÅ·ΠÇÔ¼ö Á¤ÀǸ¦ Æ÷ÇÔÇÏ´Â ¾ç½ÄÀ» ¹ÙÀεùÇÔÀ¸·Î½á ¼³Á¤µÇ´Â ¹ÙÀεù °ªÀ» ÂüÁ¶ÇÏ°í º¯°æÇÒ ¼ö ÀÖ´Â ÇÔ¼öÀÔ´Ï´Ù. °£´ÜÈ÷ ¸»ÇØ ¶÷´Ù ÇÔ¼ö¿Í Ŭ·ÎÀú´Â ÇÔ¼ö °³Ã¼ ¶Ç´Â ¶÷´Ù¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ´Â Æí¸®ÇÑ ¹æ¹ýÀ» Á¦°øÇÏ´Â ÇÔ¼ö °³Ã¼ ¹× ÇÔ¼ö Æ÷ÀÎÅÍ¿Í °ü·ÃµÈ ¹®¹ýÀû ÆíÀÇ·Î º¼ ¼ö ÀÖ½À´Ï´Ù.

 

±×¸² 2ÀÇ ¼Ò½º ÄÚµå´Â ¶÷´Ù ½ÄÀ¸·Î ¸¸µç ÇÔ¼ö °³Ã¼ÀÇ ¿¹ÀÔ´Ï´Ù. C++¿Í ÀÎÅÚ TBB¸¦ ´õ¿í ¹ÐÁ¢ÇÏ°Ô ÅëÇÕÇÏ¸é ¶÷´Ù ÇÔ¼ö¿Í Ŭ·ÎÀú¸¦ »ç¿ëÇØ Äڵ带 ¸Å°³º¯¼ö·Î ³Ñ±èÀ¸·Î½á ÇÔ¼öÀÚ(functor) operator() °³³äÀ» °£¼ÒÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

 

 

 

±×¸² 2: ¶÷´Ù ÇÔ¼öÀÇ ¼Ò½º ÄÚµå ¿¹

 ´Ü¼ø º´Çà ÇÔ¼ö

 

ÀÎÅÚ Æз¯·¼ ½ºÆ©µð¿À¿¡ Æ÷ÇÔµÈ ÀÎÅÚ® C++ ÄÄÆÄÀÏ·¯´Â ³× °³ÀÇ »õ·Î¿î Å°¿öµå(__taskcomplete, __task, __par ¹× __critical)¸¦ Á¦°øÇÏ¿© º´·Ä ÇÁ·Î±×·¡¹ÖÀ» ´õ¿í ½±°Ô ¸¸µì´Ï´Ù. ÀÌ Å°¿öµåµé·Î ÀÎÇØ °¡´ÉÇØÁø º´·Ä¼ºÀ¸·ÎºÎÅÍ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ÇýÅÃÀ» ¾ò°Ô ÇÏ·Á¸é  /Qopenmp ÄÄÆÄÀÏ·¯ ¿É¼ÇÀ» ÁöÁ¤ÇÑ ÈÄ ´Ù½Ã ÄÄÆÄÀÏÇØ º´·Ä¼ºÀÇ ½ÇÁ¦ Á¤µµ¸¦ °ü¸®ÇÏ´Â ÀûÀýÇÑ ·±Å¸ÀÓ Áö¿ø ¶óÀ̺귯¸®¿¡ ¿¬°áÇÕ´Ï´Ù. ÀÌ »õ·Î¿î Å°¿öµåµéÀº OpenMP 3.0* ·±Å¸ÀÓ ¶óÀ̺귯¸®¸¦ »ç¿ëÇØ º´·Ä¼ºÀ» Á¦°øÇÏÁö¸¸, OpenMP* ÇÁ¶ó±×¸¶¿Í Áö½ÃÀÚ ¹®¹ýÀ» °¡Áö°í À̸¦ ½ÇÁ¦·Î Ç¥ÇöÇÒ ÇÊ¿ä´Â ¾ø°Ô ¸¸µì´Ï´Ù. À̸¦ ÅëÇØ C ¶Ç´Â C++¿¡¼­ ÀÛ¼ºµÈ Äڵ带 ´õ¿í ÀÚ¿¬½º·´°Ô À¯ÁöÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

¾Õ¿¡¼­ ¾ð±ÞÇÑ Å°¿öµå´Â ±¸¹® Á¢µÎ»ç·Î »ç¿ëµË´Ï´Ù. ¿¹¸¦ µé¾î, __par¸¦ »ç¿ëÇØ solve() ÇÔ¼ö¸¦ º´·ÄÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

Àμö »çÀÌ¿¡ °ãÄ¡´Â ºÎºÐÀÌ ¾ø´Ù°í °¡Á¤Çϸé solve() ÇÔ¼ö´Â __par Å°¿öµå¸¦ Ãß°¡ÇØ º¯°æµË´Ï´Ù. ÇÔ¼ö°¡ È£ÃâµÇ´Â ¹æ½Ä¿¡ ´ëÇÑ º¯°æ ¾øÀÌ °è»êÀÌ º´·ÄÈ­µË´Ï´Ù. ±×¸² 3Àº À̸¦ º¸¿©ÁÖ´Â ¿¹ÀÔ´Ï´Ù.

 

 

 

 

±×¸² 3: ÀÎÅÚ® Æз¯·¼ ½ºÆ©µð¿ÀÀÇ ÀÎÅÚ C++ ÄÄÆÄÀÏ·¯¿¡ »õ·Ó°Ô Ãß°¡µÈ 4°³ÀÇ ´Ü¼ø º´Çà ÇÔ¼ö Áß ÇϳªÀÎ __parÀÇ ¿¹

 OpenMP 3.0

 

OpenMP´Â ÀÌ½Ä °¡´ÉÇÑ ¸ÖƼ ½º·¹µå ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ßÀÇ ¾÷°è Ç¥ÁØÀÔ´Ï´Ù. OpenMP´Â ÆÄÀÎ-±×·¹ÀÎ(fine-grain: ·çÇÁ ·¹º§) ¹× ´ëÇü-±×·¹ÀÎ(large-grain: ÇÔ¼ö ·¹º§) ½º·¹µù¿¡ È¿°úÀûÀÔ´Ï´Ù. OpenMP 3.0Àº Áö½ÃÀÚ Á¢±Ù ¹æ½ÄÀ» »ç¿ëÇØ µ¥ÀÌÅÍ ¹× ŽºÅ© º´·Ä¼ºÀ» ¸ðµÎ Áö¿øÇÔÀ¸·Î½á Á÷·Ä ÀÀ¿ë ÇÁ·Î±×·¥À» º´·Ä ÀÀ¿ë ÇÁ·Î±×·¥À¸·Î º¯È¯ÇÏ´Â ½±°í °­·ÂÇÑ ¹æ¹ýÀ» Á¦½ÃÇϸç, ÀáÀçÀûÀ¸·Î ¸ÖƼ ÄÚ¾î ¹× ´ëĪ ¸ÖƼ ÇÁ·Î¼¼¼­ ½Ã½ºÅÛ¿¡¼­ º´·Ä ½ÇÇàÀ» ÅëÇØ ¼º´ÉÀ» Å©°Ô Çâ»ó½Ãų ¼ö ÀÖ½À´Ï´Ù.

 

OpenMP¸¦ »ç¿ëÇØ ÀÛ¼ºÇÏ°í ±¸ÃàÇÑ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ´ÜÀÏ ÇÁ·Î¼¼¼­ ½Ã½ºÅÛ¿¡¼­ ½ÇÇàµÇ¸é °á°ú´Â º¯°æµÇÁö ¾ÊÀº ¼Ò½º ÄÚµå¿Í µ¿ÀÏÇÕ´Ï´Ù. ´Ù½Ã ¸»Çϸé, °á°ú´Â º¯°æµÇÁö ¾Ê´Â Á÷·Ä ½ÇÇà ÄÚµå¿Í µ¿ÀÏÇÕ´Ï´Ù. µû¶ó¼­ Á÷·Ä ÀÏ°ü¼ºÀ» À¯ÁöÇÏ´Â µ¿½Ã¿¡ ´õ ½±°Ô Á¡ÁøÀû ÄÚµå º¯°æÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. Áö½ÃÀÚ¸¸ Äڵ忡 »ðÀ﵃ ¼ö Àֱ⠶§¹®¿¡ ´ÜÀÏ ÇÁ·Î¼¼¼­ ½Ã½ºÅÛ¿¡¼­ ½ÇÇàÇÒ ¶§ Á¡ÁøÀû ÄÚµå º¯°æÀ» ¼öÇàÇÏ°í ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇÑ °øÅë ÄÚµå ±â¹ÝÀ» À¯ÁöÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.

 

OpenMP´Â ¸ÖƼ Ç÷§Æû ¹× ¿î¿µ üÁ¦¸¦ Áö¿øÇÏ´Â ´ÜÀÏ ¼Ò½º ÄÚµå ¼Ö·ç¼ÇÀÔ´Ï´Ù. ¶ÇÇÑ OpenMP ·±Å¸ÀÓÀÌ ¿Ã¹Ù¸¥ ¼ýÀÚ¸¦ ¼±ÅÃÇϱ⠶§¹®¿¡ ÄÚ¾îÀÇ ¼ö¸¦ ÀÀ¿ë ÇÁ·Î±×·¥¿¡ "Çϵå ÄÚµù" ÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù.

 OpenMP 3.0 ŽºÅ© Å¥À×

 

ºÒ±ÔÄ¢ÇÑ ÆÐÅÏÀÇ µ¿Àû µ¥ÀÌÅͳª Àç±Í °°Àº º¹ÀâÇÑ Á¦¾î ±¸Á¶¸¦ °®´Â ÇÁ·Î±×·¥Àº È¿À²ÀûÀÎ ¹æ¹ýÀ¸·Î º´·ÄÈ­ÇϱⰡ Á¾Á¾ ¾î·Æ½À´Ï´Ù. OpenMP 3.0ÀÇ ÀÛ¾÷ Å¥À× ¸ðµ¨À» »ç¿ëÇϸé OpenMP 2.0 ¶Ç´Â 2.5¿¡¼­ °¡´ÉÇÑ °Í ÀÌ»óÀ¸·Î ºÒ±ÔÄ¢ÇÑ º´·ÄÈ­¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

ŽºÅ© ÇÁ¶ó±×¸¶´Â ÀÛ¾÷ ´ÜÀ§(ŽºÅ©)°¡ ½ÇÇàµÇ´Â ȯ°æÀ» ÁöÁ¤ÇÕ´Ï´Ù. ŽºÅ© ÇÁ¶ó±×¸¶¸¦ ¸¸³ª¸é ŽºÅ© ºí·Ï ³» ÄÚµå´Â ŽºÅ©¿Í °ü·ÃµÈ Å¥ ¼ÓÀ¸·Î Å¥À׵˴ϴÙ. ¿¬¼ÓµÇ´Â Àǹ̸¦ º¸Á¸Çϱâ À§ÇØ Å½ºÅ©ÀÇ ¿Ï·á ÁöÁ¡¿¡ ¾Ï½ÃÀû À庮ÀÌ ÀÖ½À´Ï´Ù. °³¹ßÀڴ ŽºÅ© ºí·Ï °£¿¡ ¶Ç´Â ŽºÅ© ºí·Ï ³» ÄÚµå¿Í ÇØ´ç ŽºÅ© ºí·Ï ¹Û¿¡ Àִ ŽºÅ© ºí·ÏÀÇ ÄÚµå °£¿¡ µðÆæ´ø½Ã°¡ Á¸ÀçÇÏÁö ¾Ê°Ô Çϰųª µðÆæ´ø½Ã°¡ ÀûÀýÇÏ°Ô µ¿±âÈ­µÇ°Ô ÇÒ Ã¥ÀÓÀÌ ÀÖ½À´Ï´Ù. ±×¸² 4´Â À̸¦ º¸¿©ÁÖ´Â ¿¹ÀÔ´Ï´Ù.

 

 

 

 

±×¸² 4: OpenMP3 3.0 ŽºÅ© Å¥À×ÀÇ ¿¹

 

±×¸² 4ÀÇ ¿¹¿¡¼­´Â ´Ü ÇϳªÀÇ Å½ºÅ© Å¥°¡ ÇÊ¿äÇÕ´Ï´Ù. µû¶ó¼­, ´Ü ÇϳªÀÇ ½º·¹µå(omp single)¸¦ »ç¿ëÇØ Å¥¸¦ ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. setQueens È£ÃâÀº ¼­·Î µ¶¸³ÀûÀ̱⠶§¹®¿¡ ŽºÅ© °³³ä¿¡ Àß µé¾î¸Â½À´Ï´Ù. ¶ÇÇÑ Àü¿ë âÀÇ OpenMP ÇÁ·Î±×·¥¿¡¼­ tasks, teams, locks, barriers, taskwaitsÀÇ »óÅ °Ë»ç¸¦ ½±°Ô ¸¸µå´Â, ¹Ù·Î ¾Æ·¡¿¡ ¼Ò°³µÈ ÀÎÅÚ Æз¯·¼ µð¹ö°Å ÀͽºÅټǿ¡ ´ëÇÑ ¼³¸íÀ» Àо´Â °Íµµ ÁÁ½À´Ï´Ù.

¸Ç À§·Î  

  ÀÎÅÚ® Æз¯·¼ µð¹ö°Å ÀͽºÅÙ¼Ç

 

ÀÎÅÚ Æз¯·¼ ÄÄÆ÷Àú´Â ¼³Ä¡ ÈÄ Visual StudioÀÇ µð¹ö±×(Debug) Ç® ´Ù¿î ¸Þ´º¸¦ ÅëÇØ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Â ÀÎÅÚ® Æз¯·¼ µð¹ö°Å ÀͽºÅÙ¼ÇÀ» Æ÷ÇÔÇÕ´Ï´Ù(±×¸² 5 ÂüÁ¶).

 

 

 

 

±×¸² 5: ÀÎÅÚ Æз¯·¼ µð¹ö°Å ÀͽºÅÙ¼ÇÀº Microsoft Visual StudioÀÇ µð¹ö±×(Debug) Ç® ´Ù¿î ¸Þ´º¸¦ ÅëÇØ ¾×¼¼½º°¡ °¡´ÉÇÕ´Ï´Ù

 

ÀÎÅÚ Æз¯·¼ µð¹ö°Å ÀͽºÅÙ¼ÇÀº º´·Ä ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ °øÀ¯ µ¥ÀÌÅÍ¿Í µ¥ÀÌÅÍ µðÆæ´ø½Ã¿¡ ´ëÇÑ Ãß°¡ Á¤º¸¿Í ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. À̸¦ ÅëÇØ °³¹ß ÁֱⰡ ´õ¿í »¡¶óÁö°í ½É°¢ÇÑ ·±Å¸ÀÓ ¹®Á¦¸¦ ÀÏÀ¸Å³ ¼ö ÀÖ´Â ÀáÀçÀû µ¥ÀÌÅÍ ¾×¼¼½º Ãæµ¹À» Á¶±â¿¡ ¹ß°ßÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÎÅÚ Æз¯·¼ ÄÄÆ÷Àú¸¦ ¼³Ä¡ÇÏ°í Visual Studio¸¦ ½ÃÀÛÇÏ°í ³ª¸é ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ SIMD(Single Instruction Multiple Data) ½ÇÇàÀ» È°¿ëÇÒ ¶§¸¶´Ù ÀÎÅÚ Æз¯·¼ µð¹ö°Å ÀͽºÅÙ¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ°í, º´·ÄÈ­µÈ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ OpenMP ½º·¹µùÀ» »ç¿ëÇÒ °æ¿ì ½ÇÇà È帧°ú ÀáÀçÀû ·±Å¸ÀÓ Ãæµ¹À» ÆľÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

°øÀ¯ µ¥ÀÌÅÍ À̺¥Æ® ¹ß°ß, ÇÔ¼ö ÀçÁøÀÔ ¹ß°ß, º´·ÄÈ­µÈ ÄÚµåÀÇ Á÷·ÄÈ­µÈ ½ÇÇàÀ» Æ÷ÇÔÇÑ OpenMP ÀÎ½Ä °°Àº ÀÎÅÚ Æз¯·¼ µð¹ö°Å ÀͽºÅÙ¼ÇÀÇ °í±Þ ±â´ÉÀ» È°¿ëÇÏ·Á¸é /debug:parallel ¿É¼ÇÀ» »ç¿ëÇØ ÀÎÅÚ ÄÄÆÄÀÏ·¯·Î Äڵ带 ÄÄÆÄÀÏÇÕ´Ï´Ù.

 

ÀÚ¼¼ÇÑ ³»¿ëÀº ÀÎÅÚ Æз¯·¼ µð¹ö°Å ÀͽºÅÙ¼Ç ¹é¼­ (http://software.intel.com/en-us/articles/parallel-debugger-extension/ ) ¸¦ ÂüÁ¶ÇϽʽÿÀ. ÀÌ ¹é¼­´Â ÀÎÅÚ µð¹ö°Å ÀͽºÅټǿ¡ ´ëÇÑ ´õ¿í »ó¼¼ÇÑ Á¤º¸¿Í µð¹ö°Å ÀͽºÅÙ¼ÇÀÌ Á¦°øÇÏ´Â ÇýÅÃ, µð¹ö°Å ÀͽºÅÙ¼ÇÀÇ È°¿ë ¹æ¹ý µîÀ» Á¦°øÇÕ´Ï´Ù.

 

º´·Ä ÀÀ¿ë ÇÁ·Î±×·¥ °ü·Ã µð¹ö±ë Á¦Ç°À» Æò°¡ÇÏ·Á¸é ±Ô¸ð°¡ Å« ÀÎÅÚ Æз¯·¼ ½ºÆ©µð¿À Á¦Ç°À» °í·ÁÇØ º¸½Ê½Ã¿À. ¿©±â¿¡´Â ¸Þ¸ð¸® ´©¼ö ºÐ¼® ¹× ½º·¹µå °Ë»ç µµ±¸¸¦ Á¦°øÇÏ´Â ÀÎÅÚ Æз¯·¼ ÀνºÆåÅÍ°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ¶ÇÇÑ ÇÖ½ºÆÌ(¼º´É º´¸ñ ÁöÁ¡) ºÐ¼®°ú º´Ç༺ °Ë»ç µµ±¸¸¦ Á¦°øÇÏ´Â ÀÎÅÚ Æз¯·¼ ¾ÚÇø®ÆÄÀ̾ Æ÷ÇԵǾî ÀÖ¾î º´·ÄÈ­µÈ ÄÚµå ¹× µ¥ÀÌÅ͸¦ ÀνÄÇÏ°í Äڵ带 µð¹ö±ëÇÏ¿© Á¤È®¼ºÀ» À¯ÁöÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÎÅÚ Æз¯·¼ ½ºÆ©µð¿À´Â ÀÎÅÚ Æз¯·¼ µð¹ö°Å ÀͽºÅÙ¼ÇÀ» ºñ·ÔÇÏ¿© ÀÌ·¯ÇÑ ¸ðµç ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù.

 ³­ÇØÇÑ º´·Ä ·çÇÁ ÃÖÀûÈ­

 

¹Ýº¹ µ¶¸³¼ºÀ» °®´Â µ¥ÀÌÅÍ º´·Ä¼ºÀ» Ç¥½ÃÇÏ´Â ¾Ë°í¸®ÁòÀº "³­ÇØÇÑ º´·Ä" Äڵ带 º¸¿©ÁÖ´Â ·çÇÁ¿¡ ÀûÇÕÇÕ´Ï´Ù. ÀÎÅÚ Æз¯·¼ ÄÄÆ÷Àú´Â ÃÖ¼ÒÇÑÀÇ ³ë·ÂÀ¸·Î ÀÌ·¯ÇÑ ·çÇÁÀÇ ¼º´ÉÀ» ±Ø´ëÈ­ÇÏ´Â ¼¼ °¡Áö ¹æ¹ýÀ» Á¦½ÃÇÕ´Ï´Ù. ±× ¼¼ °¡Áö ¹æ¹ýÀº ÀÚµ¿ º¤ÅÍÈ­, ÀÎÅÚ ÃÖÀûÈ­  valarray ÄÁÅ×À̳ÊÀÇ »ç¿ë ±×¸®°í ÀÚµ¿ º´·ÄÈ­ÀÔ´Ï´Ù. ÀÎÅÚ Æз¯·¼ ÄÄÆ÷Àú´Â ÀÚµ¿ º¤ÅÍÈ­¿¡ ÀûÇÕÇÑ ·çÇÁ¸¦ ÀÚµ¿À¸·Î ã¾Æ³À´Ï´Ù. ¿©±â¿¡´Â Á¤Àû ¶Ç´Â µ¿Àû ¹è¿­, ¹éÅÍ ¹× valarray ÄÁ³×À̳ʰ¡ ÀÖ´Â ¸í½ÃÀû ·çÇÁ ¶Ç´Â ¸í½ÃÀû ·çÇÁ°¡ ÀÖ´Â »ç¿ëÀÚ Á¤ÀÇ C++ Ŭ·¡½º°¡ Æ÷ÇԵ˴ϴÙ. Ưº°ÇÑ °æ¿ì·Î¼­ ¾Ï½ÃÀû valarray ·çÇÁ°¡ ÀÚµ¿ ¹éÅÍÈ­µÇ°Å³ª ÀÎÅÚ ÅëÇÕ ¼º´É ÇÁ¸®¹ÌƼºê(IPP)ÀÇ ¶óÀ̺귯¸® ÇÁ¸®¹ÌƼºê¸¦ ½ÇÇàÇϵµ·Ï Áö½ÃµÉ ¼ö ÀÖ½À´Ï´Ù. ÀÚµ¿ ¹éÅÍÈ­ ¹× ÃÖÀûÈ­µÈ valarray Çì´õÀÇ »ç¿ëÀº ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¼º´ÉÀ» ÃÖÀûÈ­ÇØ ½ºÆ®¸®¹Ö SIMD ÀͽºÅÙ¼ÇÀ» Áö¿øÇÏ´Â ÇÁ·Î¼¼¼­¸¦ ¿Ïº®ÇÏ°Ô È°¿ëÇÕ´Ï´Ù.

 

Àá½Ã ÈÄ¿¡ ÀÎÅÚ ÃÖÀûÈ­ valarray Çì´õÀÇ È°¼ºÈ­ ¹æ¹ýÀ» »ìÆ캸°Ú½À´Ï´Ù. ±×·¯³ª ¸ÕÀú ¸í½ÃÀû valarray, ¹éÅÍ ·çÇÁ ¹× ¾Ï½ÃÀû valarray ·çÇÁÀÇ ¿¹¸¦ º¸¿©ÁÖ´Â ±×¸² 6À» »ìÆ캸°Ú½À´Ï´Ù.

 

 

 

 

±×¸² 6: À§ÀÇ ¼Ò½º ÄÚµå´Â ¸í½ÃÀû valarray, ¹éÅÍ ·çÇÁ ¹× ¾Ï½ÃÀû valarray ·çÇÁÀÇ ¿¹¸¦ º¸¿©ÁÝ´Ï´Ù

 

ÃÖÀûÈ­µÈ valarray Çì´õ¸¦ »ç¿ëÇÏ·Á¸é ÀÎÅÚ ÅëÇÕ ¼º´É ÇÁ¸®¹ÌƼºêÀÇ »ç¿ëÀ» ºôµå ÄÄÆ÷³ÍÆ® ¼±ÅÃ(Build Component Selection)À¸·Î ÁöÁ¤ÇÏ°í ¸í·ÉÁÙ ¿É¼ÇÀ» ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. À̸¦ À§ÇØ ¸ÕÀú ÇÁ·ÎÁ§Æ®¸¦ Visual Studio·Î ºÒ·¯¿Â ÈÄ ÇÁ·ÎÁ§Æ® ¼Ó¼º Æ˾÷ âÀ» ¿±´Ï´Ù. "Ãß°¡ ¿É¼Ç(Additional Options)" »óÀÚ¿¡¼­ "/Quse-intel-optimizedheaders" ¸¦ Ãß°¡ÇÏ°í "È®ÀÎ(OK)"À» Ŭ¸¯ÇÕ´Ï´Ù. ±×¸² 7Àº ÀÌ ¹æ¹ýÀ» º¸¿©ÁÖ´Â ¿¹ÀÔ´Ï´Ù.

 

 

 

 

±×¸² 7: ÃÖÀûÈ­µÈ Çì´õ ÆÄÀÏÀÇ »ç¿ëÀ» À§ÇØ ¸í·É¾î¸¦ Visual C++ÀÇ ¸í·É ¶óÀο¡ Ãß°¡Çϱâ

 

´ÙÀ½À¸·Î ÇÁ·ÎÁ§Æ®(Project) ¸Þ´º¿¡¼­ ºôµå ÄÄÆ÷³ÍÆ® ¼±Åà (Build Component Selection) Æ˾÷À» ¿±´Ï´Ù. "ÀÎÅÚ ÅëÇÕ ¼º´É ÇÁ¸®¹ÌƼºê(Intel Integrated Performance Primitives)"ÀÇ ¿À¸¥ÂÊ¿¡ ÀÖ´Â »óÀÚ¿¡¼­ "°øÅë(Common)"À» ¼±ÅÃÇÑ ÈÄ "È®ÀÎ (OK)"À» Ŭ¸¯ÇÕ´Ï´Ù. ±×¸² 8Àº À̸¦ º¸¿©ÁÖ´Â ¿¹ÀÔ´Ï´Ù. ±×·¯°í ³ª¸é ÀÀ¿ë ÇÁ·Î±×·¥À» À籸ÃàÇÒ ¼ö ÀÖ°í, ÀÀ¿ë ÇÁ·Î±×·¥À» º¯°æÇÒ ¶§¿Í ¸¶Âù°¡Áö·Î ¼º´É°ú ÇൿÀ» °Ë»çÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

 

 

 

±×¸² 8: Visual Studio¿¡ ÀÎÅÚ IPP¸¦ »ç¿ëÇ϶ó°í Áö½Ã

 

ÀÚµ¿ º´·ÄÈ­´Â º´·Ä·Î ¾ÈÀüÇÏ°Ô ½ÇÇàÇÒ ¼ö ÀÖ´Â º´·Ä ·çÇÁ¸¦ ã°í ¸ÖƼ½º·¹µå Äڵ带 ÀÚµ¿À¸·Î »ý¼ºÇÏ¿© ¸ÖƼ ÄÚ¾î ÇÁ·Î¼¼¼­¸¦ È°¿ëÇÔÀ¸·Î½á ÀÀ¿ë ÇÁ·Î±×·¥ ¼º´ÉÀ» Çâ»ó½Ãŵ´Ï´Ù. ÀÚµ¿ º´·ÄÈ­¸¦ »ç¿ëÇÏ¸é »ç¿ëÀÚ°¡ ¹Ýº¹ ÆÄƼ¼Å´×, µ¥ÀÌÅÍ °øÀ¯, ½º·¹µå ½ºÄÉÁÙ¸µ ¹× µ¿±âÈ­¿Í °°Àº ÇÏÀ§ ·¹º§ÀÇ ¼¼ºÎ ÀÛ¾÷À» ó¸®ÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù.

 

ÀÚµ¿ º´·ÄÈ­´Â ÀÚµ¿ º¤ÅÍÈ­¸¦ ¼öÇàÇÏ°í ÃÖÀûÈ­µÈ valarray Çì´õ¸¦ »ç¿ëÇÏ¿© SSE¸¦ Áö¿øÇÏ´Â ¸ÖƼ ÄÚ¾î ½Ã½ºÅÛ¿¡¼­ ¼º´ÉÀ» ÃÖ´ëÈ­ÇÕ´Ï´Ù. ¸ÖƼ½º·¹µå ÀÀ¿ë ÇÁ·Î±×·¥ Áö¿ø¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº »ç¿ëÀÚ ¾È³»¼­£¨http:// software.intel.com/en-us/intel-parallel-composer/·Î À̵¿ÇÑ ÈÄ ¼³¸í¼­(documentation) ¸µÅ© Ŭ¸¯)¸¦ ÂüÁ¶ÇϽʽÿÀ.

¸Ç À§·Î  

 ÀÎÅÚ® ½º·¹µù ºôµù ºí·Ï

½º·¹µå¸¦ ¾ÈÁ¤¼º, À̽ļº ¹× È®À强ÀÌ ¶Ù¾î³­ º´·Ä ÀÀ¿ë ÇÁ·Î±×·¥À» »ý¼ºÇÏ´Â ÀÛ¾÷À¸·Î Ãß»óÈ­ÇÏ´Â ¼ö»ó °æ·ÂÀÇ C++ ÅÛÇø´ ¶óÀ̺귯¸®ÀÎ ÀÎÅÚ ½º·¹µù ºôµù ºí·Ï(ÀÎÅÚ TBB). ÀÎÅÚ Æз¯·¼ ÄÄÆ÷Àú¿¡ Æ÷ÇÔµÈ ÀÎÅÚ TBB´Â ÀÎÅÚ C++ ÄÄÆÄÀÏ·¯ ¶Ç´Â Microsoft Visual C++¿Í ÇÔ²² »ç¿ëÇÒ ¼ö Àִ ǥÁØ ÅÛÇø´ ¶óÀ̺귯¸®(STL)ÀÔ´Ï´Ù.

 

ÀÎÅÚ TBB´Â º´·Ä ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ¼¼ °¡Áö ÁÖ¿ä ¹®Á¦¸¦ ÇØ°áÇÕ´Ï´Ù.

 

»ý»ê¼º: º´·ÄÈ­ ±¸Çö °£¼ÒÈ­

 

Á¤È®¼º: º´·Ä µ¿±âÈ­ ¹®Á¦ Á¦°Å

 

À¯Áöº¸¼ö: ÇöÀç»Ó¸¸ ¾Æ´Ï¶ó ¹Ì·¡ÀÇ ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ßµµ Áö¿ø

ÀÎÅÚ TBB »ç¿ë ½Ã ÀÌÁ¡:

 

¹Ì·¡ º¸ÀåÇü(Future-proof) ÀÀ¿ë ÇÁ·Î±×·¥: ÄÚ¾î ¼ö¿Í ½º·¹µå ¼ö°¡ Áõ°¡ÇÔ¿¡ µû¶ó, ÀÎÅÚ TBBÀÇ Á¤±³ÇÑ Å½ºÅ© ½ºÄÉÁÙ·¯¸¦ »ç¿ëÇÏ¿© ÀÀ¿ë ÇÁ·Î±×·¥ ¼Óµµµµ Çâ»óµË´Ï´Ù.

 

À̽ļº: º´·ÄÈ­¸¦ ÇÑ ¹ø¸¸ ±¸ÇöÇÏ¿© ¿©·¯ Ç÷§Æû¿¡¼­ ½º·¹µå Äڵ带 ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

»óÈ£ ¿î¿ë¼º: ´Ù¾çÇÑ ½º·¹µù ¹æ¹ý, Çϵå¿þ¾î ¹× ¿î¿µ üÁ¦¿¡¼­ ÀÛµ¿ÇÕ´Ï´Ù.

 

È°¼ºÈ­µÈ ¿ÀÇ ¼Ò½º Ä¿¹Â´ÏƼ: ÀÎÅÚ TBB´Â ¿ÀÇ ¼Ò½º ¹öÀüÀ¸·Îµµ Á¦°øµË´Ï´Ù. opentbb.org´Â Æ÷·³, ºí·Î±×, ÄÚµå »ùÇà µîÀ» Á¦°øÇÏ´Â È°¼ºÈ­µÈ »çÀÌÆ®ÀÔ´Ï´Ù.

ÀÎÅÚ TBB´Â º´·ÄÈ­¸¦ À§ÇÑ Æ÷°ýÀûÀÌ°í Ãß»óÈ­µÈ ÅÛÇø´, ÄÁÅ×ÀÌ³Ê ¹× Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù. ±×¸² 9´Â ÀÎÅÚ TBB ³» ÁÖ¿ä ±â´É ±×·ìÀ» º¸¿©ÁÝ´Ï´Ù.

±×¸² 9: ÀÎÅÚ® TBB ³» ÁÖ¿ä ±â´É ±×·ì

 

±×¸² 10: ÀÎÅÚ® TBB´Â ¼¼ °¡Áö ÁÖ¿ä º´·ÄÈ­ ¹®Á¦¸¦ ÇØ°áÇÕ´Ï´Ù

 

¸Ç À§·Î  

ÀÎÅÚ® ÅëÇÕ ¼º´É ÇÁ¸®¹ÌƼºê (ÀÎÅÚ IPP)

 

ÀÎÅÚ Æз¯·¼ ÄÄÆ÷Àú¿¡´Â ÀÎÅÚ ÅëÇÕ ¼º´É ÇÁ¸®¹ÌƼºê°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ÀÎÅÚ IPP´Â ¸ÖƼ¹Ìµð¾î, µ¥ÀÌÅÍ Ã³¸®, Åë½Å ÀÀ¿ë ÇÁ·Î±×·¥À» À§ÇØ ¸ÖƼ Äھ ÃÖÀûÈ­µÈ ¼ÒÇÁÆ®¿þ¾î ÇÔ¼ö·Î ±¸¼ºµÈ ±¤¹üÀ§ÇÑ ¶óÀ̺귯¸®ÀÔ´Ï´Ù. ÀÎÅÚ IPP´Â ºñµð¿À ÄÚµù, ½ÅÈ£ ó¸®, ¿Àµð¿À ÄÚµù, À̹ÌÁö ó¸®, À½¼º ÄÚµù, JPEG ÄÚµù, À½¼º ÀνÄ, ÄÄÇ»ÅÍ ¿µ»ó, µ¥ÀÌÅÍ ¾ÐÃà, À̹ÌÁö »ö»ó º¯È¯, Å©¸³Åä±×¶óÇÇ, ½ºÆ®¸µ ó¸®/±ÔÄ¢Àû ½Ä, º¤ÅÍ/¸ÅÆ®¸¯½º ¼öÇÐ µî¿¡¼­ ÀÚÁÖ »ç¿ëµÇ´Â ±âº» ¾Ë°í¸®ÁòÀ» Æ÷ÇÔÇÏ´Â ÃÖÀûÈ­µÈ ¼öõ °³ÀÇ ÇÔ¼ö¸¦ Á¦°øÇÕ´Ï´Ù.

 

ÀÎÅÚ IPP¿¡´Â ¼öÀÛ¾÷À» ÅëÇØ ÃÖÀûÈ­µÈ ±âº» ¼öÁØÀÇ ÇÔ¼ö¿Í ÄÚµ¦ µî °í±Þ ½º·¹µå »ùÇÃÀÌ ¸ðµÎ Æ÷ÇԵǾî ÀÖÀ¸¸ç Visual C++ ¹× .NET °³¹ß¿ëÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¸ðµç ÇÔ¼ö¿Í »ùÇÃÀº ½º·¹µå¿¡ ¾ÈÀüÇÏ¸ç ´ë´Ù¼ö°¡ ³»ºÎÀûÀ¸·Î ½º·¹µùµÇ¾î ÀÖ¾î ÇöÀçÀÇ ¸ÖƼ ÄÚ¾î ÇÁ·Î¼¼¼­¸¦ ÃÖ´ë·Î È°¿ëÇÏ°í ÇâÈÄ ¸Å´ÏÄÚ¾î(manycore) ÇÁ·Î¼¼¼­±îÁö È®ÀåÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

 

 

 

±×¸² 11: ÀÎÅÚ® ÅëÇÕ ¼º´É ÇÁ¸®¹ÌƼºê´Â ÀÎÅÚ® Æз¯·¼ ½ºÆ©µð¿ÀÀÇ ÀϺÎÀÎ ÀÎÅÚ® Æз¯·¼ ÄÄÆ÷Àú¿¡ Æ÷ÇԵǾî ÀÖÀ¸¸ç, À§¿¡ ³ª¿­µÈ ´Ù¾çÇÑ µµ¸ÞÀλ󿡼­ ½º·¹µùµÇ°í ½º·¹µå¿¡ ¾ÈÀüÇÑ ¶óÀ̺귯¸® ÇÔ¼ö¸¦ Á¦°øÇÕ´Ï´Ù

 

ÀÎÅÚ IPP ¼º´É

ÀÀ¿ë ÇÁ·Î±×·¥ ¹× ¿öÅ©·Îµå¿¡ µû¶ó ÀÎÅÚ IPP ÇÔ¼ö´Â ÄÄÆÄÀÏµÈ ÇØ´ç C Äڵ庸´Ù ´õ »¡¸® ¿©·¯ ¹ø ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾Æ·¡¿¡ ³ª¿À´Â À̹ÌÁö Å©±â Á¶Á¤ ¿¹¸¦ º¸¸é, ÄÄÆÄÀÏµÈ C++ Äڵ忡¼­ ½ÇÇàÇÒ ¶§´Â 338 ms(¸¶ÀÌÅ©·ÎÃÊ)°¡ °É·ÈÁö¸¸, ÀÎÅÚ IPP À̹ÌÁö ó¸® ÇÔ¼ö¸¦ »ç¿ëÇßÀ» ¶§´Â 111 ms ¹Û¿¡ °É¸®Áö ¾Ê¾Ò½À´Ï´Ù. Áï ¼º´ÉÀÌ 300% Çâ»óµÈ ¼ÀÀÔ´Ï´Ù.

±×¸² 12: ÀÌ À̹ÌÁö Á¶Á¤ ¿¹¿¡¼­(256x256ºñÆ®¿¡¼­ 460x332ºñÆ®·Î) ÀÎÅÚ® IPP »ç¿ë ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ °æ¿ì ½ÇÇà ½Ã°£ÀÌ 111 msÀÎ °Í¿¡ ¹ÝÇØ, ÄÄÆÄÀÏµÈ C++ ÄÚµåÀÇ °æ¿ì¿¡´Â ½ÇÇà ½Ã°£ÀÌ 338 msÀ̾ú½À´Ï´Ù(½Ã½ºÅÛ ±¸¼º: ÀÎÅÚ® Á¦¿Â, 2.9 GHz, 2°³ ÇÁ·Î¼¼¼­, ÇÁ·Î¼¼¼­´ç 4°³ ÄÚ¾î, ÇÁ·Î¼¼¼­´ç 2°³ ½º·¹µå)

 

Visual Studio¿¡¼­ ÀÎÅÚ IPP »ç¿ë

 

Microsoft Visual Studio ÇÁ·ÎÁ§Æ®¿¡ ÀÎÅÚ IPP Áö¿øÀ» ½±°Ô Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÎÅÚ Æз¯·¼ ÄÄÆ÷Àú¿¡´Â ÀÎÅÚ IPP ¶óÀ̺귯¸® À̸§ ¹× °æ·Î¸¦ Visual Studio ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡ÇÒ ¼ö ÀÖ´Â ¸Þ´º¿Í ´ëÈ­ »óÀÚ°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ´Ü¼øÈ÷ ¼Ö·ç¼Ç Ž»ö±â(Solution Explorer)¿¡¼­ ÇÁ·ÎÁ§Æ® À̸§À» Ŭ¸¯ÇÏ°í ÀÎÅÚ ºôµå ÄÄÆ÷³ÍÆ® ¼±ÅÃ(Intel Build Components Selection) ¸Þ´º Ç׸ñÀ» ¼±ÅÃÇÑ ÈÄ, ºôµå ÄÄÆ÷³ÍÆ®(Build Components) ´ëÈ­ »óÀÚ¸¦ »ç¿ëÇÏ¿© ÀÎÅÚ IPP ¸¦ Ãß°¡ÇÕ´Ï´Ù. ±×·± ´ÙÀ½¿¡´Â ´ÙÀ½ Çì´õ¿Í ÀÛµ¿ Äڵ带 Æ÷ÇÔÇÏ¿© ÇÁ·ÎÁ§Æ®¿¡ ÀÎÅÚ IPP Äڵ带 Ãß°¡Çϱ⸸ ÇÏ¸é µË´Ï´Ù. ºôµå ¼±ÅÃ(Build Selection) ´ëÈ­ »óÀÚ¿¡¼­ ÀÚµ¿À¸·Î ¶óÀ̺귯¸® À̸§À» IPP¿ë ¸µÄ¿¿¡ Ãß°¡ÇÏ°í ÀÎÅÚ IPP ¶óÀ̺귯¸®¿¡ °æ·Î¸¦ Ãß°¡ÇÕ´Ï´Ù.

 

C++ ÇÁ·ÎÁ§Æ® ¿Ü¿¡µµ, Æ÷ÇÔµÈ ·¦ÆÛ Å¬·¡½º¸¦ »ç¿ëÇÏ´Â C# ÇÁ·ÎÁ§Æ®¿¡¼­ ¹®ÀÚ¿­ ó¸®, À̹ÌÁö ó¸®, ½ÅÈ£ ó¸®, »ö»ó º¯È¯, Å©¸³Åä±×¶óÇÇ, µ¥ÀÌÅÍ ¾ÐÃà, JPEG, ¸ÅÆ®¸¯½º ¹× º¤ÅÍ ¼öÇаú °ü·ÃÇÏ¿© C#¿¡¼­ÀÇ ÀÎÅÚ IPP ÇÔ¼ö È£ÃâÀ» Áö¿øÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

 

 

 

±×¸² 13: ÀÎÅÚ® IPP ¶óÀ̺귯¸® È£ÃâÀ» Visual Studio* Äڵ忡 ½±°Ô ÅëÇÕÇÒ ¼ö ÀÖ½À´Ï´Ù

¸Ç À§·Î  
 
Á¦Ç° ±â´É

 

C/C++ º´·ÄÈ­¸¦ Áö¿øÇϵµ·Ï Microsoft* Visual Studio¸¦ ¿Ïº®ÇÏ°Ô ¾÷±×·¹À̵åÇÕ´Ï´Ù. Visual Studio·Î ÅëÇյǾî IDE ÅõÀÚ¸¦ º¸È£ÇÔ°ú µ¿½Ã¿¡ º´·ÄÈ­ ±â´ÉÀ» Ãß°¡ÇÕ´Ï´Ù.

 

ÀÎÅÚ Æз¯·¼ µð¹ö°Å ÀͽºÅÙ¼ÇÀº Microsoft µð¹ö°Å¿Í ÅëÇÕµÇ¾î º´·ÄÈ­ ¹®Á¦¸¦ ½±°Ô ã¾Æ¼­ ÇØ°áÇÒ ¼ö ÀÖµµ·Ï Visual Studio¸¦ Çâ»ó½Ãŵ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥À» »ç¿ë °¡´ÉÇÑ »óÅ·Π¸¸µå´Â µ¥ µå´Â ½Ã°£ÀÌ ´ÜÃàµË´Ï´Ù.

 

´Ü¼ø º´Çà ÇÔ¼ö, µ¥ÀÌÅÍ º´·Ä ¹è¿­ ¹× ¼öõ °³ÀÇ ½º·¹µå ¶óÀ̺귯¸® ÇÔ¼ö°¡ Æ÷ÇÔµÇ¾î ½º·¹µå ŽºÅ©¸¦ °£¼ÒÈ­ÇÏ°í ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ßÀ» °¡¼ÓÈ­ÇÕ´Ï´Ù.

 

ÀÚµ¿ º´·ÄÈ­¿Í ÀÚµ¿ º¤ÅÍÈ­ ¿É¼ÇÀ¸·Î °³¹ßÀ» °£¼ÒÈ­ÇÏ°í ½Ã°£À» Àý¾àÇÕ´Ï´Ù.

 

ÅëÇÕµÈ ¹è¿­ Ç¥±â, µ¥ÀÌÅÍ º´·Ä ÀÎÅÚ IPP ÇÔ¼ö°¡ ¿Àµð¿À, ºñµð¿À, ½ÅÈ£ ºÐ¼® ¹× ±âŸ ÀÀ¿ë ÇÁ·Î±×·¥ Ŭ·¡½ºÀÇ ¼Óµµ¸¦ Çâ»ó½Ãŵ´Ï´Ù.

 

º´·Ä ÀÀ¿ë ÇÁ·Î±×·¥À» ±¸ÇöÇÏ°í ¸ÖƼÄÚ¾î Ç÷§ÆûÀ» ÃÖ´ë·Î È°¿ëÇÒ ¼ö ÀÖ´Â °¡Àå È¿À²ÀûÀÎ ¹æ¹ýÀÎ ÀÎÅÚ TBB°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

 

º´·ÄÈ­ ½ÃÀÛ ¹æ¹ýÀ» ¼³¸íÇÏ´Â ÄÚµå »ùÇà µî ÀÚ¼¼ÇÑ ¼³¸í¼­°¡ ¼ö·ÏµÇ¾î ÀÖ½À´Ï´Ù. ¶ÇÇÑ ´Ü ¸î ºÐ¸¸¿¡ ½ÃÀÛÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁÙ °£´ÜÇÑ ½ÃÀÛ ¾È³»¼­µµ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

 

Ä¿¹Â´ÏƼ¸¦ Áö¿øÇÕ´Ï´Ù. ¿©·¯ºÐÀº ´õ ÀÌ»ó È¥ÀÚ°¡ ¾Æ´Õ´Ï´Ù. Äڵ忡 º´·ÄÈ­¸¦ Ãß°¡ÇÏ´Â °³¹ßÀÚµé·Î ±¸¼ºµÈ ¼ºÀåÇÏ°í ÀÖ´Â °³¹ßÀÚ Ä¿¹Â´ÏƼ¿¡ Âü¿©ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥ °³¹ßÀÚÀÇ °æÇèÀ» µè°í ÀÚ½ÅÀÇ Áö½Ä°ú °æÇèÀ» ¾Ë·ÁÁÖ¸ç, Àû±ØÀûÀÎ Ä¿¹Â´ÏƼ È°µ¿¿¡ ´ëÇÑ º¸»óµµ ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.

¸Ç À§·Î  
 
½Ã½ºÅÛ ¿ä±¸ »çÇ×

Microsoft Visual  Studio

 ÃֽŠ½Ã½ºÅÛ ¿ä±¸»çÇ׿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½ À¥ »çÀÌÆ®¸¦ ÂüÁ¶ÇϽʽÿÀ:

 www.intel.com/software/products/systemrequirements/

¸Ç À§·Î  
 
Áö¿ø

ÀÎÅÚ Æз¯·¼ ½ºÆ©µð¿À Á¦Ç°Àº Ä¿¹Â´ÏƼ Æ÷·³¿¡ ´ëÇÑ ¾×¼¼½º¿Í ±â¼ú ³ëÆ®, ÀÀ¿ë ÇÁ·Î±×·¥ ³ëÆ®, ¹®¼­ ¹× ¸ðµç Á¦Ç° ¾÷µ¥ÀÌÆ® µî ±â¼ú Áö¿øÀ» À§ÇØ ÇÊ¿äÇÑ ¿©·¯ °¡Áö ±â¼ú ÀڷḦ Á¦°øÇÕ´Ï´Ù.

ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½ À¥ »çÀÌÆ®¸¦ ÂüÁ¶ÇϽʽÿÀ:

http://software.intel.com/sites/support/

¸Ç À§·Î