하드웨어를 설치하는 것은 간단히 알 수 있다. 주요과정은 다음과 같다:
여기서 부터 실제적인 작업에 들어갑니다! 주요과정:
/tmp를 위해 1 GB를 할당하는 것이 좋은 생각이라는 것을 나중에 깨달을 것이다. #2.0.36)을 내려받은 후 펜티엄 GNU CC 컴파일러 pgcc 
http://www.goof.com/pcg/ ( 펜티엄 II에 최적화된 코드를 생성시킴)를 이용하여 SMP 지원과 하드웨어에 알맞은 선택사항을 고려하여 커널을 컴파일한다. 다음의 최적화 선택사항들이 사용된다: pgcc -mpentiumpro -06-fno-inline-functions SMP 지원을 사용하는 것은 커널 설정 메뉴에서 볼 수 있는 Processor type and features에 있는 버튼을 사용함으로써 가능하다.( make xconfig를 실행하면서 시작된다.
http://www.csua.berkeley.edu/~gam3/knfsd/가 향상된 NFS 성능을 얻기위해 그전에 설치되었던 사용자-공간 NFS 서버를 대체하여 설치되어 있다. 빠른 설치를 바라는 경우에는 레드햇 RPM 꾸러미를 
http://rufus.w3.org/linux/RPM/에서 구하여 설치하면 된다. 디폴트 선택사항이 사용된다.ssh는 
http://www.cs.hut.fi/ssh/에서 구할 수 있고 컴파일하여 설치할 수 있다. (외부로 부터의 안전한 접속을 위해서) ssh-1.2.26는 ssh-2.0.11보다 선호된다. 왜냐하면 ssh v2.x는 역방향으로 호환성이 없을뿐더러 많이 느리기 때문이다. sshd 데몬은 /etc/rc.d/rc3.d에서 runlevel 3에서 시작한다. 최근에 ssh레드햇 RPM이 
http://rufus.w3.org/linux/RPM/에서 제공되고 있고 다른 RPM 들도 설치하기가 편해지고 있다.eth1으로서 IP를 128.118.170.11로 설정되어있고 다른 하나는 사설 네트워크에 연결되어서 dummy IP 주소를 10.0.0.1로 할당되어 있다. Donald Becker에 의해 만들어진 3COM 3c905B 어댑터에 관한 최신 드라이버는 (3c59x.c v0.99H 
http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html) 커널내부로 컴파일되어 100Mbit/sec Full-duplex 연결을 보장한다. 이는 vortex-diag 유틸리티를 이용하여 
http://cesdis.gsfc.nasa.gov/linux/diag/vortex-diag.c를 이용하여 확인할 수 있다. 설정을 위해서 다음 파일을 변경해야한다: /etc/sysconfig/network, /etc/sysconfig/network-scripts/ifcfg-eth0와 /etc/sysconfig/network-scripts/ifcfg-eth1. 여기에 변경후 모습이다:
/etc/sysconfig/network: NETWORKING=yes FORWARD_IPV4=no HOSTNAME=cocoa.ihpca.psu.edu DOMAINNAME=ihpca.psu.edu GATEWAY=128.118.170.1 GATEWAYDEV=eth1 NISDOMAIN=ihpca.psu.edu /etc/sysconfig/network-scripts/ifcfg-eth0: DEVICE=eth0 IPADDR=10.0.0.1 NETMASK=255.255.255.0 NETWORK=10.0.0.0 BROADCAST=10.0.0.255 ONBOOT=yes BOOTPROTO=none USERCTL=no /etc/sysconfig/network-scripts/ifcfg-eth1: DEVICE=eth1 IPADDR=128.118.170.11 NETMASK=255.255.255.0 NETWORK=128.118.170.0 BROADCAST=128.118.170.255 ONBOOT=yes BOOTPROTO=none USERCTL=no
/etc/inetd.conf파일의 다음 줄의 주석을 없애줌으로써 가능하다.
bootps dgram udp wait root /usr/sbin/tcpd bootpd리눅스 부팅 플로피는 3c905B 네트워크 어댑터를 지원하는 커널을 이용해서 준비할 수 있고 이 어댑터는 각 클라이언트 노드들이 부팅이 되고 각자 고유의 96-bit 네트워크 주소글 알려준다. (에를 들어 00C04F6BC052) 이 주소를 이용하면
/etc/bootptab파일에 다음과 같이 설정해야한다:
        .default:\
                :hd=/boot:bf=install.ks:\
                :vm=auto:\
                :dn=hpc.ihpca.psu.edu:\
                :gw=10.0.0.1:\
                :rp=/boot/client/root:
        node1:ht=ethernet:ha=00C04F6BC0B8:ip=10.0.0.2:tc=.default
        node2:ht=ethernet:ha=00C04F79AD76:ip=10.0.0.3:tc=.default
        node3:ht=ethernet:ha=00C04F79B5DC:ip=10.0.0.4:tc=.default
        .
        .
        .
        node25:ht=ethernet:ha=00C04F79B30E:ip=10.0.0.26:tc=.default
/etc/hosts파일은 다음과 같이 편집한다:
        127.0.0.1       localhost       localhost.localdomain
        # Server [COCOA]
        128.118.170.11 cocoa.ihpca.psu.edu cocoa.aero.psu.edu cocoa
        # IP address <--> NAME mappings for the individual nodes of the cluster
        10.0.0.1        node0.hpc.ihpca.psu.edu node0           # Server itself!
        10.0.0.2        node1.hpc.ihpca.psu.edu node1
        10.0.0.3        node2.hpc.ihpca.psu.edu node2
        .
        .
        .
        10.0.0.26       node25.hpc.ihpca.psu.edu node25
/etc/hosts.conf파일에는 다음과 같은 내용을 포함하게 한다:
        order hosts,bind
이는 DNS 서버로 부터 어떠한 요청이 있기전에 /etc/hosts파일에 있는 IP 주소를 강제로 찾게 해준다./etc/exports에 다음과 같이 추가하면 된다:
        /boot           node*.hpc.ihpca.psu.edu (ro,link_absolute)
        /mnt/cdrom      node*.hpc.ihpca.psu.edu (ro,link_absolute)
        /usr/local      node*.hpc.ihpca.psu.edu (rw,no_all_squash,no_root_squash)
        /home1          node*.hpc.ihpca.psu.edu (rw,no_all_squash,no_root_squash)
        /home2          node*.hpc.ihpca.psu.edu (rw,no_all_squash,no_root_squash)
        /home3          node*.hpc.ihpca.psu.edu (rw,no_all_squash,no_root_squash)
        /home4          node*.hpc.ihpca.psu.edu (rw,no_all_squash,no_root_squash)
/boot/install.ks은 다음과 같다:
        lang en
        network --bootproto bootp
        nfs --server 10.0.0.1 --dir /mnt/cdrom
        keyboard us
        zerombr yes
        clearpart --all
        part / --size 1600
        part /local --size 2048
        part /tmp --size 400 --grow
        part swap --size 127
        install
        mouse ps/2
        timezone --utc US/Eastern
        rootpw --iscrypted kQvti0Ysw4r1c
        lilo --append "mem=512M" --location mbr
        %packages
        @ Networked Workstation
        %post
        rpm -i ftp://10.0.0.1/pub/CLUSTER/RPMS/wget-1.5.0-2.i386.rpm
        rpm -i ftp://10.0.0.1/pub/CLUSTER/RPMS/xntp3-5.93-2.i386.rpm
        /usr/bin/wget ftp://10.0.0.1/pub/CLUSTER/kernel/vmlinuz -O/boot/vmlinuz
        /usr/bin/wget ftp://10.0.0.1/pub/CLUSTER/conf/lilo.conf -O/etc/lilo.conf
        /sbin/lilo
        /usr/bin/wget ftp://10.0.0.1/pub/CLUSTER/conf/hosts.equiv -O/etc/hosts.equiv
        sed "s/required\(.*securetty\)/optional\1/g" /etc/pam.d/rlogin > /tmp/rlogin
        mv /tmp/rlogin /etc/pam.d/rlogin
레드햇 KickStart 설치에 대해 더욱더 많은 정보는 
http://www.cache.ja.net/dev/kickstart/KickStart-HOWTO.html에서 얻을 수 있습니다.위에서 언급한 설치명령중에서 /etc/pam.d/rlogin의 처음 라인은 다음과 같이 변경한다:
        auth       optional     /lib/security/pam_securetty.soauth       optional     /lib/security/pam_securetty.so
이것은 rlogin/rsh를 동작시켜 서버에서 클라이언트로 패스워드 없이 연결하게 한다. 이는 클라이언트 노드의 소프트웨어 관리에 좋은 방법이다. 또한 /etc/hosts.equiv파일은 다음과 같다:
        node0
        node1
        node2
        node3
        .
        .
        .
        node25
레드햇 리눅스 5.1 CD-ROM을 NFS를 각 클라이언트에 전달하는 서버에서 /mnt/cdrom으로 마운트 시키고 SMP를 지원하는 새로운 커널을 서버와 같은 방법으로 컴파일하고 레드햇 부트 디스켓에 있는 기존의 커널을 바꾼다. 이 커널은 클라이언트 노드에서 사용하기 때문에 특별히 많은 옵션이 필요하지 않다. 더우기 BOOTP를 이용해서 커널 레벨 자동설정은을 위한 옵션은 커널설정메뉴에서 네트워킹 선택사항에서 가능하게 할 수 있다. 이는 노드가 자동적으로 부팅과정중에 서버로 부터 ip를 부여받을 때 요구된다. 부트디스의 설정파일에 관한 지원은 KickStart 모드에서 직접적으로 부팅하기위해서 변형된다. 각 클라이언트 설정을 위해 필요한 모든 것은 부트 디스크를 집어넣고 워크스테이션에 전원을 키고 자동설정이 끝날 때까지 기다리면 된다.brsh(
http://www.beowulf.org/software/RPMS/beobase-2.0-1.i386.rpm)와 같은 유용한 유틸리티들은 각 클라이언트 노드들에게 rsh를 이용해 동일한 명령을 내리도록하기위해 설치된다. NIS는 각 클라이언트 노드에 사용자 로그인을 관리하기 위해 설치될 수 있지만 대신에 간단한 쉘 스크립트를 이용해서 서버의 /etc/passwd, /etc/shadow와 /etc/group파일을 분배할 수 있다./etc/inetd.conf에서 사용이 불가능하게 되고 각 클라이언트 노드들은 다음과 같이 보이게 된다:
        shell   stream  tcp     nowait  root    /usr/sbin/tcpd  in.rshd
        auth    stream  tcp     nowait  nobody  /usr/sbin/in.identd in.identd -l -e -o 
http://www.mcs.anl.gov/mpi/에서 받을 수 있으며 pgcc를 이용하여 컴파일하면 된다. /usr/local/ 파티션에 설치하는 것은 큰 문제가 없을 것이다. mpif77스크립트는 사용자의 요구에 맞게 변형되었고 비슷한 mpif90또한 만들어 졌다. /usr/local/mpi/util/machines/machines.LINUX에 각 클라이언트에 대해 두가지 입력을 하면된다. (dual-processor SMP 노드를 사용하는 경우도 마찬가지다.) mpirun을 이용하여 프로그램을 수행한다.
http://www.scri.fsu.edu/~pasko/dqs.html에서 다운로드 할 수 있고 컴파일하여 /usr/local/DQS/에 설치되고 NFS를 이용하여 모든 클라이언트를 이용해서 접근가능 하게 한다. 적절한 서버와 클라이언트 변화들은 /etc/services의 서비스들을 첨가하고 서버에서 qmaster를 클라이언트에서는 dqs_execd를 시작하여 작동하게 할 수 있다. 하지만 몇몇 문제점들이 닥칠 수도 있다. 이는 DQS의 잘못된 문서화때문이다. 본저자가 DQS 설정을 하여 클라이언트 노드가 인식하도록 하기까지 너무 오랜 시간이 걸렸지만, 한번 설정이 끝나면 나머지는 쉽게 할 수 있다. Wrapper 쉘 스크립트는 DQS 결과를 잘만들어 내게하고 조금의 향상을 시키는 데 필요한 qsub, qstat와 qdel를 위해 본 저자가 변형되었다. 예를 들어 qstat은 변형을 하여 queue에 있는 기급한 작업에 의해 요청되는 노드의 수를 보여주게 만들었다. 또한 다른 세가지 qinfo,qload와 qmem는 각 노드들을 위해서 유용한 load 데이터를 주게 만들었고 클러스터 리소스 이용에 사용되게 만들어졌다.pgcc컴파일러를 이용하는 것이 C/C++ 코드를 위해 권장된다. 특히 전형적인 FPU intensive number crunching 노드를 위해 pgcc를 -mpentiumpro -06 -funroll-all-loops옵션를 이용하면 gcc를 이용하는 것 보다 실행시간이 30% 향상을 가져온다.이 문서는 Anirudh Modi <htmlurl url="mailto:anirudh-modi@psu.edu" name="anirudh-modi@psu.edu">에 의해 유지된다. 문제가 있거나 제안사항이 있으면 본저자에게 메일을 주십시오.