Skip to content

기글하드웨어기글하드웨어

인터넷 / 소프트웨어 : 윈도우즈, 리눅스, 기타 운영체제, 각종 어플리케이션, 프로그램, 소프트웨어, 인터넷, 인터넷 서비스에 대한 이야기, 소식, 테스트, 정보를 올리는 게시판입니다. 2016년 7월 이전의 글은 다음 링크를 참조하세요. 구 소프트웨어 뉴스 / 구 소프트웨어 포럼 / 구 뉴스 리포트 / 구 특집과 정보 / 구 스페셜 게시판 바로가기

Extra Form
참고/링크 https://gigglehd.com/gg/6999694

※ 주의사항

이 매뉴얼을 부주의하게 따라했다가 발생하는 어떠한 피해도 저는 책임질 수 없습니다. 이 매뉴얼의 전체 내용은 오직 방열판과 쿨링판이 장착된 라즈베리 파이 4 모델 B 메모리 4GB 제품에서만 테스트되었습니다. 방열판 등 적절한 쿨링 대책이 없는 상태에서 CPU에 장시간 부하를 주는 것은 결코 권장할 수 없습니다. 또, 이 매뉴얼을 통해 실행하는 연산은 상당히 많은 메모리와 SD카드 용량을 점유합니다. 이 매뉴얼을 실행한 결과는 긍정적인 것도 부정적인 것도 모두 스스로 책임지는 것입니다. 또한, 이하 내용은 라즈베리 파이와 리눅스 등을 어느 정도라도 이미 만져본 사람이 읽는 것을 상정하고 서술했습니다. 따라서 기초적인 부분은 그냥 생략하고 넘어갈 수 있다는 점을 양해해 주십시오. 이 매뉴얼에서 설명한 프로젝트에 참여하기 위해서는 64비트 플랫폼이 필수적이므로, 이 문서의 내용은 모두 64비트 기준으로 작성되었습니다.

신종 코로나바이러스가 미쳐 날뛰는 이 시국에, 인류의 모든 파워를 한데 모아 원기옥으로 역병을 한 방에 물리칠 수 있으면 얼마나 좋을까요? 안타깝게도 역병을 직접 물리치는 원기옥 같은 건 이 세상에 존재하지 않습니다만, 전염병과 싸우는 과학자들을 간접적으로 도우는 원기옥은 실제로 존재합니다.
 

단백질이란 지구상의 모든 생물을 구성하는 고분자 유기물질로, 이는 온전한 생물로서 인정받지 못하는 기생 나노입자인 바이러스 또한 마찬가지입니다. 과장 좀 덧붙여서 단백질 속에 생명의 모든 신비가 녹아 있다 해도 과언이 아니죠. 하지만 이를 분석하는 것은 대단히 까다로운 일입니다. 사실, 단순한 분자를 시뮬레이션하는 것만으로도 엄청난 컴퓨팅 파워가 필요합니다. 하물며 거대한 생체분자인 단백질은 어떻겠습니까.
 

하지만 지금 전세계를 덮친 신종 코로나바이러스와 싸우려면 어쨌거나 이 바이러스가 가진 단백질을 분석하여 이 녀석과 효과적으로 결합할 수 있는 분자를 찾아내는 것이 필요합니다. 이는 신약이나 백신 개발에 중요한 단서가 될 수 있지요. 이러한 시뮬레이션에 필요한 연산능력을 원기옥처럼 십시일반으로 모으자는 것이 바로 Rosetta@home 프로젝트입니다.
 

프로젝트 이름에 ‘@home’이라는 게 붙은 것은 이 프로젝트가 BOINC라는 분산 컴퓨팅 플랫폼에 기반하고 있기 때문입니다. 혼자서 풀려면 슈퍼컴퓨터로도 답이 안 나올 문제를 최대한 잘게 쪼개어 여러 사람의 컴퓨터가 나누어 풀도록 하는 것이 바로 BOINC 플랫폼입니다. 하지만 BOINC 자체는 플랫폼일 뿐이고, 연산 프로그램 자체는 각 프로젝트에서 자체적으로 개발한 것입니다. 대다수의 @home 프로젝트는 x86 프로세서를 사용하는 개인용 PC를 대상으로 개발되었기 때문에, ARM 아키텍쳐를 쓰는 라즈베리 파이나 스마트폰 등과는 큰 인연이 없었습니다. 그러나, 최근 들어서 ARM 아키텍쳐를 함께 지원하는 @home 프로젝트가 점차 늘고 있는데 Rosetta@home도 거기에 동참했지요.
 

Rosetta@home을 라즈베리 파이에서도 돌릴 수 있다는 뉴스를 여기서 봤는데, 정작 구체적인 설치나 실행 방법 같은 것은 무슨 1시간이 넘는 동영상 1개밖에 자료가 없더군요. 뉴스의 영문 원문을 뒤져봤지만, 거기에도 자세한 문서화는 나중에 하겠다는 말밖에 없었습니다. 누가 외국인 둘이서 별 재미없는 말이나 하는 이해도 잘 안 되는 동영상을 1시간 넘게 진득하게 보겠습니까. 그래서 동영상 보기는 일치감치 때려치우고, 공개된 정보를 조합해서 직접 놀고 있는 제 라즈베리 파이 4B에서 이걸 돌려보기로 했습니다. 밤잠이 안 와서 슬금슬금 하다 보니, 어느 순간 되겠다 싶더니만 정말로 잘 돌아가더라고요. 사실 문서 찾기만 힘들다 뿐이지, 방법 자체는 어려운 것이 없었습니다. 그래서 안 그래도 부족한 한국어 문서를 보충하는 의미로 직접 매뉴얼을 작성합니다.
 

시놉시스 :

  1. 라즈베리 파이 4B에 우분투 리눅스 서버 버전을 설치한다.
  2. 우분투 리눅스에 Docker를 설치하고 설정한다.
  3. Docker를 통해 boinc-client:arm64v8 이미지의 컨테이너를 띄운다.
  4. 라즈베리 파이 외부에서 BOINC Manager를 실행하여 라즈베리 파이로 접속한다.
  5. BOINC Manager에서 Rosetta@home을 라즈베리 파이에 실행시킨다.

알 거 아시는 분들은 위 내용만 봐도 대충 어떤 식으로 하면 되겠구나 하는 것을 느끼실 겁니다. 진짜 이 시놉시스만 찾으니까 끝이더라고요. 저는 기존에 BOINC 프로젝트 경험이 없어서 조금 헤매었지만, 이것도 경험이 있으셨던 분들이라면 헤맬 필요도 없었을 겁니다.
 

Docker를 쓰는 것에 대해 조금 부연설명을 하겠습니다. 사실 이 작업은 Docker를 쓰지 않고도 할 수 있는 일이긴 합니다만, 개인적으로는 Docker를 쓰는 편이 좀 더 깔끔하게 느껴지더라고요. 혹시 Docker를 안 쓰고 BOINC를 직접 리눅스에 바로 설치하여 돌려보신 분이 계실지 모르겠는데, 제가 직접 그렇게 해 봤더니 뭔가 설정하는 게 좀 까다롭고 의도대로 잘 안 되는 것이 많았습니다. 그런데 Docker를 적용하니 그런 문제가 모두 사라지더군요. 또한 이렇게 하면, 이 글이 라즈베리 파이에 Docker를 설치하려는 사람에게도 도움이 될 수 있다는 장점이 있습니다. Rosetta@home 자체는 리소스를 꽤나 잡아먹기 때문에 라즈베리 파이 4B 모델이 아니면 돌리기 힘들 것 같지만, Docker 자체는 그보다 사양이 낮아도 설치할 수는 있으니까요.
 

혹시나 Docker를 통해서 연산을 돌리면 성능이 떨어지지나 않을까 걱정하시는 분도 계실 것 같은데, 리눅스 환경에서 Docker 컨테이너가 돌아갈 때는 어떠한 가상화 기술도 작동하지 않습니다. 오직 Docker를 Windows나 macOS에서 사용하려고 할 때만 가상머신이 돌아가는데, 이는 Docker가 기본적으로 리눅스에서 제공하는 각종 기능에 깊이 의존하고 있으므로 가상머신 안에서라도 리눅스를 띄워야 하기 때문입니다. 기술적으로 봤을 때, 리눅스 안의 Docker 컨테이너는 다른 일반 리눅스 프로세스와 완전히 똑같습니다. 따라서 네이티브 리눅스 환경에서 Docker를 사용한다면, 가상화 오버헤드에 의한 연산능력 저하는 사실상 없습니다.
 

Docker가 가상화를 쓰지 않는다는 것은 성능상으로는 장점이지만, 신경써야 할 부분도 있습니다. 원하는 애플리케이션의 이미지를 Docker Hub에서 끌어다 올 때 CPU 아키텍쳐가 맞는지 신경써야 한다는 것이지요. 이걸 신경쓰지 않고 기본값으로 된 이미지를 끌어다 오면, x86용으로 컴파일된 바이너리가 ARM 아키텍쳐인 라즈베리 파이에서 돌아갈 리가 없으니 컨테이너가 제대로 실행이 안 되어 무한재시작하는 현상이 발생합니다. 뭐, 이 정도는 Docker 써보신 경험이 있는 분이라면 다들 아시리라 믿습니다.
 

그러면 준비물부터 확인해보도록 하죠.
 

하드웨어 준비물 :

  • 방열판 등이 갖춰진 라즈베리 파이 4B 4GB 모델
  • 최소 16GB 이상의 용량을 지닌 microSD
  • 라즈베리 파이에 지속적으로 전원 공급을 해줄 어댑터
  • 인터넷 접속 회선, 인터넷 공유기, 랜선
  • microSD를 PC에서 읽고 쓰게 해줄 리더기
  • 라즈베리 파이를 외부에서 조작할 PC (운영체제는 Windows, Linux, macOS 중 하나)

하드웨어 준비물은 라즈베리 파이 보유자라면 사실상 누구나 다 가지고 있을 만한 내용이군요. 라즈베리 파이 자체와 SD카드 용량 정도만 확인하고 넘어가도록 합시다.
 

소프트웨어 준비물 :

  • 라즈베리 파이 4를 위한 64비트 우분투 리눅스 이미지
    https://ubuntu.com/download/raspberry-pi
    저는 우분투 리눅스를 라즈베리 파이 4에 설치하기로 결정했습니다. 이왕이면 현재의 최신 LTS 버전인 20.04로요. 사실 그 이전 버전에서도 안 될 것은 없을 것 같지만, 직접 해보지는 않았습니다. 참고로 다른 리눅스나 32비트 버전은 이 매뉴얼에서 다루는 범위를 벗어나므로, 추후 진행을 보장할 수 없습니다.
     
  • 리눅스 이미지를 SD카드에 기록할 수 있는 소프트웨어
    https://www.balena.io/etcher/
    저는 Balena Etcher를 선택했습니다. 쓰기 편하고, 멀티플랫폼 지원이라 OS를 안 가려서 좋거든요. 굳이 다른 소프트웨어를 사용한다고 해도 말리지는 않겠습니다.
     
  • SSH 접속을 위한 클라이언트
    https://www.putty.org/
    Linux나 macOS라면 따로 구할 필요 없이 기본적으로 내장되어 있는 것이 SSH 클라이언트입니다만, Windows는 그렇지가 않지요. 최신 윈도우 10에서는 [선택적 기능 추가]를 통해 명령행에서 사용할 수 있는 SSH 클라이언트를 설치할 수 있다지만, 어쨌거나 기존에 쓰던 게 없으면 준비를 해야 한다는 건 변하지가 않습니다. 제가 윈도우에서 작업한다면 예전부터 쓰던 PuTTY를 쓸 것 같군요. 여기서 SSH 클라이언트 사용법까지 일일히 설명하지는 않겠습니다.
     
  • BOINC 소프트웨어
    http://boinc.berkeley.edu/download.php
    지금 우리가 하려는 것은 BOINC 기반 연산작업을 라즈베리 파이에서 돌리려는 것이지만, 이걸 제어할 PC에도 BOINC 소프트웨어를 설치하긴 해야 합니다. 여기에 포함되어 있는 [BOINC Manager]를 통해서 작업 지령을 내리는 것이거든요. 참고로 macOS 환경에서 brew를 쓰신다면 이것도 brew cask로 설치됩니다.

준비물이 모두 모였으면, 이제 시작해보도록 하지요. 자잘한 건 생략하고 넘어갑니다.

  1. 맨 먼저, 공유기 관리자 페이지에 접속해서 라즈베리 파이의 내부 IP 주소를 수동으로 고정 설정해 줍니다. 이는 추후 라즈베리 파이에 원격으로 편리하게 접속하기 위한 것입니다. 저는 라즈베리 파이의 IP 주소를 192.168.0.200으로 고정해뒀습니다. 이 IP 주소는 이제 라즈베리 파이를 가리킵니다.
     
  2. 준비한 라즈베리 파이용 64비트 우분투 리눅스 이미지를 microSD에 플래싱합니다. 이 과정이야 라즈베리 파이 가지신 분이라면 다들 한번쯤 해보셨을 테니 자세한 설명은 생략합니다.
     
  3. 플래싱을 마친 microSD를 라즈베리 파이에 넣고, 랜선을 통해 라즈베리 파이와 공유기를 연결시킨 다음 전원을 꽂아 부팅을 시킵니다. 모든 것이 잘 되었다면, 라즈베리 파이를 하드웨어적으로 만질 일은 더 없을 것입니다. 방열판과 냉각팬도 문제 없는지 봐 주는 게 좋겠죠?
     
  4. 이제 외부에서 조작할 차례입니다. SSH로 라즈베리 파이에 접속해 봅시다. 캐노니컬에서 받은 우분투 리눅스 이미지의 초기 계정명은 ubuntu, 패스워드도 ubuntu입니다. 제가 접속할 주소는 192.168.0.200이니까, 리눅스나 macOS에서 터미널을 사용한다면 다음과 같은 명령어로 접속할 수 있겠죠. 첫 접속이라고 키 저장할까 물어보는 것은 알아서 합시다. 이전에 같은 IP 주소로 라즈베리 파이에 SSH 접속한 적이 있으면 에러가 날 수도 있는데, 알아서 ~/.ssh/known_hosts 파일에서 해당 부분을 지워줍니다. 윈도우에서 PuTTY를 쓰는 경우에 대해서는 이하 생략합니다.

    ssh ubuntu@192.168.0.200

  5. 첫 접속이면 관리자 계정 패스워드 바꿔야 한다면서 바꿀 패스워드를 물어볼 것입니다. 보안상의 이유로 짧은 관리자 패스워드는 퉷퉷할 텐데, 나중에 sudo passwd 명령으로 바꾸면 짧은 패스워드도 받아줄 테니까 참고하시기 바랍니다.
     
  6. 먼저 기본적인 운영체제 업데이트부터 해 줍시다.

    sudo apt update && sudo apt full-upgrade

  7. 혹시 자기가 리눅스 처음 설치하면 꼭 빼놓지 않고 설정하는 게 있다 하면 설정해줘도 무방합니다. 반대로 말하면, 이 과정은 그냥 넘어가도 무방합니다. 저는 시스템 시간대를 서울로 맞추겠습니다.

    sudo timedatectl set-timezone Asia/Seoul

  8. 여기서부터는 Docker를 설치할 차례입니다.

    sudo apt install -y docker.io docker-compose

  9. 설치가 끝났으면, 몇 가지 설정을 해줄 차례입니다. 먼저, docker 관련 명령을 쓸 때 일일히 앞에 sudo를 입력하지 않게끔 하는 설정을 하겠습니다.

    sudo usermod -aG docker $USER

  10. 다음으로, 재부팅했을 때 Docker가 따라서 켜지도록 하는 설정을 하겠습니다.

    sudo systemctl enable docker

  11. 마지막 설정입니다. Debian 계열 리눅스인 Ubuntu에서 Docker를 통한 메모리 제한 설정이 제대로 먹히지 않는 문제를 해결해야 합니다. 다음 명령을 실행하여 부팅 옵션을 추가합니다.

    sudo sed -i "1 s/$/ cgroup_enable=memory swapaccount=1/" /boot/firmware/cmdline.txt

  12. 이제 Docker 설정까지 끝났습니다. 한번 시원하게 재부팅하겠습니다.

    sudo reboot

  13. 재부팅 명령어를 치면 즉시 SSH 연결이 끊길 것입니다. 한 30초쯤 기다렸다가 다시 SSH로 접속해 봅시다.

    ssh ubuntu@192.168.0.200

  14. 로그인하고 들어간 다음, 아래와 같은 명령어를 입력했을 때 잠시 뜸을 들이고 뭔가를 다운로드받더니 조금 있다가 영어로 된 환영 메시지를 출력한다면 Docker가 정상적으로 설치된 것입니다. 이제 정말로 Docker 설치가 끝났습니다!

    docker run hello-world

  15. 여기서부터는 Docker 자체가 아니라 BOINC 클라이언트를 설치하는 단계입니다. 먼저 디렉터리를 하나 만들어 봅시다. 이름은 boinc_client 정도로 하지요.

    mkdir boinc_client

  16. 방금 만든 디렉터리로 들어가서…

    cd boinc_client

  17. 파일 3개를 만들어야 합니다. 앞의 디렉터리 이름은 마음대로 지어도 괜찮지만, 이 파일들의 이름은 정해져 있기 때문에 여기 나오는 그대로 써야 합니다. 이 뒤에 나올 내용을 보고 어떤 파일은 어떻게 하면 이름을 바꿀 수 있겠다는 것을 이해하시는 분이라면 마음대로 하셔도 좋습니다만…

    touch docker-compose.yml global_prefs.xml cc_config.xml password.txt

  18. 편집 프로그램으로 docker-compose.yml 파일을 엽니다. 저는 복사-붙여넣기가 상대적으로 쉬운 nano를 사용하겠습니다. vim이 더 편하신 분은 그걸 쓰셔도 상관없습니다. 참고로 우분투 리눅스에서 vi 명령어는 기본적으로 vim에 연결되어 있더군요.

    nano docker-compose.yml

  19. 다음 내용을 모두 통채로 붙여넣기합니다.

    version: "2.4"
    services:
      boinc:
        image: boinc/client:arm64v8
        container_name: boinc
        network_mode: host
        pid: host
        restart: always
        mem_limit: 3200mb
        shm_size: 1600mb
        volumes:
          - /etc/timezone:/etc/timezone:ro
          - /etc/localtime:/etc/localtime:ro
          - /opt/appdata/boinc:/var/lib/boinc
          - ./global_prefs.xml:/var/lib/boinc/global_prefs.xml
          - ./cc_config.xml:/var/lib/boinc/cc_config.xml
          - ./password.txt:/var/lib/boinc/gui_rpc_auth.cfg:ro

  20. 내용을 저장하고 나옵니다. 참고로 nano에서는 [Ctrl] + [X]가 종료 단축키입니다. 변경사항을 저장할지 물어보면 [Y]를 누르고, 파일 이름은 바꾸지 않은 채 그대로 저장해 줍니다.
     
  21. 위와 같은 요령으로 global_prefs.xml 파일에는 다음과 같은 내용을 넣어줍니다.

    <global_preferences>
        <work_buf_min_days>0</work_buf_min_days>
        <work_buf_additional_days>0</work_buf_additional_days>
        <ram_max_used_idle_pct>80</ram_max_used_idle_pct>
    </global_preferences>

  22. 위와 같은 요령으로 cc_config.xml 파일에는 다음과 같은 내용을 넣어줍니다.

    <cc_config>
      <options>
        <allow_remote_gui_rpc>1</allow_remote_gui_rpc>
        <max_file_xfers_per_project>4</max_file_xfers_per_project>
      </options>
    </cc_config>

  23. password.txt 파일에는 나중에 자신이 다른 시스템에서 접속할 때 사용할 패스워드를 넣어주면 됩니다. 저는 간단하게 1234를 넣겠습니다.
     
  24. 위 파일들을 막 수정하였으니, 아직 해당 파일들이 있는 디렉터리에 머무르고 있을 것입니다. 그 자리에서 바로 아래의 명령어를 실행합니다. 그러면 라즈베리 파이에서 모든 준비가 자동으로 진행됩니다. 이 명령은 해당 디렉터리에 있는 docker-compose.yml 파일의 내용에 맞춰 Docker 컨테이너에 필요한 파일을 다운로드하고, 설정을 적용하고, 백그라운드에서 실행시키라는 뜻입니다. 만약 docker-compose.yml 파일의 내용을 바꾸었다면, 이 명령을 다시 실행해 주면 변경 사항이 적용될 것입니다.

    docker-compose up -d

  25. 위 명령이 성공하고 나면, 이제 SSH에서 할 작업은 모두 끝났습니다. 원한다면 SSH에서 로그아웃해도 좋습니다. 이제 PC에서 BOINC 프로그램을 설치합니다.
     
  26. BOINC 프로그램을 설치하면 [BOINC Manager]라는 것이 추가되었을 것입니다. 이걸 처음 실행하면 마법사 창이 뜰 텐데, 이걸 그대로 따라가면 라즈베리 파이가 아니라 PC에서 Rosetta@home을 돌리게 됩니다. 일단 [취소] 버튼을 눌러 마법사 창을 닫아 줍니다.
     
  27. 마법사 창을 닫고 나서, 메뉴의 [보기]에서 [자세히 보기]라는 버튼을 클릭합니다. 그러면 숨겨져 있던 기능들이 펼쳐집니다. 이 상태에서 메뉴의 [파일]에 가 보면 [컴퓨터 선택]이라는 메뉴가 보일 것입니다. 그걸 누릅니다.
     
  28. [컴퓨터 선택] 창이 뜹니다. [호스트 이름]은 IP 주소를 입력하는 곳입니다. 저는 아까 전에 라즈베리 파이의 IP 주소를 192.168.0.200으로 고정했었죠. 그걸 그대로 넣어 줍니다. [암호]는 아까 전에 password.txt 파일에 넣었던 접속 패스워드인 1234를 넣어 줍니다. 그때 다른 패스워드를 넣었다면 거기에 맞춰서 바꿔 넣어주면 되겠죠.
     
  29. 이제 [확인] 버튼을 누르면… 짜잔! 다시 마법사 창이 뜰 것입니다. 혹시 실수로 닫았어도 걱정할 필요는 없습니다. 메뉴의 [도구]에서 [프로젝트 추가]를 누르면 다시 나타날 것입니다. [프로젝트]에서 [Rosetta@home]을 선택하고 [다음]을 누르면 회원가입을 하라고 뜰 것입니다. 이메일과 패스워드를 입력하고 나면, 이번에는 웹 브라우저 창이 떠서 추가 정보를 입력하라고 할 텐데 이건 마음대로 해도 됩니다.
     
  30. 회원 가입을 하고 나서 프로그램 창 상단의 탭에서 [태스크]를 눌러 보면 아마도 이미 자동으로 작업할 내용이 대기중이거나 시작하고 있는 것이 보일 것입니다. 일단 작업이 시작하고 나면, PC의 BOINC Manager를 종료해도 라즈베리 파이에서 계속 작업을 진행하고 새로운 작업을 다운로드받습니다.
     
  31. 제 라즈베리 파이 4B 4GB 모델 기준으로, 한번에 최대 작업 4종류가 동시에 진행됩니다. 4코어니까 이건 당연하지요. 하나의 코어에서 작업 한 단위가 끝나는 것은 대략 8시간이 채 안 걸리는 수준입니다. SSH에서 htop 명령으로 지켜본 결과, 작업을 시작하고 처음 2~3분은 CPU나 메모리 점유율이 오락가락하다가 그 뒤부터는 계속 99~100%의 CPU 점유율이 나타납니다. 메모리 사용량이 3 GB를 넘기면 자동으로 작업 하나 또는 둘이 종료되어 여유 메모리를 맞출 것입니다. 가용 메모리 용량이 약 3.7 GB인데, 메모리 사용량 제한이 없을 경우 시스템 메모리가 3.6 GB 이상 점유되면 microSD 읽기/쓰기 LED가 계속 켜져 있으면서 시스템이 거의 다운된 것처럼 굉장히 느려지는 현상이 발생하기 때문에 위 글에서는 이 사용량을 최대 80%로 제약하였습니다. 이는 기본적으로 제공되는 우분투 리눅스 이미지에 스왑 설정이 되어 있지 않을 때 발생하는 문제인데, 저는 microSD의 수명이 신경쓰여서 일부러 스왑 설정을 넣지 않았거든요. 메모리가 2 GB 이하인 모델에서는 위 설정이 제대로 작동할지 모르겠는데, 필요하다면 일부 설정 파일의 내용을 직접 고쳐야 할 수도 있겠습니다. microSD 용량은 리눅스와 Rosetta@home 프로젝트 통틀어서 약 9 GB를 조금 넘기는 수준으로 쓰고 있는데, Rosetta@home이 쓰는 건 약 4~5 GB 정도입니다.

이 정도 설명이면 관심있는 사람이 Rosetta@home을 라즈베리 파이에서 구동하기에는 충분한 것 같습니다. 제가 이걸 실제로 하고 나서 느낀 첫 감상은 ‘마치 조그마한 햄스터가 쳇바퀴를 열심히 돌리는 것 같다’는 것이었지만, 그 정도의 원동력일지라도 충분히 여럿 모이면 원기옥 충전에 많은 도움이 되지 않을까 합니다. “컴퓨터들아… 나에게 파워를 조금만 나눠줘!”라는 과학자들의 외침에 햄스터 한 마리(?)를 보내며, 이만 마치도록 하겠습니다.

 

부록 1 - 라즈베리 파이 오버클럭하기 :
 

라즈베리 파이가 4부터는 연산능력이 상당히 올라갔다고는 하지만, 그래도 이런 과학기술용 연산에는 성능이 모자란 것이 사실이긴 합니다. 그래서 저는 이걸 조금이라도 이를 보충해 보려고 오버클럭을 시도해 보았습니다. 참고로 오버클럭 역시 맨 위에 있는 주의사항의 경고가 다 적용되는 사안입니다.
 

우분투 리눅스를 돌리는 라즈베리 파이의 오버클럭 방법은 생각보다 간단합니다. 그냥 관리자 권한으로 /boot/firmware/usercfg.txt 이 파일의 맨 밑에다가 다음과 같은 내용을 추가한 뒤 저장하고 재부팅하면 됩니다. 관리자 권한으로 텍스트 파일을 편집하는 방법에 대한 설명은 생략합니다.

arm_freq=1800
over_voltage=4

arm_freq 항목은 원하는 CPU 클럭을 MHz 단위로 지정하는 것입니다. 참고로 라즈베리 파이 4의 기본 CPU 클럭은 1500 MHz(1.5 GHz)입니다. 외국 포럼에서는 보통 2000(2 GHz) 정도로 하던데, 제 경우에는 이렇게 하니까 Rosetta@home의 일부 연산이 오류가 뜨는 것을 목격하여 안정성을 위해 일부러 1800(1.8 GHz)으로 낮추었습니다. (추가: 지금 확인해 보니 이는 전원 공급이 부실했기 때문일 가능성도 있습니다.)
 

over_voltage 항목은 CPU에 얼마나 전압을 더 줄 것인지를 지정하는 값입니다. 라즈베리 파이 4의 기본 CPU 전압은 1.25 V인데, 해당 항목의 숫자가 1 올라갈 때마다 여기에 0.025 V가 추가됩니다. 저는 이 값을 2로 지정했으니까 0.05 V를 추가하여 1.3 V를 공급하는 것이죠. 이 값은 최대 6(=0.15 V를 추가하여 1.4 V)까지 줄 수 있는데, 외국 포럼에서 2 GHz로 오버클럭한 사람들은 이 값을 6으로 주고 있었습니다. 저는 1.8 GHz까지만 올렸기 때문에 일부러 전압을 조금 낮췄습니다.
 

제 라즈베리 파이 4B에서는 위와 같은 오버클럭 설정에서 안정성에 문제가 없었습니다. 따라서 이 설정값으로 계속 쭉 가려고 합니다. 그런데 Rosetta@home 연산 하나가 완료되는 데 걸리는 시간은 큰 차이가 없더라는 것이 함정. 이 오버클럭 설정을 적용한 후 Rosetta@home 연산을 통한 풀로드에서 측정한 온도는 약 74~76℃ 정도로, 오버클럭 전(64℃)의 수치에 비해 최대 12℃ 정도가 올라갔습니다. 참고로 이는 모두 방열판과 조그마한 쿨링팬을 장착한 상태의 결과값입니다. 쿨링 수단을 좀 보강해야 할 것 같네요.

 

부록 2 - Raspbian에서 64비트 활성화하기 :
 

이 글에서 설명하고 있는 절차의 핵심 과정 중 하나는 라즈베리 파이에 64비트 우분투 리눅스를 설치하는 것입니다. 왜 라즈베리 파이 재단에서 제공하는 라즈비안(Raspbian) 운영체제 대신 우분투 리눅스를 설치해야 하는 걸까요? 그건 바로 라즈비안이 기본적으로 32비트 운영체제이기 때문입니다. Rosetta@home 프로젝트에서 지원하는 ARM 아키텍쳐는 64비트뿐이기 때문에, 32비트 운영체제에서는 아예 돌릴 수가 없는 것이죠.
 

그렇다면 혹시 라즈비안에서 64비트 프로그램을 돌릴 수만 있다면 굳이 우분투 리눅스를 설치하지 않아도 되는 것이 아닌가 하는 생각을 할 수도 있을 것입니다. 실제로 최신 버전의 라즈비안에는 라즈베리 파이 3과 4에서 커널의 64비트 모드를 켤 수 있는 방법이 나왔지요. 하지만, 설령 64비트 모드를 켠다고 해도 기본적으로 라즈비안에서 제공하는 모든 앱들은 여전히 32비트입니다. 뿐만 아니라, 64비트 앱을 설치하려면 좀 더 까다롭고 복잡한 과정을 거쳐야 할 수도 있으며 32비트용 파일과 64비트용 파일을 모두 설치하느라 SD카드의 용량이 좀 더 점유될 수도 있습니다. 따라서 저는 이 방법을 권장하지 않으며, 시도해본 적도 없습니다. 그래도 실험적으로 이런 방법을 시도하실 분들을 위해, 핵심적인 부분에 대해서만 간략히 서술해 둡니다.
 

※ 주의! 이 방법은 우분투 리눅스가 아니라 Raspbian에 대한 내용입니다. 이 방법은 우분투 리눅스에서 시도할 수 없으며, 또 시도할 필요도 없습니다. 그리고 저는 이 방법을 직접 실행해본 적이 없습니다. 이걸 실행했을 때 기존에 잘 작동하던 것에 뭔가 문제가 생겨서 자신이 직접 해결해야만 할 수도 있습니다. 자신이 뭘 하려는지 알고 있을 때만 이 방법을 시도하세요.

  1. 먼저 최신 버전의 Raspbian인지 확인합니다. 이 방법은 오직 최신 버전의 라즈비안에만 적용됩니다.
     
  2. 관리자 권한으로 /boot/config.txt 파일을 열어, 맨 밑(또는 적당한 곳)에 다음 내용을 추가합니다.

    arm_64bit=1

  3. 파일을 저장하고 재부팅합니다.
     
  4. 터미널에서 uname -m 명령을 실행했을 때 aarch64라고 뜨면 성공입니다. 64비트 커널이 실행되고 있는 것이죠. 혹시 armv7l이라고 떴으면 이는 32비트 모드이므로 해당 설정이 제대로 적용되지 않았음을 뜻합니다.

 



  • profile
    title: AMDpoin_:D 2020.04.05 20:30
    산딸기4B모델 와서 성능은 개선됫다 하지만 그레도 단독으로는 성능 많이 부족하지 않을까요?
  • profile
    쮸쀼쮸쀼 2020.04.05 20:38
    대신 큰 전기요금 부담 없이 언제나 계속 켜둘 수 있다는 게 장점입니다. 특히나 저는 라즈베리 파이를 구입한 후로 어쩌다 보니 한참 동안이나 놀게 하고 있던 상황이라서 말이죠. 한 8시간 지나면 작업이 4개씩 마무리되기도 하고요. 코인 채굴보다는 인류 공익에 좀 더 기여하는 방향 아니겠습니까.
  • profile
    title: AMDpoin_:D 2020.04.05 20:41
    한대 셋팅하고 sd카드 복사기 돌린뒤 클러스터 구성해야 좀 볼만 하겠네요
  • profile
    쮸쀼쮸쀼 2020.04.05 20:45
    라즈베리 파이 여러 대로 미니 슈퍼컴퓨터를 만들거나 쿠버네티스도 돌린다는 짤을 어디서 보긴 했는데, 저는 1대밖에 없어서 그냥 얌전하게(?) 이것만 돌리고 있습니다.
  • profile
    title: 공돌이ForGoTTen      결재중.... 2020.04.05 21:06
    해봤습니다. 한가지 팁이라면 Rosetta@home은 64bit CPU만 지원하고 31416포트가 manager접근을 위해서 필요합니다.
  • profile
    쮸쀼쮸쀼 2020.04.05 21:07
    네. 저도 그래서 64비트 한정으로만 글을 썼지요. 근데 저는 포트 쪽은 신경 안 썼는데 우분투 쪽에서는 안 막혀 있어서 그냥 되더라고요. 외부에서 접속하려면 포트 열어주는 게 필요할 듯 합니다.
  • profile
    쿠민      TAKIGAWA MIU // MacBook Pro (13", 2018) 2020.04.05 21:14
    간단한 sftp + smb 서버로 쓰는 파이4에 시도해봐야겠군요...
  • profile
    쮸쀼쮸쀼 2020.04.05 21:26
    실제로 돌아가는 프로세스의 우선순위 자체는 낮게 설정이 되어 있긴 한데, 그것보다는 메모리를 많이 쓰는 것 때문에 다른 걸 이미 돌리고 있는 서버에서는 적극 추천은 못 하겠습니다. 이게 메모리가 모자라면 알아서 그만큼 멈추는지 직접 확인을 못 해봤거든요. Docker 자체에서 따로 메모리 제한을 걸 수 있긴 한데…
    참고 : https://docs.docker.com/config/containers/resource_constraints/
  • profile
    쮸쀼쮸쀼 2020.04.06 00:03
    이게 CPU나 메모리 제한 설정이 프로그램 자체가 아니라 Rosetta@home 홈페이지 계정 쪽 환경설정에 있네요. Manager 프로그램에서 설정을 덮어쓸 수도 있는 모양이지만요. 그렇다면 조금 안심이네요.
  • profile
    슬렌네터      Human is just the biological boot loader for A.I. 2020.04.05 23:54
    딸기컴도 없고 리눅스 모르는 컴맹이지만,

    노란 경고문을 보고선 왠지 모르게 하고싶은 욕구가 드는군요 ㅎ
  • profile
    쮸쀼쮸쀼 2020.04.06 00:10
    우와아아아앙? 청개구리 심보입니다?

작성된지 4주일이 지난 글에는 새 코멘트를 달 수 없습니다.


  1. No Image

    [유튜브] 요즘 C 언어로 작성된 게임을 엑스박스 오리지널에 포팅하는 영상.

      유투버 Modern Vintage Gamer 님이 C로 작성된 게임 코드를 오리지널 엑스박스에서 구동되도록 포팅하는 영상입니다. 같은 C기는 하지만 컴파일러 버전이나 라이브러리 연식때문에 쉽지마는 않습니다.   홈브류같은데 관심이 있으시다...
    Date2020.04.07 일반 ByPHYloteer Reply2 Views1252
    Read More
  2. No Image

    트위터의 비공개 정보가 파이어폭스 캐시에 남음

    트위터는 파이어폭스에서 트위터를 접속, 사용했을 때 파이어폭스의 캐시에 트위터의 비공개 정보가 저장된다고 발표해습니다. 파이어폭스는 트위터의 캐시를 7일 동안 저장하며, 이 기간이 지나면 캐시는 자동으로 삭제됩니다. 파이어폭...
    Date2020.04.06 소식 By낄낄 Reply5 Views857
    Read More
  3. No Image

    코로나 19 때문에 코볼 프로그래머를 구하는 뉴저지 주정부

    미국 뉴저지 주에서 코로나 19 때문에 문을 닫는 사업장이 우후죽순처럼 생겨나면서 실업자가 무려 1600% 늘어났습니다. 뉴저지 주정부는 지난 2주 동안 제출받은 362,000건 이상의 실업 급여 신청을 처리하기 위해 1980년대에 도입한 시...
    Date2020.04.06 소식 By낄낄 Reply19 Views1329
    Read More
  4. No Image

    Zoom, 앞으로 3달 동안은 보안 문제에만 집중할 것

    Zoom은 상당히 유명하고 쓸 만한 원격화상회의 플랫폼입니다만, 보안이나 개인정보보호에 있어서는 지속적으로 상당히 취약한 모습을 보여주는 게 사실인지라 가끔 쓰면서도 좀 찝찝한 물건입니다. 당장 여기에만 해도 지난 1~2주 사이 Zo...
    Date2020.04.06 소식 By쮸쀼쮸쀼 Reply1 Views528
    Read More
  5. No Image

    마이크로소프트 엣지, PC에서 파이어폭스를 점유율로 제쳐

    마이크로소프트 엣지가 전 세계에서 두 번째로 널리 쓰이는 PC용 웹브라우저로 올라섰다. 구글 크롬에 이어 줄곧 2위를 지키고 있던 모질라 파이어폭스는 근소한 차이로 3위로 밀렸다.   시장조사업체 넷마켓셰어가 최근 공개한 PC용 웹브...
    Date2020.04.06 소식 Bytitle: 어른이웹서비스 Reply13 Views891
    Read More
  6. No Image

    라즈베리 파이 4B에서 Rosetta@home 돌리기 feat. Docker

    ※ 주의사항 이 매뉴얼을 부주의하게 따라했다가 발생하는 어떠한 피해도 저는 책임질 수 없습니다. 이 매뉴얼의 전체 내용은 오직 방열판과 쿨링판이 장착된 라즈베리 파이 4 모델 B 메모리 4GB 제품에서만 테스트되었습니다. 방열판 등 ...
    Date2020.04.05 일반 By쮸쀼쮸쀼 Reply11 Views1449
    Read More
  7. 이베이 카스퍼스키 선발대... 추락!

    저번에 카스퍼스키 인터넷 시큐리티 싸게 샀다고 글을 썼는데요 좀 쓰다가 최근에 백신이 아예 없으면 눈에 띄게 좋을까? 어차피 클린 인터넷생활하니 괜찮겠지 생각하다가 그래도 역시 있어야지 하고 다시 까는데... 코드입력은 이렇고 ...
    Date2020.04.05 일반 Bytitle: 가난한SOCOM Reply3 Views948 file
    Read More
  8. No Image

    애플 뮤직이 전세계 스트리밍 서비스 2등

    2019년의 전세계 유료 음악 스트리밍 서비스의 순위입니다. 스포티파이 35%, 애플 뮤직 19%, 아마존 뮤직 15%, 텐센트 뮤직 15%, 구글 뮤직 6%, 기타 14%입니다.
    Date2020.04.05 소식 By낄낄 Reply5 Views514 file
    Read More
  9. 192MB 램에서 윈도우 10 실행 성공

    윈도우 10은 최소 1GB의 시스템 메모리가 필요하다고 하지만, 꼭 그런건 아닙니다. 오라클 VM 버추얼박스에서 시스템 메모리 할당을 줄여가며 윈도우 10 32비트 1909 업데이트를 실행해 테스트한 결과인데요. 512MB부터 시작해서 256MB, 1...
    Date2020.04.04 소식 By낄낄 Reply12 Views2689 file
    Read More
  10. No Image

    라즈베리 파이와 스마트폰에서 폴딩앳홈 실행 가능

    라즈베리 파이와 스마트폰에서 폴딩앳홈을 실행할 수 있게 됐습니다. 폴딩앳홈은 요새 코로나 19 바이러스를 연구하는 프로젝트로 유명하지요. arm64 아키텍처에서 실행하는 방법인데 https://www.youtube.com/watch?v=D78pQ7mfAGI&fe...
    Date2020.04.04 소식 By낄낄 Reply7 Views560
    Read More
  11. 전세계 백만km의 해저 케이블, 이걸로 충분한가?

    IIJ Technical DAY 2019에서 IIJ-II의 주임 연구원인 Zachary Bisch가 Untangling the world-wide mesh of undersea cables(전세계를 두른 해저 케이블을 풀어내기)라는 제목으로 한 강연 내용을 요약했습니다. 현재 400개의 해저 케이블...
    Date2020.04.04 소식 By낄낄 Reply13 Views3103 file
    Read More
  12. No Image

    윈도우 인증 정보를 도용하는 Zoom의 취약점이 수정됨

    Zoom의 윈도우 클라이언트를 통해 윈도우 인증 정보가 도용되는 취약점이 수정됐습니다. Zoom에서 UNC (Universal Naming Convention) 경로를 통해 윈도우 파일 공유 프로토콜인 SMB가 사용자 이름과 NTLM 인증 암호 해시를 사용해 링크를...
    Date2020.04.04 소식 By낄낄 Reply0 Views661
    Read More
  13. No Image

    가상머신 전용 OS의 외부접근은 막아두는 편이 좋나요?

      최근 미니PC에 VMware ESXi 6.7을 설치해서 공부중에 있습니다.   그런데 아무래도 서버라는게 본인 집에 두고 사용하기보단 외부지에 두고 원격으로 컨트롤하는게 기본이잖아요?   서버 대여업체도 그런식으로 굴러가고 있고...     그...
    Date2020.04.04 질문 By노예MS호 Reply16 Views810
    Read More
  14. 윈더10 1909에서 sysprep이 안먹히는 경우

    윈도우 10 1909이 3월쯤 업데이트 이후에 sysprep프로그램이 충돌후 안먹혀서 고생하시는분들이 계시더군요.   이건 시스템빌더들이 배포판만들기 좋으라고 넣어주는 프로그램으로 알고 있는데.. 4월 버전을 떠놓으려고 보니 아무 예고도 ...
    Date2020.04.03 일반 By고자되기 Reply6 Views946 file
    Read More
  15. 비밀번호 조건을 맞춰주세요

    버거킹에서 햄버거나 하나 시켜 먹을려고 들어갔는데 회원 계정을 못 쓰겠네요. 시키는 대로 숫자와 영문, 특수문자를 조합해서 10자로 맞췄는데도 저럽니다. 쟤들이 원하는 조합이 분명 따로 있을텐데, 저 설명만 가지고는 뭐가 뭔지 알...
    Date2020.04.02 일반 By낄낄 Reply18 Views1010 file
    Read More
목록
Board Pagination Prev 1 ... 140 141 142 143 144 145 146 147 148 149 ... 364 Next
/ 364

최근 코멘트 30개

현아이디어
AMD
MSI 코리아

공지사항        사이트 약관        개인정보취급방침       신고와 건의


기글하드웨어는 2006년 6월 28일에 개설된 컴퓨터, 하드웨어, 모바일, 스마트폰, 게임, 소프트웨어, 디지털 카메라 관련 뉴스와 정보, 사용기를 공유하는 커뮤니티 사이트입니다.
개인 정보 보호, 개인 및 단체의 권리 침해, 사이트 운영, 관리, 제휴와 광고 관련 문의는 이메일로 보내주세요. 관리자 이메일

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소