incredibuild 도구

다음으로 이동:http://blog.csdn.net/zhangjian33446/article/details/6056878
설정 은 이 블 로그 의 앨범 에 있 는 그림 을 참고 할 수 있 습 니 다:http://blog.csdn.net/chief1985/article/details/6101566
프로젝트 가 크 면 교차 참조 가 많 으 면 컴 파일 속도 가 느 려 집 니 다.   그래서 공동 컴 파일 하면 좋 을 것 같 아 요.   최근 에 이 공 구 를 봤 어 요.   간단하게 기록 해.
 
1.incredibuild 작업 원리:본질 적 으로 분포 식 계산 이다.  서버 를 통한 균형 입 니 다.   컴 파일 을 여러 컴퓨터 에 분포 하여 진행 하 다.   쉽게 말 하면 한 컴퓨터 가 하 는 일 을 여러 컴퓨터 에 나 누 어 하 는 것 이다.   이렇게 해서 컴 파일 속 도 를 크게 높 였 다.
2.사용 방법:incredibuild 서버 와 클 라 이언 트   그 러 니까 코 디 네 이 터 랑 에이전트.  서버 에 coordinator 설치  우리 가 사용 하 는 컴퓨터 에 에이전트 를 설치 하 다.  그리고 쓸 수 있어 요.   설명 하 자 면 에이전트 와 우리 가 사용 하 는 vs 는 잘 결합 할 수 있다.   그 밖 에 방화벽 과 플러그 인 이 이 도구 에 미 친 영향 에 주의 하 세 요. 
 
이상 은 자신 이 이 물건 에 대한 이해 와 사용 입 니 다.   구체 적 이 고 상세 한 사용 은 아직 자세히 해 본 적 이 없다.  다음은 몇 개의 문장 이다.   이 도구 말씀 하 시 는 거 예요.   괜찮다   기록 하 다
 
다음으로 이동:http://blog.csdn.net/hkx1n/archive/2010/08/12/5807194.aspx
IncrediBuild 공동 컴 파일
IncrediBuild 는 프로 그래 밍 개발 도구 로 C/C++의 컴 파일 과 생 성 속 도 를 가속 화 할 수 있 습 니 다.Visual Studio 개발 환경 에 틈새 없 이 통합 할 수 있 으 며 Xoreax 의 다 중 스 레 드 처리 기술 을 사용 하여 프로젝트 파일 의 코드 를 바 꿀 필요 가 없습니다. 
컴 파일 속도 가 느 린 것 은 C++/C 프로그램 언어의 가장 큰 약점 입 니 다.개발 자 는 몇 시간 동안 워크스테이션 에서 전체 제품 의 생 성 을 기다 리 거나 하루 에 여러 번 10 분 씩 증가 하 는 컴 파일 의 완성 을 기다 리 는 것 입 니 다.작업 효율 이 낮 고 시간 을 낭비 합 니 다. 
IncrediBuild 는 이에 대해 처음으로 독특 하고 효과 적 인 해결 방안 을 제공 합 니 다.Xoreax 분포 식 컴 파일(다 중 스 레 드 처리)기술 을 사용 하면 Visual Studio procject 의 컴 파일 속도 가 크게 향상 되 고 프로젝트 파일 코드 를 바 꿀 필요 가 없습니다. 
IncrediBuild 는 빈 틈 없 이 Visual Studio 개발 환경 에 통합 되 고 강 한 명령 행 인터페이스 가 있어 Microsoft Visual Studio 개발 환경 을 크게 강화 했다.
비록 현재 컴퓨터 의 연산 속도 가 계속 높 아 지고 있 지만 대형 소프트웨어 의 컴 파일 속 도 는 아직도 긴 과정 이다.내 가 있 는 프로젝트 는 소프트웨어 크기 가 약 200 K 줄 이 고 VC6 에서 의 컴 파일 시간 은 3 분(P4 1.8G,512 M)이 며 교차 컴 파일 할 때 더욱 느리다.컴 파일 속 도 를 높이 면 전기 테스트 의 효율 을 직접적 으로 높 일 수 있다.본 고 는 컴 파일 속 도 를 높이 는 효과 적 인 방법 중 하나 인 분포 식 컴 파일 을 소개 한다.분포 식 컴 파일 의 원 리 는 매우 간단 하 다.즉,컴 파일 된 전체 작업량 을 분포 계산 방법 을 통 해 여러 컴퓨터 에 분배 하여 집행 하 는 것 이다.이렇게 하면 매우 큰 효율 을 향상 시 킬 수 있다.분포 식 컴 퓨 팅 기술 이 상대 적 으로 성숙 하기 때문에 현재 볼 수 있 는 분포 식 컴 파일 소프트웨어 도 비교적 많다.일반적으로 분포 식 컴 파일 소프트웨어 는 컴 파일 러 가 아니 라 특정한 컴 파일 러 에 붙 어 있 는 분포 컴 퓨 팅 관리 소프트웨어 이다.특정한 컴 파 일 러 에 대해 분포 식 컴 파일 을 실현 할 수 있 도록 합 니 다.흔히 볼 수 있 는 분포 식 컴 파 일 러 는 보통 특정한 C/C++컴 파 일 러 에 대응 합 니 다.예 를 들 어 GCC,Visual C++,이 컴 파일 러 들 은 상당히 광범 위 하고 개방 도가 높 기 때문에 분포 식 컴 파일 을 실현 하 는 의미 가 더욱 크다.다음은 Visual C++와 GCC 를 예 로 들 어 두 가지 전형 적 인 분포 식 컴 파일 소프트웨어 를 설명 한다.1)IncrediBuild 는 Visual C++에 대응 하 는 분포 식 컴 파일 소프트웨어 로 Visual C++의 강력 한 IDE 확장 기능 을 통 해 매우 우호 적 인 인터페이스 를 가진다.전체 분포 식 컴 파일 과정 을 사용자 에 게 직관 적 으로 보 여줄 수 있 고'가상 컴퓨터'기술 을 통 해 컴 파일 할 수 있 는 참여 자 는 컴 파일 시작 자 와 서로 다른 시스템 설정(Windows 운영 체제 버 전,라 이브 러 리 파일 등)을 가 질 수 있 으 며 참여 자 기계 에 Visual C++를 설치 하지 않 아 도 됩 니 다.IncrediBuild 는 특정한 컴퓨터 를 중재자 로 해 야 합 니 다.다른 모든 컴퓨터 는 고객 으로서 중재자 의 장점 이 있 습 니 다.모든 클 라 이언 트 가 시작 하 는 컴 파일 요 구 를 통일 적 으로 배정 할 수 있 습 니 다.한 고객 이 컴 파일 요 구 를 하면 중재자 가 다른 고객 의 CPU 여유 상황 에 따라 분포 식 컴 파일 을 배정 합 니 다.여러 고객 이 동시에 컴 파일 요 구 를 할 때 중재자 가 자동 으로 균형 적 으로 분포 하여 부담 을 계산 합 니 다.컴 파일 참여 자가 CPU 를 너무 많이 차지 하지 않도록 합 니 다.저희 프로젝트 에서 IncrediBuild 를 사용 한 결 과 는 다음 과 같 습 니 다.사용 하지 않 음:3 분 5 클 라 이언 트:40 초 10 클 라 이언 트:25 초 동안 IncrediBuild 가 컴 파일 성능 을 크게 향상 시 켰 고 이러한 성능 을 향상 시 키 는 동시에 중재자 와 컴 파일 참여 자의 CPU 점용 률 이 낮 습 니 다.상당히 높 은 가용성 을 유지 합 니 다.이것 은 매우 드 문 일이 다.IncridiBuild 의 단점 은 현재 Visual C++6 컴 파일 러 와.Net 컴 파일 러 만 지원 하고 Windows 플랫폼 에 만 적용 된다 는 것 이다.적용 범위 가 상대 적 으로 좁다.2)DistCC 는 GNU 의 분포 식 C++컴 파일 러 로 모든 GCC 호 환 에 적용 되 는 C+컴 파일 러 이 며 DistCC 도 좋 은 크로스 플랫폼 특성 을 가지 고 있 으 며 Linux,XFree 86 을 지원 한다.CygWin 등 플랫폼 입 니 다.사용 범위 가 상당히 넓 습 니 다.DistCC 와 IncrediBuild 의 차 이 는 DistCC 와 중재 자 를 사용 하지 않 고 클 라 이언 트 가 다른 클 라 이언 트 에 대해 직접 컴 파일 요청 을 합 니 다.따라서 모든 클 라 이언 트 는 다른 클 라 이언 트 의 위 치 를 알 아야 하고 여러 클 라 이언 트 가 컴 파일 요청 을 할 때 균형 적 으로 처리 하기 가 쉽 지 않 습 니 다.
 
다음으로 이동:http://blog.csdn.net/lacsis/archive/2009/08/27/4486783.aspx
 
초기 분산 컴 파일 시스템 IncrediBuild(회전)
초기 분산 컴 파일 시스템 IncrediBuild
프로젝트 의 복잡성 이 점점 증가 함 에 따라 컴 파일 시간 은 관심 을 가 져 야 할 문제 가 되 기 시작 했다.최근 에 제 프로젝트 에서 C++의 템 플 릿 기술 을 대량으로 사용 하여 컴 파일 시간 이 매우 길 었 습 니 다.다른 방법 을 많이 시 도 했 지만 효과 가 뚜렷 하지 않다.오늘 은 분포 식 컴 파일 시스템 을 시도 해 보 았 다. IncrediBuild ,효과 가 있 을 것 같 아서 간단하게 기록 해 드 리 겠 습 니 다.
테스트 전에 저 는 프로젝트 에 대해 몇 번 rebuild 를 진행 하여 컴 파일 시간 을 확인 하 였 습 니 다.
  • scons mytarget  : 기본 매개 변 수 를 사용 하여 컴 파일 시간 은 20 분 입 니 다
  • scons -j16 mytarget  : scons 의 병렬 컴 파일 을 사용 하면 나의 쌍 핵 CPU 를 충분히 이용 할 수 있 고 컴 파일 시간 은 13 분 입 니 다

  • IncrediBuild 는 분포 식 컴 파일 시스템 으로 두 부분 으로 구성 되 어 있 습 니 다.Coordinator 와 Agent,Coordinator 는 중앙 작업 할당 기 와 유사 하여 각 컴 파일 Agent 를 관리 합 니 다.
    저 는 컴 파일 할 수 있 는 컴퓨터 가 두 대 있 습 니 다.데스크 톱 Kingkong 은 Intel E5200 이 고 노트북 Ninja 는 Intel T7100 입 니 다.모두 쌍 핵 CPU 입 니 다.이 구조 에 따라 저 는 Kingkong 에 Coordinator 를 설치 한 다음 에 Agent 를 각각 Kingkong 과 Ninja 에 설치 합 니 다.
    IncrediBuild 를 진행 하려 면 xml 파일 을 설정 해 야 합 니 다.예 를 들 어 제 것 은:<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <Profile FormatVersion="1"> <Tools> <Tool Filename="python" AllowIntercept="true" /> <Tool Filename="cl" AllowRemote="true" VCCompiler="True"/> <Tool Filename="link" AllowRemote="false" /> </Tools> </Profile>이 파일 을 incredibuild.xml 로 저장 합 니 다.그리고 콘 솔 에서 Incredit Build 를 시작 합 니 다.] XGConsole /command="scons -u -j16 mytarget" /openmonitor /profile="incredibuild.xml"시작 하면 도형 화 된 컴 파일 인터페이스 가 전체 분포 식 컴 파일 과정 을 기록 하기 시작 합 니 다.
    컴 파일 이 끝 난 후 분석 보고서 에서 보 듯 이 이번 컴 파일 은 10 분 과 10 초 걸 렸 다.13 분 짜 리 단기 컴 파일 보다 별로 높 아 지지 않 은 것 같 습 니 다.이 유 를 자세히 살 펴 보면 그림 에서 보 듯 이 제 프로젝트 는 CUDA 의 컴 파일 러 nvcc 를 사 용 했 습 니 다.이 컴 파일 러 는 IncrediBuild 가 지원 하 는 것 이 아니 기 때문에 원 격 Agent 에 할당 되 어 컴 파일 할 수 없습니다.그러나 cl 이라는 MSVC 의 컴 파 일 러 에 대해 그림 에서 알 수 있 듯 이 분포 식 컴 파 일 러 의 효 과 를 확실히 나 타 냈 다.그래서 컴 파일 속 도 를 계속 향상 시 키 려 면 두 가지 측면 이 있 습 니 다.하 나 는 IncrediBuild 가 nvcc 컴 파일 러 를 어떻게 지원 하 는 지 보 는 것 입 니 다.둘째,더 많은 에이전트 를 추가 하 는 것 이다.(그러나 더 많은 에이전트 를 추가 하 는 것 은 나의 이 프로젝트 에 대해 그다지 효율 적 이지 않 을 것 같다.왜냐하면 나의 병목 은 nvcc 의 컴 파일 이 너무 느 리 기 때문이다.)
    물론 저도 이 시스템 을 처음 시도 해 봤 습 니 다.많은 설정 에 대해 잘 모 릅 니 다.예 를 들 어 저 는 이상 합 니 다.사용 하 는 제3자 라 이브 러 리 는 어떻게 원 격 컴퓨터 에 할당 되 었 습 니까?IncrediBuild 는 설정 할 때 모든 Agent 에 버퍼 를 할당 합 니 다.기본 값 은 4G 입 니 다.이것 이 바로 컴 파일 에 의존 하 는 파일 을 저장 하 는 곳 이 라 고 생각 합 니 다.물론 구체 적 으로 어떻게 해 야 할 지 더 모색 해 야 합 니 다.
    한 마디 로 하면 순수 C++의 프로젝트 에 대해 저 는 이 시스템 이 컴 파일 속 도 를 크게 향상 시 킬 수 있 을 것 이 라 고 생각 합 니 다.
     

    좋은 웹페이지 즐겨찾기