다 핵 CPU 를 이용 하여 리 눅 스 명령 가속-awk,sed,bzip 2,grep,wc

당신 은 일찍이 매우 큰 데이터(수백 GB)를 계산 하려 는 수요 가 있 었 습 니까?안에서 검색 하거나 다른 조작 을 합 니 다.병행 할 수 없 는 동작 들 입 니 다.데이터 전문가 여러분,말씀 드 리 는 겁 니 다.4 핵 이상 의 CPU 가 있 을 수 있 지만,grep,bzip 2,wc,awk,sed 등 우리 에 게 적합 한 도 구 는 모두 단일 스 레 드 이 며,하나의 CPU 커 널 만 사용 할 수 있 습 니 다.캐릭터 카 트 맨 의 말 을 빌려"어떻게 내 가 이 커 널 을 사용 할 수 있 을 까?"리 눅 스 명령 에 모든 CPU 커 널 을 사용 하려 면 GNU Parallel 명령 을 사용 해 야 합 니 다.모든 CPU 커 널 이 단일 컴퓨터 에서 신기 한 map-reduce 작업 을 할 수 있 도록 해 야 합 니 다.물론 이것 은 아주 드 문–pipes 인자(–spreadstdin 이 라 고도 함)를 빌려 야 합 니 다.이렇게 하면 당신 의 부하 가 각 CPU 에 평균 적 으로 분 배 될 것 입 니 다.정말 입 니 다.
BZIP 2 bzip 2 는 gzip 보다 더 좋 은 압축 도구 이지 만 느 립 니 다!괴 롭 히 지 마라,우 리 는 이 문 제 를 해결 할 방법 이 있다.이전의 방법:
지금 이렇게:
특히 bzip 2 에 대해 GNU parallel 은 다 핵 CPU 에서 매우 빠르다.네가 주의 하지 않 으 면 그것 은 집행 이 완성 된다.
GREP 만약 당신 이 매우 큰 텍스트 파일 을 가지 고 있다 면,이전에 당신 은 이렇게 할 수 있 습 니 다:
지금 당신 은 이렇게 할 수 있 습 니 다.
4.567913.또는 이렇게:
4.567913.이 두 번 째 용법 은–block 10m 인 자 를 사 용 했 습 니 다.이것 은 커 널 마다 1 천만 줄 을 처리 한 다 는 것 입 니 다.이 매개 변수 로 각 CUP 커 널 이 몇 줄 의 데 이 터 를 처리 하 는 지 조정 할 수 있 습 니 다.
AWK 다음은 awk 명령 으로 매우 큰 데이터 파일 을 계산 하 는 예 입 니 다.일반적인 용법:
지금 이렇게:
4.567913.이것 은 좀 복잡 하 다.parallel 명령 중의–pipe 매개 변 수 는 cat 출력 을 여러 블록 으로 나 누 어 awk 에 호출 하여 많은 하위 계산 작업 을 형성 했다.이 계산 들 은 두 번 째 파 이 프 를 통 해 같은 awk 명령 에 들 어가 최종 결 과 를 출력 합 니 다.첫 번 째 awk 에는 세 개의 역 슬 래 쉬 가 있 는데 이것 은 GNU parallel 에서 awk 를 호출 하 는 데 필요 한 것 입 니 다.
WC 는 가장 빠 른 속도 로 파일 의 줄 수 를 계산 하 시 겠 습 니까?전통 적 인 방법:
지금 너 는 이렇게 해 야 한다.
4.567913.매우 교묘 합 니 다.먼저 parallel 명령 인'mapping'을 사용 하여 대량의 wc-l 호출 을 하여 서브 컴 퓨 팅 을 형성 하고 마지막 으로 파 이 프 를 통 해 awk 에 보 내 어 집합 합 니 다.
SED 는 거대 한 파일 에서 sed 명령 을 사용 하여 대량의 교체 작업 을 하고 싶 습 니까?일반적인 방법:
지금 당신 은 할 수 있 습 니 다:
4.567913.그리고 파이프 로 출력 을 지정 한 파일 에 저장 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기