changeset 72:c119afd8e948

describe rpar
author Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
date Thu, 13 Feb 2014 13:27:38 +0900
parents 98a55a935619
children 7c3503a9bfcf
files slides/master.html
diffstat 1 files changed, 22 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/slides/master.html	Thu Feb 13 13:02:59 2014 +0900
+++ b/slides/master.html	Thu Feb 13 13:27:38 2014 +0900
@@ -107,20 +107,31 @@
         <p> モナドの例:IOモナド、エラーモナド、STMモナド </p>
 </article>
 
-			<article>
-				<h3>
-          Haskell の並列処理
-				</h3>
-        <p>
-        rparの例
-        </p>
-			</article>
+<article>
+				<h3> Haskell の並列処理 </h3>
+        <p> sumという1つ目の引数から2つ目の引数までの全ての数を足す関数があるとする </p>
+        <p> rpar の引数にすることで関数が並列に実行可能であることを示せる </p>
+        <p> do ~ returnで rpar を 1 つにまとめ、runEvalに渡すことで実行する </p>
+<pre>
+main = print (runEval test)
+
+test = do
+       a &lt;- rpar (sum 0     10000)
+       b &lt;- rpar (sum 10000 20000)
+       return (a,b)
+</pre>
+        <p> a と b が並列に計算される</p>
+</article>
 
 <article>
 				<h3> Haskell の遅延評価 </h3>
         <p> 並列実行は遅延評価が問題になる </p>
         <p> haskell では値が必要となるまで式の評価が行われない </p>
         <p> 並列に実行するように指示しても、評価が行われなければ並列に動かない </p>
+        <p> さきほどの例ではprintを行うようにしていた</p>
+<pre>
+main = print (runEval test)
+</pre>
 </article>
 
 <article>
@@ -365,9 +376,11 @@
 
 <article>
 				<h3> まとめ </h3>
-        <p> 純粋関数型言語 Haskell を用いて並列データベースの実装をおこなった </p>
+        <p> Haskell を用いて信頼性の高い並列データベースの実装した </p>
+        <p> Haskell の並列処理は、最新のコンパイラで性能がでることがわかった </p>
         <p> 読み込みに関して 12 コアで実行した場合、10.37 倍 という性能向上率が確認できた </p>
         <p> また、Web 掲示板サービスを開発し、Java と比較して読み込みで 3.25 倍、書き込みで 3.78 倍の性能が確認できた </p>
+        <p> Network 越しの計測では並列性能があまり出ていないことがわかった </p>
 </article>
 
 <article>