WEKO3
アイテム
{"_buckets": {"deposit": "ca9279e8-77b3-4cc3-9cb7-b9f6c4ce2a1a"}, "_deposit": {"created_by": 13, "id": "9146", "owners": [13], "pid": {"revision_id": 0, "type": "depid", "value": "9146"}, "status": "published"}, "_oai": {"id": "oai:uec.repo.nii.ac.jp:00009146", "sets": ["198"]}, "author_link": ["24983"], "control_number": "9146", "item_10006_date_granted_11": {"attribute_name": "学位授与年月日", "attribute_value_mlt": [{"subitem_dategranted": "2019-03-25"}]}, "item_10006_degree_grantor_9": {"attribute_name": "学位授与機関", "attribute_value_mlt": [{"subitem_degreegrantor": [{"subitem_degreegrantor_name": "電気通信大学"}]}]}, "item_10006_degree_name_8": {"attribute_name": "学位名", "attribute_value_mlt": [{"subitem_degreename": "修士"}]}, "item_10006_description_10": {"attribute_name": "学位授与年度", "attribute_value_mlt": [{"subitem_description": "2018", "subitem_description_type": "Other"}]}, "item_10006_description_7": {"attribute_name": "抄録", "attribute_value_mlt": [{"subitem_description": "プログラムが実際にどのようにして動作しているかを理解することは, プログラミングにおいて重要なことの一つである. しかしマルチスレッドプログラムは逐次処理と異なり, ソースコード上は一つの操作に見えても実は不可分でない操作やメモリの可視性などが原因でソースコードの見た目通りにプログラムが動いていないため, 実際の動作がわかりにくい. また, マルチスレッドのバグは発生確率が低いものがあるだけでなく環境によって全く発生しない場合があり, 実際に参考書などに記載されているバグのサンプルを手元の環境で試しても発生しないことがある.\n\nそこで, マルチスレッドプログラムがどのように動作しているのか, シングルスレッドプログラムと同じようにプログラミングしてしまうとどのような動作をしてどのような問題が発生するのかなどの動作原理の概要を学ぶためのツールを開発した.\n\nマルチスレッド特有のバグのうち, デッドロックは既に可視化が行われている. そこで, 本研究では競合状態やメモリの可視性など, よりハードウェア側に近い動作の可視化した.\n\n実機ではメモリモデルの違いやコンパイラの最適化の違いなどにより全ての可能性を再現することはできないため, 逐次処理プログラミング経験者向けビジュアルプログラミング言語による入力およびハードウェアレベルのプログラムアニメーションを行うシミュレータとして作成した.\n\n全ての可能性を提示する方法としてモデル検査によりバグのあるパターンを検出して自動実行する方法と手作業で全パターンを実行できるようにする方法が考えられる. 本研究では学習を目標とするため, バグの有無にかかわらず全ての可能性を実行できるように後者を選択した. ユーザは複数の可能な操作から一つを選ぶことで, スレッドスケジューリングやハードウェアによる動的な実行順序の並び替えをシミュレートできる.\n\n評価実験により, 提案システムはマルチスレッドの並列プログラムの理解支援に一定の有効性を示した. 一方で, プログラムアニメーションが手動であるために見落としが発生した.", "subitem_description_type": "Abstract"}]}, "item_10006_text_22": {"attribute_name": "専攻", "attribute_value_mlt": [{"subitem_text_value": "情報理工学研究科"}, {"subitem_text_value": "情報・ネットワーク工学専攻"}]}, "item_10006_version_type_18": {"attribute_name": "著者版フラグ", "attribute_value_mlt": [{"subitem_version_resource": "http://purl.org/coar/version/c_ab4af688f83e57aa", "subitem_version_type": "AM"}]}, "item_creator": {"attribute_name": "著者", "attribute_type": "creator", "attribute_value_mlt": [{"creatorNames": [{"creatorName": "藤本, 明優", "creatorNameLang": "ja"}, {"creatorName": "フジモト, アキマサ", "creatorNameLang": "ja-Kana"}], "nameIdentifiers": [{"nameIdentifier": "24983", "nameIdentifierScheme": "WEKO"}]}]}, "item_files": {"attribute_name": "ファイル情報", "attribute_type": "file", "attribute_value_mlt": [{"accessrole": "open_date", "date": [{"dateType": "Available", "dateValue": "2019-04-23"}], "displaytype": "detail", "download_preview_message": "", "file_order": 0, "filename": "1731135.pdf", "filesize": [{"value": "1.3 MB"}], "format": "application/pdf", "future_date_message": "", "is_thumbnail": false, "licensetype": "license_free", "mimetype": "application/pdf", "size": 1300000.0, "url": {"label": "1731135.pdf", "url": "https://uec.repo.nii.ac.jp/record/9146/files/1731135.pdf"}, "version_id": "fa2391f7-8330-413b-bb62-196aa7415445"}]}, "item_language": {"attribute_name": "言語", "attribute_value_mlt": [{"subitem_language": "jpn"}]}, "item_resource_type": {"attribute_name": "資源タイプ", "attribute_value_mlt": [{"resourcetype": "thesis", "resourceuri": "http://purl.org/coar/resource_type/c_46ec"}]}, "item_title": "並列プログラム理解支援のための細粒度プログラムアニメーション", "item_titles": {"attribute_name": "タイトル", "attribute_value_mlt": [{"subitem_title": "並列プログラム理解支援のための細粒度プログラムアニメーション", "subitem_title_language": "ja"}]}, "item_type_id": "10006", "owner": "13", "path": ["198"], "permalink_uri": "https://uec.repo.nii.ac.jp/records/9146", "pubdate": {"attribute_name": "PubDate", "attribute_value": "2019-04-23"}, "publish_date": "2019-04-23", "publish_status": "0", "recid": "9146", "relation": {}, "relation_version_is_last": true, "title": ["並列プログラム理解支援のための細粒度プログラムアニメーション"], "weko_shared_id": -1}
並列プログラム理解支援のための細粒度プログラムアニメーション
https://uec.repo.nii.ac.jp/records/9146
https://uec.repo.nii.ac.jp/records/9146cb457838-d0d2-4a1a-83f3-80fe6e01db05
名前 / ファイル | ライセンス | アクション |
---|---|---|
1731135.pdf (1.3 MB)
|
|
Item type | 学位論文 / Thesis or Dissertation(1) | |||||
---|---|---|---|---|---|---|
公開日 | 2019-04-23 | |||||
タイトル | ||||||
言語 | ja | |||||
タイトル | 並列プログラム理解支援のための細粒度プログラムアニメーション | |||||
言語 | ||||||
言語 | jpn | |||||
資源タイプ | ||||||
資源タイプ識別子 | http://purl.org/coar/resource_type/c_46ec | |||||
資源タイプ | thesis | |||||
著者 |
藤本, 明優
× 藤本, 明優 |
|||||
抄録 | ||||||
内容記述タイプ | Abstract | |||||
内容記述 | プログラムが実際にどのようにして動作しているかを理解することは, プログラミングにおいて重要なことの一つである. しかしマルチスレッドプログラムは逐次処理と異なり, ソースコード上は一つの操作に見えても実は不可分でない操作やメモリの可視性などが原因でソースコードの見た目通りにプログラムが動いていないため, 実際の動作がわかりにくい. また, マルチスレッドのバグは発生確率が低いものがあるだけでなく環境によって全く発生しない場合があり, 実際に参考書などに記載されているバグのサンプルを手元の環境で試しても発生しないことがある. そこで, マルチスレッドプログラムがどのように動作しているのか, シングルスレッドプログラムと同じようにプログラミングしてしまうとどのような動作をしてどのような問題が発生するのかなどの動作原理の概要を学ぶためのツールを開発した. マルチスレッド特有のバグのうち, デッドロックは既に可視化が行われている. そこで, 本研究では競合状態やメモリの可視性など, よりハードウェア側に近い動作の可視化した. 実機ではメモリモデルの違いやコンパイラの最適化の違いなどにより全ての可能性を再現することはできないため, 逐次処理プログラミング経験者向けビジュアルプログラミング言語による入力およびハードウェアレベルのプログラムアニメーションを行うシミュレータとして作成した. 全ての可能性を提示する方法としてモデル検査によりバグのあるパターンを検出して自動実行する方法と手作業で全パターンを実行できるようにする方法が考えられる. 本研究では学習を目標とするため, バグの有無にかかわらず全ての可能性を実行できるように後者を選択した. ユーザは複数の可能な操作から一つを選ぶことで, スレッドスケジューリングやハードウェアによる動的な実行順序の並び替えをシミュレートできる. 評価実験により, 提案システムはマルチスレッドの並列プログラムの理解支援に一定の有効性を示した. 一方で, プログラムアニメーションが手動であるために見落としが発生した. |
|||||
学位名 | ||||||
学位名 | 修士 | |||||
学位授与機関 | ||||||
学位授与機関名 | 電気通信大学 | |||||
学位授与年度 | ||||||
内容記述タイプ | Other | |||||
内容記述 | 2018 | |||||
学位授与年月日 | ||||||
学位授与年月日 | 2019-03-25 | |||||
著者版フラグ | ||||||
出版タイプ | AM | |||||
出版タイプResource | http://purl.org/coar/version/c_ab4af688f83e57aa | |||||
専攻 | ||||||
情報理工学研究科 | ||||||
専攻 | ||||||
情報・ネットワーク工学専攻 |