Mesos 101 (Mesos 첫걸음)


개요

Mesos를 이용, 서버 클러스터를 운용해야 하는 상황이 되었다. Mesos 설치/운영 방법을 찾아야했는데, 정말 좋은 자료를 발견했다.

Mesos Advanced Course
https://open.mesosphere.com/advanced-course/
이름은 "Advanced Course" 이지만, Mesos 설치부터 운영까지 꼭 필요한 내용만 "쉽게" 설명한다. 동영상을 보며 따라 배우기도 좋고, 글로 요약된 내용을 뒤적이며 매뉴얼로 쓰기도 좋다.
열심히 집중하면 하루에 모든 진도를 끝내는 것도 가능할 것 같다.

특이했던 점

* ZooKeeper가 (의외로) 필수 컴포넌트
  . ZooKeeper는 HA 보장을 위한 optional 요소라고 생각했는데, 필수였다
  . ZooKeeper가 HA 보장 뿐 아니라 클러스터의 상태를 저장/관리 기능도 제공했다
  . 그래서 Mesos Master를 1개만 두는 구성에서도 ZooKeeper가 필요했다

* docker containerizer가 아닌 mesos containerizer가 디폴트
  . Mesos가 클러스터 위에서 실행시키는 모든 어플리케이션은 컨테이너다
  . 그런데 역사적으로 Mesos는 Docker보다 오래됐다
  . 그래서 Mesos의 디폴트 containerizer는 docker가 아니라 mesos containerizer 다
  . Mesos containerizer는 도커 이미지도(!) 실행시킬 수 있다


(이상)

저작자 표시 비영리 변경 금지
신고
Posted by ingee
TAG mesos

댓글을 달아 주세요

에일리언웨어(Alienware) 노트북에서 GPU를 이용, 텐서플로우(TensorFlow) 실행하기



알파고 때문에 어디선가 누군가 나와 같은 삽질을 하고 있을지도 모르겠다. 누구에게라도, 다만 한 삽이라도, 도움이 되기를 바래본다.

+ 우분투 16.04 설치:
  - USB로 우분투 설치후 부팅 => WiFi 안잡힘
  - alienware WiFi 활성화
    . $ sudo service network-manager restart 실행
    . $ cd /lib/firmware/ath10k/QCA6174/hw3.0/ && sudo wget https://github.com/kvalo/ath10k-firmware/raw/master/QCA6174/hw3.0/board-2.bin
    ...리부트...
    . WiFi AP 설정
    * 참고 :  http://askubuntu.com/questions/765838/cannot-enable-wifi-of-alienware-r2-on-ubuntu-16-04-lts
  - gpu 존재 확인
    $ lspci
   
+ NVIDIA driver & CUDA 설치
  ! CMOS 설정에서 Secure Boot 해제 (즉, disable로 설정) ==> 정말 중요!!!
  - Install the NVidia 367.35 Driver
    $] sudo add-apt-repository ppa:graphics-drivers/ppa
    $] sudo apt-get update
    $] sudo apt-get install nvidia-367
    ...리부트...
  - Download the CUDA SDK from NVidia
    . https://developer.nvidia.com/cuda-toolkit
    . cuda_8.0.61_375.26_linux.run 파일 다운로드
  - Install the CUDA SDK
    $] cd ~/Downloads
    $] sudo chmod +x cuda_8.0.27*
    $] sudo ./cuda_8.0.61_375.26_linux.run --override
    $] cd /usr/local/cuda/samples
    $] sudo make
    $] 1_Utilities/deviceQuery/deviceQuery
    $] cd ~ 
  * 참고 : https://github.com/ftlml/user-guides/wiki/Installing-TensorFlow-w-GPU-Support-on-Ubuntu-16.04-for-Pascal-architecture

+ TensorFlow 설치
  ! Python 2.7 또는 Python 3.3+ 필요 (2.7 기준으로 요약)
  - pip 설치
    $ sudo apt-get install python-pip python-dev
  - TensorFlow 설치
    $ pip install tensorflow-gpu
  - TensorFlow 설치 검증
    $ python
    >>> import tensorflow as tf
    >>> hello = tf.constant('Hello, TensorFlow!')
    >>> sess = tf.Session()
    >>> print(sess.run(hello))
    ..."Hello, TensorFlow!" 메시지가 출력되는지 확인...
  * 참고: https://www.tensorflow.org/install/install_linux#InstallingNativePip

+ (옵션) TensorFlow with docker 설치
  - docker 설치: https://docs.docker.com/engine/installation/
  - nvidia-docker 설치: https://github.com/NVIDIA/nvidia-docker
  - TensorFlow 컨테이너 실행 (1)
    $ sudo nvidia-docker run nvidia/cuda nvidia-smi
  - TensorFlow 컨테이너 실행 (2)
    $ sudo nvidia-docker run -it gcr.io/tensorflow/tensorflow:latest-gpu bash
  * 참고: https://www.tensorflow.org/install/install_linux#InstallingDocker


+ 결과 확인: nvidia GPU driver 동작 잘함

acc@acc-Alienware-17-R3:~$ nvidia-smi
Wed Mar 22 16:07:10 2017       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.39                 Driver Version: 375.39                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 980M    Off  | 0000:01:00.0     Off |                  N/A |
| N/A   53C    P8     7W /  N/A |    335MiB /  4038MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0      1236    G   /usr/lib/xorg/Xorg                             159MiB |
|    0      2160    G   compiz                                         114MiB |
|    0      7885    C   python2                                         58MiB |
+-----------------------------------------------------------------------------+


+ 결과 확인: TensorFlow에서 GPU 인식 잘함

acc@acc-Alienware-17-R3:~$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.8.0 locally
>>> tf.Session().run()
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:910] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties:
name: GeForce GTX 980M
major: 5 minor: 2 memoryClockRate (GHz) 1.1265
pciBusID 0000:01:00.0
Total memory: 3.94GiB
Free memory: 3.56GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 980M, pci bus id: 0000:01:00.0)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: run() takes at least 2 arguments (1 given)
>>> 

(이상)

저작자 표시 비영리 변경 금지
신고
Posted by ingee

댓글을 달아 주세요

YouTube 동영상


2016년 9월22일에 업로드된 동영상이다. C++ 랭귀지를 만든 Bjarne Stroustrup(베야네 스트로스트룹)이 C++의 과거와 미래에 대해 설명한다. 한번 들으면 좋은데 너무 길다 (1시간43분). 내용을 간단히 요약한다.


- C++ 성공은 운이 아니다. C++ 성공에는 분명한 이유가 있다.
+ 랭귀지 저자가 생각하는 C++
  - 하드웨어를 직접 다루는
  - 오버헤드가 전혀 없는
  - 산업계 현장에서 사용하는
  - 좋은 프로그래머에게 더욱 유용한 랭귀지

- 랭귀지는 조그만 변해도 짐스럽다(구현, 도구제작, 학습이 필요). 변화 방향을 신중하게 결정해야 한다.
+ C++ 변화 방향
  - zero-overhead
  - 메모리 leak 등이 없는 안전한 코드를 만들게 할 것이다
  - 가비지컬렉션 등으로 인한 성능저하는 없을 것이다 (피할 것이다)

+ C++17 출시 임박
  - 아직도 C++98에 머물고 있다면 C++11, C++14로 업그레이드하라.
  - 적어도 현재에 머물러 미래를 준비하라
+ 깃허브에 C++ core guideline 문서가 존재한다
  - 한국어 번역에 참여한 사람들에게 감사한다
- 우리가 매일 사용하는 SW를 보존하기 위해서라도 C++은 계속 발전해야 한다



(이상)

저작자 표시 비영리 변경 금지
신고
Posted by ingee
TAG C++만세

댓글을 달아 주세요