研究課題/領域番号 |
18K02916
|
研究機関 | 大阪工業大学 |
研究代表者 |
水谷 泰治 大阪工業大学, 情報科学部, 准教授 (10411414)
|
研究期間 (年度) |
2018-04-01 – 2022-03-31
|
キーワード | 並列プログラミング / プログラミング教育 / マルチスレッド |
研究実績の概要 |
本研究は視覚効果を体感できる図形アニメーションに着目し,並列プログラミングへの学習意欲を高く維持できる学習環境と学習教材を明らかにすることを目的としている. 平成30年度は,Processing言語を用いた並列描画処理手法の実装に取り組んだ.Processingでマルチスレッドによって単純に描画処理を並列化した場合,競合が発生して意図通りの描画がされないことがある.これは,各スレッドが描画領域を表すオブジェクトを共有しており,描画処理において競合が発生するためである.この問題に対処するために,スレッド毎に描画領域を割り当て,描画後に各スレッドの描画結果の画像を重ね合わせることで意図通りの描画結果になる手法を構築した.本手法ではProcessingのblend関数を用いて画像の重ね合わせを行っている. また,上記の取り組みとは独立に,大学のプログラミング演習における私有ノートPC上の開発環境の構築にも取り組んだ.これは,近年大学において学生の私有ノートPCを用いてプログラミング演習を行う事例が増えてきており,本研究課題において今後並列プログラミングの学習環境を使用させる際に学生の私有ノートPCで動作させる必要があると考えられるためである.この取り組みでは,まずC言語による基本的なプログラミングを対象に,Windows上で開発でき,かつプログラミングの初学者が容易に導入して安定的に利用できるプログラミング環境を構築した.また,本学の初年次Cプログラミング演習において使用した.この研究成果は学会で発表した.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
3: やや遅れている
理由
今年度の取り組みで実装したProcessing言語の並列描画処理手法により,描画メソッドをスレッドセーフな形で呼び出して図形を描画することが可能となった.しかし,そのプログラムの書き方はJavaのマルチスレッド関連のクラスを直接使用するものであり,十分に抽象化されているとは言えない.そのため,並列プログラミングの初学者にとってはまだ負荷が高いと言える.また,並列に描画した部分画像を重ね合わせる処理に多くの時間がかかっており,並列処理による高速化の効果が低い状態である.そのため,現状ではまだ不十分な状態である.
|
今後の研究の推進方策 |
平成31年度は,平成30年度に取り組んだProcessingにおける並列描画手法を精錬し,より高速に描画するための画像の重ね合わせの手法を確立する.Processingで用意されている重ね合わせ処理を解析し,より単純な処理に置き換えるといった方法を検討する.また,重ね合わせの処理自体を並列に処理する方法についても検討し,高速化を図る. また,並列プログラムを書きやすくするための抽象化手法についても検討する.これは,マルチスレッドを用いた並列処理の煩雑な記述を隠蔽し,並列処理の本質的な部分のみを記述させるようなクラスを設計することで実現を目指す.さらに,並列処理の実行状況の可視化についても検討を始める.
|
次年度使用額が生じた理由 |
申請額からの減額に伴い,当初予定していた機材の購入台数を削減したことにより使用額を低額に抑えた.また,当初聴講する予定であった学会への参加日数がスケジュールの都合により予定よりも短くなったため,予定よりも使用額が低額となった. 今回生じた次年度使用額は,次年度購入予定の機材の高性能化,研究成果を保管するための記憶装置の購入,および,聴講・発表する学会の数と参加日数の増加などに割り当てる.
|