Mercurial > hg > Papers > 2021 > mk-thesis
diff paper/chapter/system_usage.tex @ 49:71e1425687f3
update tex
author | Ken Miyahira <e175733@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2021 23:49:40 +0900 |
parents | 47a9b8bf069b |
children | a822207b796f |
line wrap: on
line diff
--- a/paper/chapter/system_usage.tex Fri Feb 12 16:21:54 2021 +0900 +++ b/paper/chapter/system_usage.tex Fri Feb 12 23:49:40 2021 +0900 @@ -78,24 +78,23 @@ run時に--gpuオプションを指定することでコンテナ内にGPUを割り当てる. また,--ipオプションを指定することで,使用されていないIPアドレスが割り振られる. コンテナ名は指定することもできるが,ユーザ名で補完されるため,他ユーザと重複することはない. -ie-podmanを使用して,新しいコンテナの作成は下記のように行う. -\begin{lstlisting}[caption=コンテナの作成] +ie-podmanを使用して,新しいコンテナの作成はソースコード\ref{pg:ie-run}のように行う. +\begin{lstlisting}[caption=コンテナの作成, label=pg:ie-run] $ ie-podman run --ip --gpu --name [CONTAINER_NAME] [IMAGE] \end{lstlisting} 新システムにインストールされているPodmanはrootlessでコンテナイメージの作成は低速である. これは,開発段階ということが考えられる. -%新システムのユーザのホームディレクトリはCephFSで提供されているためである. ie-podmanはrootのPodmanを利用しSSD上に作成されるため,Podmanと比較し高速である. イメージ名はコンテナ名と同じくユーザ名で補完されることで,他ユーザと重複することはない. -ie-podmanを使用して,新しいイメージの作成は下記のように行う. -\begin{lstlisting}[caption=イメージのビルド] +ie-podmanを使用して,新しいイメージの作成はソースコード\ref{pg:ie-build}のように行う. +\begin{lstlisting}[caption=イメージのビルド, label=pg:ie-build] $ ie-podman build --tag [IMAGE_NAME] [CONTEXT] \end{lstlisting} -また,作成したコンテナイメージは下記の操作で一覧を表示することができる. +また,作成したコンテナイメージはソースコード\ref{pg:ie-image}の操作で一覧を表示することができる. 一覧で表示されるイメージはie-podmanで作成したイメージのみである. -\begin{lstlisting}[caption=イメージ一覧の出力] +\begin{lstlisting}[caption=イメージ一覧の出力, label=pg:ie-image] $ ie-podman images \end{lstlisting} @@ -106,8 +105,8 @@ だが,イメージのビルド中にエラーが発生すると,一からビルドを再開する必要がある. DockerやPodmanはイメージのビルド時にレイヤーごとにキャッシュされるため,Containerfileに追加や編集を行っても前回のキャッシュが使用されることで,高速にビルドが行われる. そこで,ie-podmanで作成したイメージをsifファイルへ変換する機能を作成した. -ie-podmanでイメージを作成し,下記の操作を行うことでsifファイルへ変換が行える. -\begin{lstlisting}[caption=イメージのsif変換] +ie-podmanでイメージを作成し,ソースコード\ref{pg:ie-sif}の操作を行うことでsifファイルへ変換が行える. +\begin{lstlisting}[caption=イメージのsif変換, label=pg:ie-sif] $ ie-podman sif [IMAGE_NAME] \end{lstlisting} @@ -116,15 +115,15 @@ ie-podmanからだけでなく,Podmanや手元のPCのDockerからも利用できる. レジストリへの登録には,登録するイメージにtagを付けpushする必要がある. ie-podmanでは本コースのレジストリを利用しやすくするため,簡単に操作できる機能を作成した. -ie-podmanでは下記の操作で本コースで利用するレジストリへ登録できる. -\begin{lstlisting}[caption=レジストリへの登録] +ie-podmanではソースコード\ref{pg:ie-push}の操作で本コースで利用するレジストリへ登録できる. +\begin{lstlisting}[caption=レジストリへの登録, label=pg:ie-push] $ ie-podman registry push [IMAGE_NAME] \end{lstlisting} また,レジストリに登録されているイメージ一覧を表示することも可能である. -下記の操作でイメージ一覧を表示を行う. +ソースコード\ref{pg:ie-search}の操作でイメージ一覧を表示を行う. イメージ名を指定することで,イメージのtag一覧の表示も可能である. -\begin{lstlisting}[caption=レジストリの検索] +\begin{lstlisting}[caption=レジストリの検索, label=pg:ie-search] $ ie-podman registry search $ ie-podman registry search [IMAGE_NAME] \end{lstlisting} @@ -135,31 +134,31 @@ だが,プログラムの実行にはSlurmにJobとして投下する必要がある. そのため,イメージを単一ファイルベースとして扱え,ユーザのホームディレクトリがコンテナにマウントされるSingularityを主に利用する. %プログラムを実行する環境のみをsifファイルとして構築し,実行するプログラム,データをホームディレクトリで管理することが可能である. -Singularityのコンテナの実行は,下記の操作で行える. +Singularityのコンテナの実行は,ソースコード\ref{pg:sing-run}の操作で行える. また,実行時に--nvオプションを指定することで,コンテナからGPUを利用することが可能になる. -\begin{lstlisting}[caption=Singularityの実行] +\begin{lstlisting}[caption=Singularityの実行, label=pg:sing-run] $ singularity run --nv [SIF_NAME] \end{lstlisting} 実行にはrun,exec,shellのサブコマンドがあり,runではsifファイルを作成する際に指定が可能なrunscriptが実行される. 指定されない場合はshellが起動する.また,execではイメージ内にインストールされている任意のコマンドを実行することが可能である. これらのサブコマンドを利用し,SlurmにJobを投下する際のbatchファイルを作成する. -batchファイルはソース\ref{pg:batch}の2$\sim$8行目ように,Jobに必要なリソースを定義する. +batchファイルはソースコード\ref{pg:batch}の2$\sim$8行目ように,Jobに必要なリソースを定義する. リソースの定義後に,実行したい処理を記述する. \lstinputlisting[language=Bash, numbers=left, breaklines=true, basicstyle=\ttfamily\footnotesize, frame=single, caption=batchファイル, label=pg:batch]{file/batch.bash} -batchファイルを作成後,下記の操作でJobを投下することが可能である. -\begin{lstlisting}[caption=Jobの投下] +batchファイルを作成後,ソースコード\ref{pg:sbatch}の操作でJobを投下することが可能である. +\begin{lstlisting}[caption=Jobの投下, label=pg:sbatch] $ sbatch [BATCH_FILENAME] \end{lstlisting} -また,Jobの各種情報は,下記の操作で表示することが可能である. -\begin{lstlisting}[caption=Job情報の出力] +また,Jobの各種情報は,ソースコード\ref{pg:squeue}の操作で表示することが可能である. +\begin{lstlisting}[caption=Job情報の出力, label=pg:squeue] $ squeue \end{lstlisting} -投下したJobを停止するには,下記の操作で行うことができる. +投下したJobを停止するには,ソースコード\ref{pg:scansel}の操作で行うことができる. SlurmはユーザごとにJobが管理されるため,他ユーザのJobを停止するこはできない. -\begin{lstlisting}[caption=Jobの停止] +\begin{lstlisting}[caption=Jobの停止, label=pg:scansel] $ scansel [JOB_ID] \end{lstlisting} \ No newline at end of file