안녕하세요
2CPU에서 신세 지고 있는 노성훈 입니다.
AMD 16 Core CPU가 4개 붙어있는 PC로 작업을 하고 있습니다.
작업은 PDF에서 원하는 데이터를 뽑아내는 작업으로
C#을 이용해서 정규식으로 값을 추출하고 있습니다.
한 PDF에서 뽑아내는 값은 42개 입니다.
한개 PDF를 파싱하는데 7초 정도 걸리는데요
값을 뽑아내야하는 PDF의 숫자가 60000개 정도 되서
CPU를 최대한 활용해야 빨리 일이 끝날텐데 (대강 계산해 보니 100시간 좀 넘게 걸리네요 )
Multithread를 사용해도, palleral for 문을 사용해도
평균 CPU 사용량을 50% 넘기기가 힘듭니다.
지난번에 2CPU 덕분에 풀뱅크 해서 램도 여유있어서
램이랑 CPU를 더 팍팍 일 시키고 싶은데
더 좋은 방법이 없을까요?
프로그램을 잘 못하다 보니 좋은 컴퓨터를 구해 놓고도
완전히 다 쓰는게 쉽지 않네요 ㅠㅠ
±×¸®°í .. ÀÌÀü ±Û°ú °°ÀÌ 100½Ã°£ À̾ . ÀÌ°Ô µü Çѹø¸¸ ÀÌ·ïÁö´Â °ÍÀÌ¸é ±×³É.. ¾²½Ã´Â °Íµµ ±¦ÂúÀ»°Í °°³×¿ä
¸Å¹ø ºó¹øÇÏ°Ô ¹ß»ýÇϸé.. ´Ù¸¥ ¹æ¹ýÀ» ½á¾ß°ÚÁö¸¸¿ä.
ÇüÅ°¡ ÀÏÁ¤ÇÏ¸é ±¦ÂúÀ» ÅÙµ¥
ȸ»ç¸¶´Ù ÇüÅ°¡ ´Ù¾çÇؼ ¾î·Á¿òÀÌ ¸¹³×¿ä
ÀÚ·á´Â ÷ºÎ ÆÄÀÏ·Î ¿Ã¸®°Ú½À´Ï´Ù
µÎ±ºµ¥ °ÍÀ» ±¸Çؼ ºñ±³ÇØ º¸´Ï
µÎ°³°¡ ´Ù¸¥°Ô ²Ï ¸¹´õ¶ó±¸¿ä
½ÇÁ¦ À繫Á¦Ç¥¶û ¼ýÀÚµµ ¾È ¸Â°í¿ä
°í¹ÎÇÏ´Ù°¡ Á÷Á¢ ÇÏ°í ÀÖ½À´Ï´Ù
±×·¡µµ ÃÖ±Ù µ¥ÀÌÅÍ´Â Æ÷¸äÀÌ ÅëÀÏ µÈ°Í °°¾Æ¼
´ÙÇàÀÌ¿¡¿ä
Çѹø º¸¼Å¿ä ^^
Äھ 64 °³¿©¼ ½º·¹µå¸¦ 64°³¸¸ ¸¸µé¾ú´Âµ¥
Á¶±Ý ´õ ´Ã¿© ºÁ¾ß°Ú³×¿ä
·¥ µð½ºÅ©µµ °°ÀÌ ½ÃµµÇØ º¸°Ú½À´Ï´Ù
±×·³ CPU°¡ ºñ¸íÀ» Áö¸¦°Ì´Ï´Ù^^
·ÎÁöÄà ÄÚ¾î ¼öµµ °è»ê ÇØ ºÁ¾ß°Ú³×¿ä
°¨»çÇÕ´Ï´Ù
hw ¾²·¹µå¶û sw ¾²·¹µå¶ûÀº Ʋ¸®Áö ¾Ê³ª¿ä?
µÎ¼¼¹è ´õ ¸¸µé¾îµµ »ó°ü¾øÀ» ²«µ¥¿ä?
1Ãʾȿ¡ 1¸¸°³ ÇÁ·Î¼¼½º°¡ ¸¸µé¾îÁö´Â°ÍÀº ¾Æ´ÏÀܾƿä..
óÀ½ »ý¼ºµÈ ÇÁ·Î¼¼½º°¡ ´ÙÀ½ »ý¼ºµÈ ÇÁ·Î¼¼½º ½ÃÀ۵DZâ±îÁöÀÇ ½Ã°£Ã³¸¦ °è»êÇغ¸½Ã¸é ´ëÃæ ³ª¿Ãµí ÇÕ´Ï´Ù..
50% ±îÁö µ¿ÀÛÀ» ÇÑ´Ù¸é Á¤¸» Àßµ¹¾Æ°¡´Â°ÍÀ̶ó°í ºÁÁý´Ï´Ù..
¹«ÇÑÁ¤ ¿Ã¶ó±âÁö´Â ŸÝ°Ú³×¿ä
°¨»çÇÕ´Ï´Ù
·¥ µð½ºÅ©µµ ÇØ º¸°Ô »ý°å³×¿ä : )
°è»ê ÇÁ·Î±×·¥Àº disk i/o¸¦ ÃÖ¼Ò·Î ÇØ¾ß ÇÕ´Ï´Ù.
¸ÖƼ¾²·¹µå·Î µ¹·È´Âµ¥¿ä 50% ? ¸é... µ¥µå¶ô °Ë»ç´Â Çϼ̰ڰí...
waitingÀÌ ¿À·¡ °É¸®´Â°Ô ¾Æ´Ò±î¿ä ??
¼Ò½º ÇÔ ¿Ã·Áº¸¼¼¿ä ¤»
ºôµå¸¦ µð¹ö±× ¸ðµå·Î Çϼ̴µ¥ ¸±¸®Áî ¸ðµå·Î ºôµåÇؼ Çغ¸¼¼¿ä.
µð½ºÅ©¿¡¼ READ WAITŸÀÓÀÌ »ó´çÀÌ ¼º´É¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù..(Àú´Â µð½ºÅ© WAIT°¡ ¾Æ´Ñ ³×Æ®¿öÅ© WAITÀÌ¿´½À´Ï´Ù..)
±×·¡¼ READ ¾²·¹µå¿Í ÆÄ½Ì ¾²·¹µå¸¦ º°µµ·Î µÎ°í ¸Þ¸ð¸®À§¿¡¼ ó¸®Çϸé ó¸® ¼Óµµ°¡ ±Ø´ëÈ ´ë´õ¶ó±¸¿ä..
¿¹¸¦µé¸é.. READ¿Í WRITE, PARSER1, PARSER2, CONTROLÀÌ ÀÖ´Ù°í Ä¥¶§..
PARSER1°ú PARSER2´Â µ¿ÀÏÇÑ ¾²·¹µåÀÇ °¹¼öÀÔ´Ï´Ù. PARSER1ÀÌ ÀÏÇÒ¶§ PARSER2´Â ÀÏÇÏÁö ¾Ê°í PARSER2°¡ PARSER1ÀÌ ÀÏÇÒ¶§ ÀÏÇÏÁö ¾Ê½À´Ï´Ù.
ÃʱâÈ ´Ü°è¿¡¼´Â READ°¡ PARSERµéÀÇ ¾²·¹µå °¹¼ö¸¸Å µ¥ÀÌÅ͸¦ ÀоîµÓ´Ï´Ù.(PARSER1°ú PARSER2ÀÇ ¾²·¹µåÀÇ °¹¼ö´Â °°½À´Ï´Ù.)
CONTROLÀº PARSER1¿¡°Ô READ°¡ Àоî¿Â µ¥ÀÌÅ͸¦ ³Ñ°ÜÁÖ°í READ¿¡°Ô ´ÙÀ½ÀÛ¾÷À» ½Ãŵ´Ï´Ù.(PARSER2°¡ ÇÒÀÛ¾÷)
CONTROLÀº READÀÇ ³¡À» °¨ÁöÇÏ°í PARSER2¿¡°Ô µ¥ÀÌÅ͸¦ ³Ñ°ÜÁÝ´Ï´Ù.
CONTROLÀº PARSER1ÀÇ ÀÛ¾÷ÀÇ ³¡À» °¨ÁöÇÏ°í PARSER2¸¦ ÀÛµ¿½ÃÅ°°í
PARSER1µéÀº WRITE¿¡°Ô µ¥ÀÌÅ͸¦ ³Ñ°ÜÁÖ°í µ¥ÀÌÅ͸¦ Á¤¸®ÇÏ¿© ÀúÀåÇÕ´Ï´Ù..
À§¿Í ¸¶Âù°¡Áö ¹æ¹ýÀ¸·Î PARSER1À» Áغñ½Ãŵ´Ï´Ù..
Á¦°¡ ÀÛ¼ºÇÏ°íµµ ¾î·Æ³×¿ä..