다음 예제를 사용하여 단순 빌드, 병렬 빌드 및 분산 빌드에 대해 Build Catalyst를 사용하는 방법을 더 잘 이해할 수 있습니다.
단순 빌드(병렬 또는 분산이 아닌 빌드)의 경우, 다음과 같이 rafmake 명령을 실행하십시오.
rafmake [ -f makefile ] [ options ] ... [ targets ] ...
여기서 다음 목록은 운영 체제별 예제를 제공합니다.
% rafmake -u -f project.mk
% rafmake -v -f project.mk a.out
Y:\> rafmake INCL_DIR=C:\src\include
rafmake 명령은 병렬 빌드를 지원하며, 전체 빌드 시간을 줄이기 위해 동시에 빌드할 수 있는 독립 컴포넌트로 빌드를 분리합니다.
병렬 빌드를 실행하는 구문은 다음과 같습니다.
rafmake -J num [ -f makefile ] [ options ] ... [ targets ] ...
여기서 병렬 빌드를 실행하면 자원을 효율적으로 활용할 수 있습니다(특히 멀티코어 프로세서의 경우). 병렬 빌드에서 얻어지는 성능은 빌드의 유형에 따라 다릅니다. 예를 들어, CPU 중심 빌드의 경우 최적의 동시 빌드 작업 수는 프로세서(또는 코어)의 수와 같습니다. 그보다 많이 지정하는 경우 성능은 별로 향상되지 않습니다. 그러나 입출력 중심 빌드의 경우에는 병렬 작업 수를 늘리면 빌드 시간이 줄어듭니다. 자원에 맞는 최적의 동시 빌드 작업 수를 판별하기 위해 여러 가지 수로 몇 가지 빌드를 시도해 보십시오.
다음 목록은 운영 체제별 병렬 빌드의 예제를 제공합니다.
% rafmake -J 3 -f project.mk
Y:\> rafmake -J 5 INCL_DIR=C:\src\include software.exe
병렬 빌드는 한 컴퓨터의 자원만 사용할 수 있습니다. 빌드를 분산하면 병렬 빌드에서 한 단계 더 나아가 여러 컴퓨터에 빌드 로드가 분산됩니다.
빌드를 분산하려면 사용자 환경이 다음 요구사항을 충족해야 합니다.
빌드를 분산할 모든 컴퓨터에서 동일한 경로로 동일한 소스 코드를 액세스할 수 있어야 합니다. 일반적으로 NFS 마운트 공유에 소스 코드가 있는 경우(또한 모든 컴퓨터에서 동일한 경로에 마운트한 경우) 모든 빌드 컴퓨터의 동일한 경로에서 동일한 소스 디렉토리를 사용할 수 있습니다.
사용자가 호스트 컴퓨터에서 분산 빌드를 시작하는 경우 rafmake 명령은 빌드를 분산할 모든 컴퓨터에서 내부적으로 빌드 엔진(rafbe)을 시작합니다. 빌드 엔진은 Build Catalyst를 설치할 때 구성된 ssh 또는 rsh 명령을 사용하여 시작됩니다. /opt/rational/buildforge/buildcatalyst/etc/rafbe_starter 파일은 사용자가 설치 중에 선택한 원격 쉘로의 기호 링크입니다. 빌드를 시작하는 사용자는 선택한 원격 쉘을 사용하는 모든 컴퓨터에 비밀번호 없이 로그인할 수 있어야 합니다. 비밀번호 없이 로그인하면 빌드 엔진이 여러 컴퓨터에서 자동으로 시작될 수 있습니다. rsh 또는 ssh 명령 매뉴얼을 참조하여 비밀번호가 필요하지 않은 로그인을 설정하십시오.
빌드 호스트 파일에는 일반적으로 많은 컴퓨터의 호스트 이름 또는 IP 주소가 있는 여러 행이 있습니다. 이러한 컴퓨터는 빌드를 분산할 위치입니다. 파일에는 다른 옵션(예: -idle num)을 설명하는 행도 있습니다. 이 유형의 행은 아래 나열되는 컴퓨터에서 스케줄되는 빌드에 대해 컴퓨터가 얼마나 대기 상태여야 하는지 지정합니다. 명시적으로 언급되지 않는 경우 대기는 50으로 가정됩니다. 다음은 빌드 호스트 파일의 예제입니다.
### Contents of build hosts file
host1.mydomain.com
-idle 25
host2.mydomain.com
host2.mydomain.com
192.168.0.200
-idle 75
host3.mydomain.com
### End of build hosts file
이 예제에서 빌드는 host1, host2, host3 및 192.168.0.200의 네 컴퓨터에 분산됩니다. host1.mydomain.com 컴퓨터의 대기는 명시적으로 언급되지 않았으므로 50으로 가정합니다. host2 및 192.168.0.200 컴퓨터의 경우 대기는 25로 지정됩니다. 즉 해당 컴퓨터 중 하나가 75% 미만으로 로드되거나 사용 중(또는 25% 이상 대기)인 경우 빌드는 이 컴퓨터에 스케줄됩니다. 대기 중인 컴퓨터가 25% 미만인 경우에는 해당 컴퓨터에서 빌드가 스케줄되지 않습니다. 또한 예제는 host2 컴퓨터를 두 번 나열합니다. 따라서 두 개의 병렬 빌드 스레드가 host2 컴퓨터에서 시작될 수 있습니다. 컴퓨터 구성에 따라 빌드에 가장 잘 맞는 자원을 사용하도록 빌드 호스트 파일을 수정할 수 있습니다.
빌드 호스트 파일을 작성한 후 다음 명령 구문을 사용하여 분산 빌드를 시작할 수 있습니다.
rafmake -J num -B build_hosts_file [ -f makefile ] [ options ] ... [ targets ] ...
-J 옵션의 num 값은 모든 컴퓨터에 대한 빌드 스레드의 총 수를 지정합니다.
-B 옵션을 사용하지 않으면 rafmake 명령은 분산 빌드 대신 병렬 빌드를 수행합니다. -B 옵션과 올바른 빌드 호스트 파일을 지정하면 빌드 엔진은 빌드 호스트 파일에 지정된 여러 컴퓨터에 분산 빌드를 스케줄합니다.