라즈베리 파이 3b+ 에 lxde 올리지 않고 콘솔로만 해서 메모리 최대한 확보하고 쓰는 중인데

비디오 메모리 64MB 정도 먹혔는지 가용 메모리가 706MiB 정도.

$ free -h
              total        used        free      shared  buff/cache   available
Mem:          924Mi        50Mi       706Mi       4.0Mi       166Mi       817Mi
Swap:          99Mi       9.0Mi        90Mi

 

그런 이유로 텐서플로우 빌드시 rpi 메모리가 2G 넘지 않으면 코어 하나만 쓰게 되어있다.

FREE_MEM="$(free -m | awk '/^Mem/ {print $2}')"
# Use "-j 4" only memory is larger than 2GB
if [[ "FREE_MEM" -gt "2000" ]]; then
  NO_JOB=4
else
  NO_JOB=1
fi

 

그래서 distcc 통해 개별 노드에서 2개씩, 총 3개 노드/ 6 core 쓰도록 하니

35~40분 정도 걸리던 빌드가 8분 40초 만에 끝내준다.

real    8m39.261s
user    2m47.210s
sys     0m51.071s

 

개별 노드에서 병렬시 2개 까지만 허락하도록 해놔야지 안그러면

메모리 부족으로 스왑한다고 io 폭주해서 라즈베리가 먹통이 된다.

/etc/default/distcc

#
# You can specify a maximum number of jobs, the server will accept concurrently
#
# JOBS=""

JOBS="2"

'프로그램 사용 > distcc & ccache' 카테고리의 다른 글

rpi distcc with ccache 실패 ㅠㅠ  (0) 2021.04.30
rpi distcc 성공인데 실패  (0) 2021.04.28
distcc hosts 파일과 순서  (0) 2016.10.19
distcc-pump 시도..  (0) 2016.10.18
distcc 를 DHCP 에서.. 2?  (0) 2016.10.18
Posted by 구차니

그런 이유로 distcc-pump 모드 시도 ㅠㅠ

 

[링크 : https://itmir.tistory.com/454]

[링크 : https://www.whatwant.com/entry/Ubuntu에서-ccache-사용하기]

'프로그램 사용 > distcc & ccache' 카테고리의 다른 글

distcc 만세!  (0) 2021.05.12
rpi distcc 성공인데 실패  (0) 2021.04.28
distcc hosts 파일과 순서  (0) 2016.10.19
distcc-pump 시도..  (0) 2016.10.18
distcc 를 DHCP 에서.. 2?  (0) 2016.10.18
Posted by 구차니

distcc 패키지 설치하고, tensorflow lite 빌드 시도

원래는 30분 정도 걸렸는데 (rpi 3b, 4core 기준) 얼마나 줄어들려나?

(느낌으로는 SD 메모리라 disk io로 인해 오히려 더 느려질지도 모르겠다는 불안감이..)

 

접속이 안되는 것 같아서 다른 문서들을 자세히 보니 설정을 제대로 안했네!

distcc[946] (dcc_build_somewhere) Warning: failed to distribute, running locally instead
distcc[946] (dcc_parse_hosts) Warning: /home/pi/.distcc/zeroconf/hosts contained no hosts; can't distribute work
distcc[946] (dcc_zeroconf_add_hosts) CRITICAL! failed to parse host file.

 

/etc/default/ditscc 파일에서 allow와 listener를 수정해주고 service distcc restart 하면 끝!

$ cat /etc/default/distcc
# Defaults for distcc initscript
# sourced by /etc/init.d/distcc

#
# should distcc be started on boot?
#
 STARTDISTCC="true"

#STARTDISTCC="false"

#
# Which networks/hosts should be allowed to connect to the daemon?
# You can list multiple hosts/networks separated by spaces.
# Networks have to be in CIDR notation, e.g. 192.168.1.0/24
# Hosts are represented by a single IP address
#
# ALLOWEDNETS="127.0.0.1"

ALLOWEDNETS="127.0.0.1 192.168.0.0/16"

#
# Which interface should distccd listen on?
# You can specify a single interface, identified by it's IP address, here.
#
# LISTENER="127.0.0.1"

LISTENER=""

#
# You can specify a (positive) nice level for the distcc process here
#
# NICE="10"

NICE="10"

#
# You can specify a maximum number of jobs, the server will accept concurrently
#
# JOBS=""

JOBS=""

#
# Enable Zeroconf support?
# If enabled, distccd will register via mDNS/DNS-SD.
# It can then automatically be found by zeroconf enabled distcc clients
# without the need of a manually configured host list.
#
 ZEROCONF="true"

#ZEROCONF="false"

 

MAKEFLAGS에 CC=/usr/lib/distcc/gcc 이 포인트 이긴 한데..

tensorflow/tensorflow/lite/tools/make $ cat ./build_rpi_lib.sh
#!/bin/bash
# Copyright 2017 The TensorFlow Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ==============================================================================

set -x
set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
TENSORFLOW_DIR="${SCRIPT_DIR}/../../../.."

FREE_MEM="$(free -m | awk '/^Mem/ {print $2}')"
# Use "-j 4" only memory is larger than 2GB
if [[ "FREE_MEM" -gt "2000" ]]; then
  NO_JOB=4
else
  NO_JOB=1
fi

export MAKEFLAGS="CXX=/usr/lib/distcc/g++ CC=/usr/lib/distcc/gcc"
make -j 8 TARGET=rpi -C "${TENSORFLOW_DIR}" -f tensorflow/lite/tools/make/Makefile $@
#make -j ${NO_JOB} CC=/usr/lib/distcc/gcc TARGET=rpi -C "${TENSORFLOW_DIR}" -f tensorflow/lite/tools/make/Makefile $@

 

/etc/distcc/hosts 에 사용할 노드 이름을 넣으면 되는데 자기 자신이 들어가지 않으면

distcc 에서는 슬레이브 노드들로만 빌드를 하게 된다.

# As described in the distcc manpage, this file can be used for a global
# list of available distcc hosts.
#
# The list from this file will only be used, if neither the
# environment variable DISTCC_HOSTS, nor the file $HOME/.distcc/hosts
# contains a valid list of hosts.
#
# Add a list of hostnames in one line, seperated by spaces, here.
#
tf2
tf3
+zeroconf

 

가끔 이런거 나오는데 그냥 무시하면 zeroconf에 의해서 붙는지 슬레이브 노드(?) 쪽 cpu를 빨아먹긴 한다.

distcc[1323] (dcc_build_somewhere) Warning: failed to distribute, running locally instead
distcc[1332] (dcc_build_somewhere) Warning: failed to distribute, running locally instead

 

[링크 : http://openframeworks.cc/ko/setup/raspberrypi/raspberry-pi-distcc-guide/]

[링크 : http://jtanx.github.io/2019/04/19/rpi-distcc-node/]

 

+

/var/log/distcc.log를 보는데

정상적으로 잘되면 COMPILE_OK가 뜨지만

어느순간 갑자기 client fd disconnected가 뜨면서 빌드가 멈춘다.

근데 time:305000ms 정도 대충 5분 timewait 걸리는것 같아서

오히려 안하니만 못한 상황..

distccd[14090] (dcc_job_summary) client: 192.168.52.209:40940 COMPILE_OK exit:0 sig:0 core:0 ret:0 time:16693ms g++ tensorflow/lite/kernels/cpu_backend_gemm_eigen.cc
distccd[14091] (dcc_collect_child) ERROR: Client fd disconnected, killing job
distccd[14091] (dcc_writex) ERROR: failed to write: Broken pipe
distccd[14091] (dcc_job_summary) client: 192.168.52.209:40932 CLI_DISCONN exit:107 sig:0 core:0 ret:107 time:307172ms

 

아무튼 위와 같은 에러를 내며 뻗을때 개별 노드에서는 이런식으로 IO가 미쳐 날뛴다.

--total-cpu-usage-- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read  writ| recv  send|  in   out | int   csw

  5   2  10  83   0| 928k 4048k|1063B  252B|  68k 2040k|1830  3320
  0   3  27  69   0|7840M   27M|2919k   73k|1512k   11M| 245k  402k missed 238 ticks
  2   1   0  97   0| 176k    0 |   0     0 |8192B    0 |  19    23  missed 2 ticks

 

+

cpp,lzo를 넣어서 해볼까?

[링크 : https://wiki.gentoo.org/wiki/Distcc/ko]

 

+

export MAKEFLAGS="CXX=/usr/lib/distcc/g++ CC=/usr/lib/distcc/gcc"
#export MAKEFLAGS="CXX=/usr/bin/distcc-pump CC=/usr/bin/distcc-pump"
make -j 8 TARGET=rpi -C "${TENSORFLOW_DIR}" -f tensorflow/lite/tools/make/Makefile $@
#make -j ${NO_JOB} CC=/usr/lib/distcc/gcc TARGET=rpi -C "${TENSORFLOW_DIR}" -f tensorflow/lite/tools/make/Makefile $@

 

되는데 pump가 아닌거랑 동일하게 io가 폭주해서 뻗는건 동일하다.

$ distcc-pump ./build_rpi_lib.sh

 

+

distccmon-text 는 slave node가 아니라 server node에서 해야 하는구나..

'프로그램 사용 > distcc & ccache' 카테고리의 다른 글

distcc 만세!  (0) 2021.05.12
rpi distcc with ccache 실패 ㅠㅠ  (0) 2021.04.30
distcc hosts 파일과 순서  (0) 2016.10.19
distcc-pump 시도..  (0) 2016.10.18
distcc 를 DHCP 에서.. 2?  (0) 2016.10.18
Posted by 구차니

DISTCC_HOSTS는 왼쪽 부터 오른쪽 순서로 우선순위가 결정된다.

왼쪽이 가장 선호되는 호스트 이고, 가장 마지막이 선호도가 낮아진다.

그런 이유로 가장 마지막에 localhost를 넣어 주는게 좋다고 한다.


Host Specifications


A "host list" tells distcc which machines to use for compilation. In order, distcc looks in the $DISTCC_HOSTS environment variable, the user's $DISTCC_DIR/hosts file, and the system-wide host file. If no host list can be found, distcc emits a warning and compiles locally.

The host list is a simple whitespace separated list of host specifications. The simplest and most common form is a host names, such as


localhost red green blue

distcc prefers hosts towards the start of the list, so machines should be listed in descending order of speed. In particular, when only a single compilation can be run (such as from a configure script), the first machine listed is used (but see --randomize below). 


--randomize

Randomize the order of the host list before execution.


[링크 : https://linux.die.net/man/1/distcc]

'프로그램 사용 > distcc & ccache' 카테고리의 다른 글

rpi distcc with ccache 실패 ㅠㅠ  (0) 2021.04.30
rpi distcc 성공인데 실패  (0) 2021.04.28
distcc-pump 시도..  (0) 2016.10.18
distcc 를 DHCP 에서.. 2?  (0) 2016.10.18
distcc /etc/distcc/hosts와 DISTCC_HOSTS  (0) 2016.10.17
Posted by 구차니

돌아는 가는데.. 

왜 라즈베리만 돌고, odroid_1은 놀고 있지? 흐음...


$ cat /etc/distcc/hosts

# As described in the distcc manpage, this file can be used for a global

# list of available distcc hosts.

#

# The list from this file will only be used, if neither the

# environment variable DISTCC_HOSTS, nor the file $HOME/.distcc/hosts

# contains a valid list of hosts.

#

# Add a list of hostnames in one line, seperated by spaces, here.

#+zeroconf

odroid_1,cpp,lzo

odroid_2,cpp,lzo

raspberrypi,cpp,lzo 


위와 같이 cpp,lzo를 주고 make 하니 이런 경고가 발생하는데

$ make -j12 CC=distcc

distcc[7640] Warning: INCLUDE_SERVER_PORT not set - did you forget to run under 'distcc-pump'?

distcc[7640] (dcc_build_somewhere) Warning: failed to get includes from include server, preprocessing locally 


distcc-pump 를 실행해주면 자동으로 데몬처럼 작동하는데 죽이질 못하네?

$ distcc-pump --startup

export INCLUDE_SERVER_PID='7700'

export INCLUDE_SERVER_DIR='/tmp/distcc-pump.fyGaPI'

export INCLUDE_SERVER_PORT='/tmp/distcc-pump.fyGaPI/socket'

export PATH='/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games'



$ distcc-pump make -j12 CC="distcc gcc -std=gnu99"

__________Using distcc-pump from /usr/bin

__________Using 3 distcc servers in pump mode

  CHK     include/linux/version.h

  CHK     include/generated/kernelversion.h

  HOSTCC  scripts/basic/fixdep


...


  LD      arch/arm/vfp/vfp.o

  LD      arch/arm/vfp/built-in.o

__________Warning: 1 pump-mode compilation(s) failed on server, but succeeded locally.

__________Distcc-pump was demoted to plain mode.  See the Distcc Discrepancy Symptoms section in the include_server(1) man page.

__________Shutting down distcc-pump include server

 


셧다운 해줘도 안 죽어!!! 머지?

$ distcc-pump --help

Usage:

    pump COMMAND [ARG...]

or

    pump --startup

    pump --shutdown 


[링크 : https://lists.samba.org/archive/distcc/2012q4/004315.html]

[링크 : https://wiki.archlinux.org/index.php/Distcc]

'프로그램 사용 > distcc & ccache' 카테고리의 다른 글

rpi distcc 성공인데 실패  (0) 2021.04.28
distcc hosts 파일과 순서  (0) 2016.10.19
distcc 를 DHCP 에서.. 2?  (0) 2016.10.18
distcc /etc/distcc/hosts와 DISTCC_HOSTS  (0) 2016.10.17
distcc zeroconf 와 avahi  (0) 2016.10.17
Posted by 구차니

생각을 해보니..

distcc를 구동할때

/etc/default/distcc에서 설정된 값을 통해 listen할 ip를 설정하게 되는데


/etc/hosts에 의해 자기 자신의 이름을 resolve하게 되니

항상 127.0.0.1 밖에 설정이 안될거고


그런 이유로 samba를 통해서 resolve하게 하려고 했더니

/etc/hosts에서 삭제하고


/etc/rc?.d 에서 distcc가 rc.local 보다 일찍 수행되는 바람에

삼바가 구동되기 이전에 distcc 실행되서 자기 자신의 아이피를 resolve 할 수 없는 상황..


그러니까..

'hostname -I'를 이용해서 자기 아이피를 받아 올 수 있으면...

가능하려나?


이것저것 넣어 보는데 안됨 ㅠㅠ

$ vi /etc/init.d/distcc

 55 # construct access list

 56 ALLOW=""

 57 for net in $ALLOWEDNETS

 58 do

 59         ALLOW="$ALLOW --allow $net"

 60 done 


 66 if test -n "$LISTENER"; then

 67         DAEMON_ARGS="$DAEMON_ARGS --listen $LISTENER"

 68 fi

그냥.. distcc init 스크립트를 손봐야 하나?



일단은.. 이 정도로 만족 중.. 집에 가서 여러 대 놓고 해봐야지

$ cat /etc/default/distcc

ALLOWEDNETS=$(printf "%s/24" $(hostname -I))

LISTENER="$(hostname -I)" 


[링크 : http://stackoverflow.com/.../how-can-i-concatenate-string-variables-in-bash]


그래도 서비스로 자동 구동되는건 실패... ㅠㅠ

'프로그램 사용 > distcc & ccache' 카테고리의 다른 글

distcc hosts 파일과 순서  (0) 2016.10.19
distcc-pump 시도..  (0) 2016.10.18
distcc /etc/distcc/hosts와 DISTCC_HOSTS  (0) 2016.10.17
distcc zeroconf 와 avahi  (0) 2016.10.17
distcc 를 DHCP 에서..  (0) 2016.09.28
Posted by 구차니

export DISTCC_HOSTS도 좋지만

이렇게 파일로 박아 둘수도 있는데.. 얘가 wins resolve가 가능하려나?

$ cat /etc/distcc/hosts

# As described in the distcc manpage, this file can be used for a global

# list of available distcc hosts.

#

# The list from this file will only be used, if neither the

# environment variable DISTCC_HOSTS, nor the file $HOME/.distcc/hosts

# contains a valid list of hosts.

#

# Add a list of hostnames in one line, seperated by spaces, here.

#+zeroconf

odroid_1,cpp,lzo

odroid_2,cpp,lzo

raspberrypi,cpp,lzo 


$ distcc --show-hosts

odroid_1,cpp,lzo

odroid_2,cpp,lzo

raspberrypi,cpp,lzo 


pump mode 쓰려고 cpp만 넣었더니 lzo도 같이 넣어야 한다고 배짼다 -_-

$ distcc --show-hosts

distcc[6919] (dcc_get_protover_from_features) ERROR: pump mode (',cpp') requires compression (',lzo')

distcc[6919] (dcc_parse_options) ERROR: invalid host options: ,cpp

odroid_2,cpp

raspberrypi,cpp 



커널 빌드 해보니.. 영 되질 않네.. ㅠㅠ

distcc[3645] Warning: INCLUDE_SERVER_PORT not set - did you forget to run under 'distcc-pump'?

distcc[3645] (dcc_build_somewhere) Warning: failed to get includes from include server, preprocessing locally 


[링크 : https://linux.die.net/man/1/include_server]


음.. cpp,lzo 뺴고 하는데 시도는 하는데 받는 쪽에서 배째는 중 ㅠㅠ

distcc[4515] ERROR: nonblocking connect to 192.168.219.139:3632 failed: Connection refused 


'프로그램 사용 > distcc & ccache' 카테고리의 다른 글

distcc-pump 시도..  (0) 2016.10.18
distcc 를 DHCP 에서.. 2?  (0) 2016.10.18
distcc zeroconf 와 avahi  (0) 2016.10.17
distcc 를 DHCP 에서..  (0) 2016.09.28
distcc kernel compile 재시도..  (0) 2016.09.28
Posted by 구차니


+zeroconf

This option is only available if distcc was compiled with Avahi support enabled at configure time. When this special entry is present in the hosts list, distcc will use Avahi Zeroconf DNS Service Discovery (DNS-SD) to locate any available distccd servers on the local network. This avoids the need to explicitly list the host names or IP addresses of the distcc server machines. The distccd servers must have been started with the "--zeroconf" option to distccd. An important caveat is that in the current implementation, pump mode (",cpp") and compression (",lzo") will never be used for hosts located via zeroconf. 

[링크 : https://linux.die.net/man/1/distcc]


avahi 데몬이 있어야 zeroconf가 가능하대서 확인해보니 없.. 다?!

ubuntu 14.04 LTS for odroid

$ distcc -v

Using built-in specs.

COLLECT_GCC=/usr/bin/gcc-4.8.real

COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.8/lto-wrapper

Target: arm-linux-gnueabihf

Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.8.4-2ubuntu1~14.04.3' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-armhf/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-armhf --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf

Thread model: posix

gcc version 4.8.4 (Ubuntu/Linaro 4.8.4-2ubuntu1~14.04.3) 


요건 라즈베리 jessie

음따!

$ distcc -v

Using built-in specs.

COLLECT_GCC=cc

COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.9/lto-wrapper

Target: arm-linux-gnueabihf

Configured with: ../src/configure -v --with-pkgversion='Raspbian 4.9.2-10' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-armhf/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-armhf --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-sjlj-exceptions --with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf

Thread model: posix

gcc version 4.9.2 (Raspbian 4.9.2-10) 


고로.. zeroconf는 사용불가!


export DISTCC_HOSTS="+zeroconf"

[링크 : https://wiki.debian.org/Distcc]

'프로그램 사용 > distcc & ccache' 카테고리의 다른 글

distcc 를 DHCP 에서.. 2?  (0) 2016.10.18
distcc /etc/distcc/hosts와 DISTCC_HOSTS  (0) 2016.10.17
distcc 를 DHCP 에서..  (0) 2016.09.28
distcc kernel compile 재시도..  (0) 2016.09.28
distcc-pump error  (0) 2016.09.25
Posted by 구차니

안되는건가? ㅠㅠ

기본적으로 hostname에서 조회하는거라

저번에 wins 통해서 resolve한게 정상이 아니었던거 같기도 하고.

테스트 해볼게 많네.. ㅠㅠ


[링크 : http://wiki.maemo.org/Distcc?pagewanted=all]

[링크 : https://forums.gentoo.org/viewtopic-t-130450-start-0.html]

[링크 : http://distcc.samba.narkive.com/NKokMWjn/discovering-the-distccd-hosts-on-a-dhcp-lan]

[링크 : https://debian-administration.org/article/112/Speed_up_compiling_software_with_distcc]


+

dhcp통해 hostname 업데이트 하기

이게 편리해보이네

[링크 : http://askubuntu.com/questions/104918/how-to-get-the-hostname-from-a-dhcp-server]

Posted by 구차니

영 안되네..

odroid 커널 빌드 해보려고 하는데

CC=distcc make -j8 해도

make -j8 CC=distcc 해도 안되서

이래저래 찾아 보는중


$ time make -j8 CC=distcc

kernel compilation using single machine :

real 50m55.498s

user 71m4.967s

sys 6m55.030s


kernel compilation using three machines:

real 28m21.146s

user 17m32.862s

sys 4m35.537s 


[링크 : http://linuxdeveloper.blogspot.com/2012/03/distributed-kernel-compilation-in.html]

[링크 : http://askubuntu.com/.../how-to-speed-up-compilation-of-ubuntu-apps-make-cmake-gcc]

[링크 : http://pointclouds.org/documentation/advanced/distcc.php]


역시.. 진리(?)의 makefile 수정 뿐인가?

Edit the Makefile 

Fire up your favourite editor and load /usr/src/linux/Makefile. Find this section:

Code:

# Include the make variables (CC, etc...) 


And change "gcc" in the CC line to 

Code:


CC              = $(CROSS_COMPILE)distcc 


Append this line to the section: 

Code:


DISTCC_HOSTS=slave1 slave2 slave3 ... slaveN  


[링크 : https://forums.gentoo.org/viewtopic-p-7189488.html]

'프로그램 사용 > distcc & ccache' 카테고리의 다른 글

distcc zeroconf 와 avahi  (0) 2016.10.17
distcc 를 DHCP 에서..  (0) 2016.09.28
distcc-pump error  (0) 2016.09.25
distcc 크로스 컴파일/커널 빌드 관련  (0) 2016.09.13
distcc 로 valgrind-3.6.1 컴파일 실패?  (0) 2014.12.12
Posted by 구차니