# HG changeset patch # User Ken Miyahira # Date 1600091643 -32400 # Node ID 22f062ff21a2a898a32a3346cfd77944fd97f595 # Parent 98aae86b04e90f74f42706098db0d04c460a8788 update tex diff -r 98aae86b04e9 -r 22f062ff21a2 mid_thesis.pdf Binary file mid_thesis.pdf has changed diff -r 98aae86b04e9 -r 22f062ff21a2 mid_thesis.tex --- a/mid_thesis.tex Mon Sep 14 20:19:44 2020 +0900 +++ b/mid_thesis.tex Mon Sep 14 22:54:03 2020 +0900 @@ -7,31 +7,30 @@ \lhead{\parpic{\includegraphics[height=1zw,keepaspectratio,bb=0 0 251 246]{pic/emblem-bitmap.pdf}}琉球大学主催 工学部工学科知能情報コース 中間発表予稿} \usepackage[top=2cm, bottom=2cm, left=1cm, right=1cm]{geometry} - \begin{document} -\title{情報工学科演習用のコンテナ技術を用いたサービスの設計・実装 +\title{情報工学科演習用のコンテナ技術を用いたサービスの設計・実装 \\ Design and Implementation of service using container technology for Information science exercise} \author{175733E 氏名 {宮平 賢}{Miyahira Ken} 指導教員 : {河野 真治} } %\date{} \maketitle -\begin{abstract} -情報技術の普及に伴い情報系の学生が課題や演習を行う学習環境が必要である。 -学習環境を複数の学生に提供する方法として, VM や コンテナがある。 -琉球大学工学部では VM 貸出サービスがある。 -課題や演習によっては CPU より GPU が必要となる場合がある。 -しかし, 本コースの VM 貸出サービスは GPU の共有に対応していない。 -そこで, コンテナ仮想化技術を利用できる Docker と Kubernetes, Singularity を用いて, GPU を含む学習環境を提供する。 -本稿では学習環境を提供するサービスの設計・実装を行う。 - +%\begin{abstract} +%情報技術の普及に伴い情報系の学生が課題や演習を行う学習環境が必要である。 +%学習環境を複数の学生に提供する方法として, VM や コンテナがある。 +%琉球大学工学部では VM 貸出サービスがある。 +%課題や演習によっては CPU より GPU が必要となる場合がある。 +%しかし, 本コースの VM 貸出サービスは GPU の共有に対応していない。 +%そこで, コンテナ仮想化技術を利用できる Docker と Kubernetes, Singularity を用いて, GPU を含む学習環境を提供する。 +%本稿では学習環境を提供するサービスの設計・実装を行う。 +% %この学習環境では, 課題や演習によっては並列処理により, CPU より GPU が必要となる場合がある。 %このような学習環境を複数の学生に提供する方法として, VM や コンテナがある。 %しかし, 琉球大学工学部で運用している VM 貸出サービスでは, GPU の共有に対応していない。 %また, PC 上からコンテナへの操作を可能にするために Kubernetes でのコンテナ作成にも対応する。 %コンテナ貸出サービスは LDAP で管理された学生のアカウントを使用することで, 適切にコンテナの管理を行う。 %本稿ではサービスを実装する上で必要な技術概要を延べ, サービスの設計・実装を行う。 -\end{abstract} +%\end{abstract} \renewcommand{\abstractname}{Abstract} @@ -44,17 +43,14 @@ In this paper, we design and implement a service that provides a learning environment. \end{abstract} -%\thispagestyle{fancy} +\thispagestyle{fancy} \begin{multicols*}{2} - \section{コンテナ技術を用いた学習環境の提供} 情報通信技術の普及に伴い学生が学ぶ学習環境が必要となる。その学習環境として VM や コンテナにより, 手軽に開発し試せる技術が普及している。 だが, 手元の PC 上で VM や コンテナを立ち上げ, 開発を行うことはできるが, VM や コンテナの使用には高性能 PC や 有料のクラウドサービスが必要になる場合がある。 この大きな負担を学生に負わせない仕組みが必要である。 \par -%琉球大学工学部工学科知能情報コースでは新たに人工知能やシステム開発などの先端技術を身につける講義や実験が設けられた。 -%講義の演習や実験は学生の PC で環境を構築し実行する。 本コースでは希望する学生に学科のブレードサーバから仮想環境を貸出すサービスを行なっている。 貸出 VM スペックは CPU 1コア, メモリ 1GB, ストレージ 10GB である。 このスペックで不足する場合, 要望に応じてスペックの変更を行なっている。 @@ -63,18 +59,11 @@ しかし, 現在の VM 貸出サービスでは GPU の共有に対応していない。 VM 上で GPU を共有するには PCI パススルーを利用することで可能だが, PCI パススルーでは複数の VM に共有することができない。 そこで, GPU を含めた学習環境をコンテナ技術を用いて提供するサービスの設計・実装を行う。 -%GPU が搭載されている PC は研究室によっては用意されているが, 研究室に所属していない学生は利用することができない。 -%そのため, 本コースの学生が高性能な環境を利用できる新たな仕組みが必要である。 -%\par -%学科のブレードサーバに搭載される GPU は VM の貸出サービスでは利用することができない。そこでコンテナ技術を利用する。 -%コンテナ管理ソフトウェアである Docker\cite{docker} では NVIDIA Container Toolkit である nvidia-docker\cite{nvidia-docker} を利用することで, 複数のコンテナで GPU を共有することができる。 -%Docker は基本的に root 権限で動作する。また一般ユーザが docker コマンドを使用するには docker グループに追加する必要がある。 -%そのため Docker をマルチユーザ環境で使用すると, 他ユーザのコンテナを操作できるなどセキュリティ上の問題がある。\par -%そこで, 本論文では, Docker とマルチユーザ環境で利用しやすいコンテナプラットフォームである Singularity\cite{singu} を利用したコンテナ貸出サービスを設計・実装する。 -%このコンテナ貸出サービスでは, Web コンソールからコンテナの管理をすることで他ユーザのコンテナへの操作をさせない。 + +\vspace{-2zh} \section{技術概要} -%本研究で使用した仮想化技術, コンテナ技術, また本コースで利用しているサービスについての概要を説明する。 +本研究で使用したコンテナ仮想化技術, また本コースで利用しているサービスについての概要を説明する。 \subsection{Docker} Docker とは OS レベルの仮想化技術を利用して, ソフトウェアをコンテナと呼ばれるパッケージで提供する。またコンテナの実行だけでなく, @@ -247,8 +236,9 @@ \end{figure} \subsection{GPU の利用} -Docker では NVIDIA Container Toolkit である nvidia-docker\cite{nvidia-docker} を利用する。 -GPU を利用するための環境が整っている nvidia/cuda を用いてイメージの作成を行う。 +GPU を使った学習を行うには NVIDIA Container Toolkit である nvidia-docker\cite{nvidia-docker} を利用する。 +nvidia-docker を導入することで, GPU を利用するための環境が整っている nvidia/cuda イメージを利用することが可能となる。 +GPU を使った学習環境を利用するには nvidia/cuda でイメージを作成する。 作成したイメージをコンテナ作成時の表\ref{tb:wmcon} の Docker イメージに入力する。 また GPU を利用するかのチェックを入れることで, コンテナへ GPU を共有することが可能となる。