?


tex
tex

ポスター


われる.\n\nSparkは,データをRDD(Resilient Distributed Datasets: RDD)と呼ばれる管理の単位に分割してそれぞれのノードで管理する.RDDは,メインメモリ上で管理され,必要に応じてストレージに記録される.そのため,ストレージへの記録と読み込みを毎回繰り返さなくても済むため,高速で処理を行うことができる.\n\nHadoopでは1回の分散処理ごと実行結果をストレージに記録するため,機械学習などの用途では性能が落ちてしまうという問題があったが,Sparkはそれぞれのノード上のメモリを有効活用できるため,用途によってはHadoopよりも高速に機能する.\n\nまた,SparkはWindowsやLinuxなどのプラットフォームに対応しており,JavaやScalaなどのプログラミング言語での記述がサポートされている.さらに,Java APIを経由し,実行環境にJava仮想マシンを利用する,JVM言語のサポートも行われている.\n\n拡張機能として,ノードやデータ,分散処理の管理をするSpark Coreや,管理下のデータに対してSQLによる問い合わせと処理を行うSpark SQL,グラフの処理などの機能を提供するGraphXなどが用意されている.\n\n\begin{flushleft}\n\textbf{Dask}\n\end{flushleft}\n\nDaskは,Matthew Rocklinによって開発されたコミュニティプロジェクトであり,並列分散処理行うために用いられるソフトウェアである.効率的な数値計算を行うための多次元配列のサポートとそれを操作できるように拡張された,Pythonのライブラリの1つであるNumpyや,データ解析を支援するために,時系列データや数表を操作できるデータ構造とその演算を提供している,Numpyと同様にPythonのライブラリであるPandasを,Daskは簡単に並列・分散して処理を行うことが可能である.また,Daskは,上記の2つのライブラリと競合するライブラリではなく,それらをより高機能にしたラッパーライブラリのようになっている.\n\nDaskによる分散処理は,大量のデータを複数のブロックについて分割してから,処理することにより実現される.この仕組みによって,分割されたブロックは,1度に全てのデータを読み込む必要がなくなるため,メモリ消費のピーク値を大幅に抑えることが可能となる.\n\nDaskでは,いくつかのNumpy配列を格子状に配置された状態を1つのDask配列とみなし,Numpy配列単体がDask上でのチャンクサイズとなり,同様に,Daskのデータフレームは図\ref{dask}のように,いくつかのPandasデータフレームで構成される.\n\nDaskは主にデータ分析や機械学習に利用されていて,本研究にも使われるモジュールの一つであるPandasは,大容量のデータを処理する際には,分析に使われるデータが,メモリに収まらないことや,基本的に単一のスレッドで処理が行われるため,処理速度が遅いことが問題に上げられる.Daskによる並列分散処理を行うことで,それらの問題は解決され,プログラムの処理速度向上に繋がる.\n\n\n本研究などの組み合わせ最適化は膨大な量のデータから近似最適解を探索し,処理のたびに評価し,さらなる最適解を検討しているため,最適解を求める時間が長くなり,システムとして実用的ではないことが多い.そのため,組み合わせ最適化を適応したシステムに並列分散処理を施して短い時間で解を導いている事例もいくつか存在する.\n\end{comment})

卒論

図表

#ref(): File not found: "Figure.pdf" at page "中間発表(堀)"



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS