'Linux'에 해당되는 글 2건
- 2009/05/14
- 2009/03/07
| 메타 문자 |
기능 | 사용 예 |
설명 | |
| ^ | 행의 시작 지시자 | /^love/ | love로 시작하는 모든 행과 대응 | |
| $ | 행의 끝 지시자 | /love$/ | love로 끝나는 모든 행과 대응 | |
| . |
하나의 문자와 대응 | /L..e/ | L 다음에 두 글자가 나오고 e로 끝나는 문자열을 포함하는 행과 대응 | |
| * | 선행 문자와 같은 문자의 0개 혹은 임의 개수와 대응 | / *love/ | 임의 개수의 공백 문자 후에 love로 끝나는 문자열을 포함한 행과 대응 | |
| [] | []사이의 문자 집합 중 하나와 대응 | /[Ll]ove/ | love나 Love를 포함하는 행과 대응 | |
| [x-y] |
[]사이의 문자 범위 내의 한 문자와 대응 | /[A-Z]ove/ | A부터 Z까지 한 문자가 ove로 끝나는 경우와 대응 | |
| [^] |
문자 집합에 속하지 않는 한 문자와 대응 | /[^A-Z]/ |
A와 Z 사이의 범위에 폼함되지 않는 한문자와 대응 | |
| \ | 메타 문자로 사용하고 싶지 않은 경우 | /love\./ | love가 마침표(.)로 끝나는 경우와 대응 | |
| \< |
단어의 시작 지시자 | /\<love/ | love로 시작하는 단어를 포함하는 행과 대응 | |
| \> |
단어의 끝 지시자 | /love\>/ | love로 끝나는 단어를 포함하는 행과 대응 | |
| \(..\) |
다음 사용을 위해 태그를 붙인다 | /\(lov\)able\1er/ | 9개 태그를 쓸 수 있다. 왼쪽부터 순서대로 태그 번호가 매겨진다. 예를 들어, 패턴 lov는 태그 1에 저장되고, 뒤에는 \1 로써 태그 값을 사용할 수 있다. 왼쪽 예제에서 검색 패턴은 lovable에 lover가 붙어 있는 문자열이 된다. | |
| x\{m\} x\{m,\} x\{m,n\} |
문자 x를 m번 반복한다 적어도 m번 반복한다 m회 이상 n회 이하 반복한다 |
o\{5,10\} | 문자 o가 5회에서 10회 사이의 횟수로 연속적으로 나타나는 문자열과 대응 |
우선 windows의 사용법이 아닌 LINUX 상에서의 사용법이며, windows에서는 icc가 아닌 icl이었던것 같다.일단 아래 링크를 따라가서 다운받자.
http://www.intel.com/cd/software/products/asmo-na/eng/340679.htm
사이트에 들어가 보면 알겠지만 인텔 컴파일러를 다운 받는 곳이다.
이곳으로 가서 비상업용 컴파일러를 받고. 받을때는 리눅스 용으로...만약 windows 사용자라면 windows 용으로 받으면 되겠다...
비상업용을 받을때는 이메일 주소 넣는게 있는데 그걸 쓰고나면 그 메일주소로 뭔가 하나 날아온다ㅋㅋㅋ
메일받고 열어보면 시리얼넘버가 쓰여져있는데 그걸 입력하거나 메일에 쓰여져있는 링크를 이용해서 사이트에 들어가면 다운받을 수 있다.
일단 다운 받으면 용량이 꽤나 큰데...내 경우엔 1G 정도되었다. 일단 다운 받은걸 압축 풀면 install.sh 파일이 있는데 이 파일을 이용해서 설치한다. 설치하던 중 내 경우에는 libstdc++5 가 안깔려 있어서 설치가 안된다길래...apt-get으로 먼저 설치하고 나서야 icc를 설치할 수 있었다.
기본적으로 설치후에는 icc 컴파일러가 어디에 설치되었는지 얘기해주는데 환경설정은 자동으로 안되는 것 같다. 그래서 나는 그냥 alias를 이용해서 사용하고 있음ㅋㅋㅋ 확인을 위해 우분투의 시스템 감시를 이용해서 cpu가 정말로 멀티로 동작되는지 확인을 위해 간단한 루프 두개를 만들어서 확인을 해보았다.
컴파일 명령은 아래와 같이 했다.
icc -openmp -o test test.c -no-multibyte-chars -static-intel
옵션 중에 -openmp 는 멀티 코어를 사용하기 위해 썼는데 프로그램 자체가 작아서 그런지 오히려 icc를 이용한 단일 코어의 속도가 더 빨리 나왔다;;; 나중에 데이터양이 큰 프로그램을 만들어서 멀티코어로 돌려봐야 좀 더 정확하게 확인 할 수 있을것 같다.
다른 옵션으로는 -no-multibyte-chars 와 -static-intel 을 사용했는데
-no-multibyte-chars 옵션을 안쓰면 컴파일에러가 나는데 왜그런지 모르겠다.
언어권이 달라서 그런건지...유니코드를 사용하면 그런건지 확인을 못해봤다. 이 부분은 누군가가 설명해주길 바라며ㅋㅋㅋㅋ
-static-intel 은 안써도 컴파일은 되는데 안쓰면 디폴트로 공유라이브러리를 쓰는것으로 판단된다. 나는 alias로 icc만 링크해서 쓰다보니 라이브러리 링크를 제대로 못해서인지 실행하면 제대로 안돌아간다. 그래서 그냥 static library를 쓰려고 일부러 옵션을 주었다. 실제로 static 라이브러리를 사용한다고 해도 실행파일의 용량이 3~400k 정도 늘어날 뿐이기 때문에 별 문제는 없을것으로 판단된다.
ps. 어느 정도 알게됐다 생각하면 앞에 새로운 벽이 있고, 다시 그 벽을 넘어섰다 생각하면 더 높은 산이 있고...그런게 프로그래머인가보다...ㅠ_ㅠ