annotate text/abyss.tex @ 17:a873cb5949cd default tip

Fix format.
author Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
date Tue, 15 Sep 2020 16:55:43 +0900
parents 404d88c60399
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
6056683ef01e Modify the correct template.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 \section{Abyssサーバー}
17
a873cb5949cd Fix format.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
2 本稿で提案しているAbyssサーバーはクライアント側から送られたRakuスクリプトを実行するためのサーバーである.
6
246b5d78aa68 Replace \par to \n.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
3
15
1363cbcfcdf3 Fix format.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
4 Figure2はAbyssサーバーを用いたRakuの実行手順である.
10
077fb40023ba Format text.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
5 AbyssサーバーはユーザーがRakuを直接立ち上げるのではなく, まず同一ホスト内でAbyssサーバーを起動し, ユーザーはAbyssサーバーにファイルパスをソケット通信で送り, Abyssサーバーがファイルを開き実行し, その実行結果をユーザーに返す.
6
246b5d78aa68 Replace \par to \n.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
6
2
6056683ef01e Modify the correct template.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 \begin{center}
6056683ef01e Modify the correct template.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 \includegraphics[width=80mm]{images/abyss.pdf}
6056683ef01e Modify the correct template.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 \caption{Abyssサーバーを用いたRakuの実行}
6056683ef01e Modify the correct template.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 \label{fig:Abyss_execute}
6056683ef01e Modify the correct template.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 \end{center}
6056683ef01e Modify the correct template.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12
16
404d88c60399 Fix format.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 15
diff changeset
13 \section{Abyssサーバーの高速化}
14
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
14 Rakuは開発中のため, 主なアプリケーションはコンパイラとテストコードしかない.
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
15 最初の目標として, テストの高速化を行う.
16
404d88c60399 Fix format.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 15
diff changeset
16 % 現状では..秒かかる.
404d88c60399 Fix format.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 15
diff changeset
17 % テストは..項目あり, 連続的に実行される.
14
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
18 我々の方法では, テストスクリプトをサーバーに連続的に送り実行することになる.
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
19 この時に, 毎回コンパイラをロードしなおすのでは高速化にならない.
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
20 サーバーからの出力はソケット経由で行われるが, 各テスト項目ごとにソケットのopen/closeを繰り返すのは望ましくない.
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
21
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
22 一方で, 前のテストの結果が次のテストに影響することは望ましくない.
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
23 例えば, 大域変数が残っていたりする場合である.
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
24 これらの後始末をする必要がある.
2
6056683ef01e Modify the correct template.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
14
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
26 複数のテストの実行や入出力をパイプライン的に実行することにより, 高速化が可能だと思われる.
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
27
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
28 パイプライン実行は並列実行と異なり, 個々のテストは並行に実行されない.
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
29 サーバー上での並列実行を可能にするには, 複数の実行ワーカーを用意すればよい.
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
30
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
31 これらの内容により, テストを高速で実行することが最初の目標となる.
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
32
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
33 実際のスクリプト環境として使用する場合には, 実行するスクリプト間での干渉を抑える必要がある.
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
34 しかし, JITコンパイルされた結果を再利用しないとすると, 実行時間は不利になる.
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
35 これらを調整する仕組みとAPIを開発し, 評価する必要がある.
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
36
9b3f9bff4911 copletion.
Kaito Okura <e175748@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
37 現在は, Abyssサーバーの実行の再現を行なっている.