% 南山大学 理工学部 予稿用サンプルファイル
% 小市俊悟
% 2017年9月18日 作成
% 南山大学 理工学部 要旨用サンプルファイル
% 石原靖哲
% 2018年11月19日 修正

\documentclass[twoside,twocolumn,10pt]{jsarticle}
\usepackage{latexsym}        % 数学記号を増やすためのパッケージ
\usepackage{amssymb,amsmath} % 複雑な数式を書くためのパッケージ
\usepackage[dvipdfmx]{graphicx} % グラフィクスを使うためのパッケージ
\usepackage{enumerate}       % enumerate環境を高機能にするためのパッケージ
\usepackage{stabst}         % 理工学部の予稿用スタイル
%\english %英語で論文を書く場合に宣言する. jasrticle の代わりに article を使用すること. 


\title{命令型プログラミング言語におけるプログラム可逆化}
%\subtitle{—要旨の場合—} % 副題がない場合はこの行をコメントアウトする．
                        % 副題を囲む横棒は全角ダッシュ文字を使う．
\author{M2019SE009 渡邉将匡}
\professor{指導教員：横山哲郎}

\begin{document}
\maketitle

\section{はじめに}
\label{sec:introduction}
・PDESと呼ばれるシミュレーションがある

　・PDESは並列にシミュレーションを実行し，楽観的に計算を行うことによって実行速度を高速化している
・PDESの高速化技法に可逆計算を用いた方法がある

　・PDESは楽観的に計算を行うため，計算に誤りが生じた場合は計算結果が正しかった状態まで遡らなければならない

　・従来の方法では，シミュレーションプログラムの状態を保存する方法だったが，この方法では状態の保存に多大なオーバヘッドがかかる

　・対して，可逆計算を用いた方法では状態の保存よりも小さい空間計算量の制御情報の保存で済むため，オーバヘッドの減少と共にキャッシュ効率も上がり，実行速度が高速になる

・PDESに可逆計算を用いるには，シミュレーションプログラムを可逆化する必要がある

・プログラムの可逆化技法はPerumallaの方法\cite{rcc}が知られている

　・しかし，Perumallaの方法には正しく値を復元できない可逆化の定義が含まれており，また，必要以上の情報の保存を含む可逆化の定義も含まれている

　・正しく値を復元できないと，予期せぬエラーやバグが発生する可能性がある

　・情報が必要以上に保存されると，オーバヘッドが増加し，実行性能に悪影響を及ぼす可能性がある

　・そこで，それらの可逆化の定義を改善した可逆化のアイデアを提案する
　
\section{関連研究}
可逆性の有用性（PDES, Debugging, RCA, Algorithms, Circuit Design, Quantum Computation, Bidirectional transformations）

文献\cite{Moge11,UNU.RAN,rcc,pdes_c++,pdes,Schordan2020}

\section{最適化手法}
\begin{itemize}
    \item 局所変数を記憶しなくて良い場合
    \item 制御情報の圧縮
    \begin{itemize}
         \item （中間審査まではやらない：算術符号を応用する）
    \end{itemize}
\end{itemize}


\section{評価}
\begin{itemize}
    \item switchの例
    \item 三重ループ（Glueckらの論文のもの）
    \item 手動でプログラムを作成
    \item メモリ使用量を手動で計算する（解析でOK）
\end{itemize}

\section{むすび}


\bibliographystyle{ipsjunsrt}
\bibliography{ref}

\end{document}
