# HG changeset patch # User Tatsuki IHA # Date 1438679566 -32400 # Node ID 3b7da0b661cc20aa43d9ffb75413fbf5527b088e # Parent 47676a16ed1391d28f5b38444a4bfbadd2ab473e Add slide.md diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_01_20/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_01_20/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,16 @@ +title: 1/20 ゼミ +author: Tatsuki IHA +profile: +lang: Japanese + +# 近況報告 +- 先週から昨日にかけてM2の測定系があまりないらしいです +- OS(今日の3限)のTree VNC の測定に同行 + +# 卒論について +- Ceriumの再設計 +- Alice VNC +- Tree VNC? +- Shienの引継(これはB3の3人が引き継ぐ?) +- CbCのData Segmentの実装 +- Jungle diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_01_27/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_01_27/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,15 @@ +title: 1/27 ゼミ +author: Tatsuki IHA +profile: +lang: Japanese + +# 近況報告 +- M2の測定系があまりないらしいです +- OS(先週の3限)のTree VNC の測定に同行 + +# 卒論について +- CbCのData Segmentの実装 +- Jungle +- Tree VNC +- Ceriumの再設計 +- Shien(これはB3の3人が引き継ぐ?) diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_01_29/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_01_29/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,13 @@ +title: 1/29 ゼミ +author: Tatsuki IHA +profile: +lang: Japanese +# 研究目的 +- +# 近況 +- CbC_llvm の make +- CbC_examples の make +- LLVM 3.6 -> 3.7 + +# CbC_llvm の make +# diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_02_12/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_02_12/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,33 @@ +title: 2/3 ゼミ +author: Tatsuki IHA +profile: +lang: Japanese + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントという単位を用いて記述する手法を提案している. +- この手法を用いてプログラミングを行うContinuation based C というプログラミング言語を開発しており, これはCの下位言語にあたる. +- 本研究ではLLVM 3.7での実行を目的とする. + +# 近況報告 +- CbCのMake +- CbC_examplesのMake +- LLVM_originalを 3.6 -> 3.7 +- CbC_LLVMを 3.6 -> 3.7(途中) + +# CbCのMake +- wikiの通りMake +- CbC_llvmをclone +- ./configure +- make + +# CbC_examplesのMake + +# LLVM_originalを3.6 -> 3.7 +- こちらもwiki通り +- llvm, clang 最新版をclone +- 研究室のmercurialのCbC/LLVM_originalをclone +- LLVM_originalを最新版に置き換え + +# CbC_LLVMを3.6 -> 3.7 +- 大量のConflictを撮ってる途中です. +- CbCのコードはマクロで条件付けしているので, そのコードと最新版に置き換えてます. diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_02_17/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_02_17/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,33 @@ +title: CbC LLVM 3.7へのアップデート +author: Tatsuki IHA +profile: +lang: Japanese + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントという単位を用いて記述する手法を提案している. +- この手法を用いてプログラミングを行うContinuation based C というプログラミング言語を開発しており, これはCの下位言語にあたる. +- 本研究ではLLVM 3.7での実行を目的とする. + +# 近況報告 +- CbCのMake +- CbC_examplesのMake +- LLVM_originalを 3.6 -> 3.7 +- CbC_LLVMを 3.6 -> 3.7(途中) + +# CbCのMake +- wikiの通りMake +- CbC_llvmをclone +- ./configure +- make + +# CbC_examplesのMake + +# LLVM_originalを3.6 -> 3.7 +- こちらもwiki通り +- llvm, clang 最新版をclone +- 研究室のmercurialのCbC/LLVM_originalをclone +- LLVM_originalを最新版に置き換え + +# CbC_LLVMを3.6 -> 3.7 +- 大量のConflictを撮ってる途中です. +- CbCのコードはマクロで条件付けしているので, そのコードと最新版に置き換えてます. diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_02_24/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_02_24/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,41 @@ +title: CbC LLVM 3.7へのアップデート +author: Tatsuki IHA +profile: +lang: Japanese + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントという単位を用いて記述する手法を提案している. +- この手法を用いてプログラミングを行うContinuation based C というプログラミング言語を開発しており, これはCの下位言語にあたる. +- 本研究ではLLVM 3.7での実行を目的とする. + +# 近況報告 +- CbC_LLVMを 3.6 -> 3.7 +- CbC_examplesをmake +- EasyPackage + +# CbC_LLVMを 3.6 -> 3.7 +- 基本的に \#ifndef noCbC の部分を残しずつ3.7のコードへ +- ParseCbC.cppのCompileでErrorが吐かれた所を修正 + +# ParseCbC.cppの修正 +- ParseCbC.cppで呼び出しているSema::ClassifyNameの引数の型が変更されていた(tools/clang/lib/Sema/SemaDecl.cpp) + +# ParseCbC.cppの修正 +- LLVM 3.6 + - `ClassifyName(Scope *S, ........, CorrectionCandidateCallback *CCC = nullptr);` + +- LLVM3.7 + - `ClassifyName(Scope *S, ........, std::unique_ptr CCC = nullptr);` + +# ParseCbC.cppの修正 +- ParseCbCでの呼び出し部分を `CorrectionCandidateCallback *` -> `std::unique_ptr` に変更 + +# ParseCbC.cppの修正 +- DeclaratorChunk::getFunctionの引数の数が変更されていた(tools/clang/lib/Sema/DeclSpec.cpp) +- 追加された引数 + - `SourceLocation RestrictQualifierLoc` + - `CacheTokens *ExceptionSpecTokens` + +# EasyPackage +- EasyPackageのページ(http://www.ie.u-ryukyu.ac.jp/darwin4u/)がPHP version up前のpukiwikiらしく見ることができませんでした. +- シス管のPHP version up担当者にとりあえず連絡しました. 近いうちに見れるようになると思います. diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_02_3/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_02_3/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,15 @@ +title: 2/3 ゼミ +author: Tatsuki IHA +profile: +lang: Japanese + + +# 研究目的 + +# 近況報告 +- CbCのMake +- CbC_examplesのMake +- LLVM_originalを 3.6 -> 3.7 へ + +# 測定系 + diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_02_5/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_02_5/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,33 @@ +title: 2/3 ゼミ +author: Tatsuki IHA +profile: +lang: Japanese + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントという単位を用いて記述する手法を提案している. +- この手法を用いてプログラミングを行うContinuation based C というプログラミング言語を開発しており, これはCの下位言語にあたる. +- 本研究ではLLVM 3.7での実装を目的とする. + +# 近況報告 +- CbCのMake +- CbC_examplesのMake +- LLVM_originalを 3.6 -> 3.7 +- CbC_LLVMを 3.6 -> 3.7(途中) + +# CbCのMake +- wikiの通りMake +- CbC_llvmをclone +- ./configure +- make + +# CbC_examplesのMake + +# LLVM_originalを3.6 -> 3.7 +- こちらもwiki通り +- llvm, clang 最新版をclone +- 研究室のmercurialのCbC/LLVM_originalをclone +- LLVM_originalを最新版に置き換え + +# CbC_LLVMを3.6 -> 3.7 +- 大量のConflictを撮ってる途中です. +- CbCのコードはマクロで条件付けしているので, そのコードと最新版に置き換えてます. diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_03_10/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_03_10/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,39 @@ +title: CbC LLVM +author: Tatsuki IHA +profile: +lang: Japanese + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントという単位を用いて記述する手法を提案している. +- この手法を用いてプログラミングを行うContinuation based C というプログラミング言語を開発しており, これはCの下位言語にあたる. + + +# 近況報告 +- CbC_LLVMを 3.6 -> 3.7 +- CbC_examplesをmake +- きつねさんでもわかるLLVM読み始めました + +# CbC_LLVMを 3.6 -> 3.7 +- 基本的に \#ifndef noCbC の部分を残しずつ3.7のコードへ +- ParseCbC.cppのCompileでErrorが吐かれた所を修正 + +# ParseCbC.cppの修正 +- ParseCbC.cppで呼び出しているSema::ClassifyNameの引数の型が変更されていた(tools/clang/lib/Sema/SemaDecl.cpp) + +# ParseCbC.cppの修正 +- LLVM 3.6 + - `ClassifyName(Scope *S, ........, CorrectionCandidateCallback *CCC = nullptr);` + +- LLVM3.7 + - `ClassifyName(Scope *S, ........, std::unique_ptr CCC = nullptr);` + +# ParseCbC.cppの修正 +- ParseCbCでの呼び出し部分を `CorrectionCandidateCallback *` -> `std::unique_ptr` に変更 + +# ParseCbC.cppの修正 +- DeclaratorChunk::getFunctionの引数の数が変更されていた(tools/clang/lib/Sema/DeclSpec.cpp) +- 追加された引数 + - `SourceLocation RestrictQualifierLoc` + - `CacheTokens *ExceptionSpecTokens` + +# 何をベースとするか diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_03_17/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_03_17/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,13 @@ +title: LLVMをベースとした新しい言語の開発(仮) +author: Tatsuki IHA +profile: +lang: Japanese + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントという単位を用いて記述する手法を提案している. +- この手法を用いてプログラミングを行うContinuation based C というプログラミング言語を開発しており, これはCの下位言語にあたる. +- + +# 近況報告 +- +- A Tour of Go diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_04_07/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_04_07/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,22 @@ +title: LLVMをベースとしたコンパイラの実装(仮) +author: Tatsuki IHA +profile: +lang: Japanese + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントという単位を用いて記述する手法を提案している. +- この手法を用いてプログラミングを行うContinuation based C というプログラミング言語を開発しており, これはCの下位言語にあたる. + +# 近況報告 +- A Tour of Go +- LLVMのコード読み + +# Frontendをどうするか +- 色々触った感じはGo +- どのようなsyntaxにするか? + +# code segment +- Go Routine + +# data segment +- structがあるのでそれでもつ diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_04_14/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_04_14/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,62 @@ +title: CbCのData Segmentの設計 +author: Tatsuki IHA +profile: +lang: Japanese + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントという単位を用いて記述する手法を提案している. +- この手法を用いてプログラミングを行うContinuation based C というプログラミング言語を開発しており, これはCの下位言語にあたる. +- この研究ではGearsのData Segmentの設計を行いつつ, CbCでのData Segmentの設計, 実装を行うことを目的とする. + +# 近況報告 +- GearsのData Segmentの設計 + +# GearsのCode Segment +- In Data Segmentの受け取り +- Out Data segmentの生成(flipする場合もあり) +- Code Segmentは次のCode Segmentを持っていない +- Meta Code Segmentに次のCode Segmentの参照を持たせる + +# GearsのCode Segment +![](./pictures/code_segment.jpg) + +# GearsのCode Segment +![](./pictures/relation_cs_and_ds.jpg) + +# GearsのData Segment +- Data Segmentは実際の値を持たせる +- Meta Data Segmentにはsignatureへの参照, 次のData Segmentの参照を持たせる + +# GearsのData Segment +![](./pictures/data_segment.jpg) + +# Data SegmentでのList +- Data Segmentに値 +- Meta Data Segmentに繋がっているData Segmentの参照をもたせる + +# Data SegmentでのList +![](./pictures/list.jpg) + +# GearsでのAllocateContext実装 +- Code Segmentの参照はContextでもつ +- 呼ぶCode Segmentのenumでもち, Meta Code Segmentには次のCode Segmentのenumを渡す + + +# AllocateContextの初期化 +``` C +__code initAllocateContext(struct Context* context) { + + .... + context->code[Code1] = code1; + context->code[Code2] = code2; + context->code[Code3] = code3; + .... +} +``` + +# Meta Code Segment +``` C +__code meta(struct Context* context, enum Code next) { + goto (context->code[next])(context); +} +``` diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_04_21/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_04_21/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,29 @@ +title: Monadに基づくMeta計算を基本とするGears OSの設計 +author: Tatsuki IHA +profile: +lang: Japanese + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている. +- Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する. +- また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させる. +- この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする. + +# GearsのCode Segment +- In Data Segmentの受け取り +- Out Data segmentの生成(flipする場合もあり) +- Code Segmentは次のCode Segmentを持っていない +- Meta Code Segmentに, 次のCode Segmentの参照, Meta Computationを行う + +# GearsのCode Segment +![](./pictures/code_segment.jpg) + +# GearsのData Segment +- Data Segmentは実際の値を持たせる +- Meta Data Segmentにはsignatureへの参照, 次のData Segmentの参照を持たせる + +# Data SegmentでのList +![](./pictures/list.jpg) + +# Data SegmentでのSynchronized queue +![](./pictures/Synchronized_queue.jpg) diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_05_05/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_05_05/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,31 @@ +title: Monadに基づくMeta計算を基本とするGears OSの設計 +author: Tatsuki IHA +profile: +lang: Japanese + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている. +- Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する. +- また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させる. +- この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする. + +# Gaer Box +- 基本はState Diagramで記述 +- State DiagramのStateをCode Gear(Code Segment) +- Code Gear間にData Gear(Data Segment)を記述 + +# Gear Box +![GearBoxExample](./pictures/GearBoxExample.svg) + +# Gear Box +![MetaGearBoxExample](./pictures/MetaGearBoxExample.svg) + +# Synchronized Queue +![GearBoxExample](./pictures/synchronizedQueueSender.svg) + +# Synchronized Queue +![GearBoxExample](./pictures/synchronizedQueueReceiver.svg) + +# Synchronized Queue +- Meta Sender, Meta Reciverでsynchronizedを表現する +- つまり, Meta Sender, Reciverの動作で通常のQueueとSynchronized Queueを入れ替える事ができる diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_05_19/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_05_19/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,42 @@ +title: Monadに基づくMeta計算を基本とするGears OSの設計 +author: Tatsuki IHA +profile: +lang: Japanese + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている. +- Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する. +- また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させる. +- この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする. + +# Gear Box +- 基本はState Diagramで記述 +- State DiagramのStateをCode Gear(Code Segment) +- Code Gear間にData Gear(Data Segment)を記述 + +# Gear Box +![GearBoxExample](./pictures/GearBoxExample.svg) + +# Gear Box +![MetaGearBoxExample](./pictures/MetaGearBoxExample.svg) + +# Synchronized Queue +![GearBoxExample](./pictures/synchronizedQueueSender.svg) + +# Synchronized Queue +![GearBoxExample](./pictures/synchronizedQueueReceiver.svg) + +# Synchronized Queue +- 各Threadに共通のData Gearをもたせる +- Meta Code Segmentでsynchronizedを表現する +- つまり, Meta Code Segmentを書き換えることで実装を変更できる + +# Synchronized Queue +- CASでの実装 + - Meta Put, Meta GetでCasを行い, Data Gearを更新 +- pthread_mutex_lockでの実装 + - Meta Sender, Meta ReciverでData Gearをlock + - Meta Put, Meta Getでunlock +- Semphoreでの実装 + - 読み込み用, 書き込み用のSemphoreを用意 + - Meta Put, Meta Getでsem_p, sem_vを行う diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_05_25/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_05_25/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,50 @@ +title: Monadに基づくMeta計算を基本とするGears OSの設計 +author: Tatsuki IHA +profile: +lang: Japanese +code-engine: coderay + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている. +- Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する. +- また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させる. +- この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする. + +# Gear Box +- 基本はState Diagramで記述 +- State DiagramのStateをCode Gear(Code Segment) +- Code Gear間にData Gear(Data Segment)を記述 + +# Gear Box +![GearBoxExample](./pictures/GearBoxExample.svg) + +# Gear Box +![MetaGearBoxExample](./pictures/MetaGearBoxExample.svg) + +# Synchronized Queue +![GearBoxExample](./pictures/synchronizedQueueSender.svg) + +# Synchronized Queue +![GearBoxExample](./pictures/synchronizedQueueReceiver.svg) + +# Synchronized Queue +- 各Threadに共通のData Gearをもたせる +- Meta Code Segmentでsynchronizedを表現する +- つまり, Meta Code Segmentを書き換えることで実装を変更できる + +# Synchronized Queue +- CASでの実装 + - Meta Put, Meta GetでCasを行い, Data Gearを更新 +- pthread_mutex_lockでの実装 + - Meta Sender, Meta ReciverでData Gearをlock + - Meta Put, Meta Getでunlock +- Semphoreでの実装 + - 読み込み用, 書き込み用のSemphoreを用意 + - Meta Put, Meta Getでsem_p, sem_vを行う + +# hoge +<% coderay do %> +def hello + puts "hoge" +end +<% end %> diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_06_02/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_06_02/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,16 @@ +title: Monadに基づくMeta計算を基本とするGears OSの設計 +author: Tatsuki IHA +profile: +lang: Japanese +code-engine: coderay + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている. +- Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する. +- また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させる. +- このOS上でAlice, Cerium, Jungle +- この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする. + +# Synchronized Queue +- casのコードにwhile & countを追加 +- pthreadのコードにcond_wait, cond_signalを追加 diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_06_09/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_06_09/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,48 @@ +title: Monadに基づくMeta計算を基本とするGears OSの設計 +author: Tatsuki IHA +profile: +lang: Japanese +code-engine: coderay + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている. +- Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する. +- また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させ,Many CoreやGPGPU環境でも信頼性の高い並列処理を実現する. +- この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする. + +# data segmentを参照するsyntax + +``` +__code code1(struct Context* context, enum Code next) { + context->data[Allocate]->allocate.size = .....; +} +``` + +# data segmentを参照するsyntax +``` +__code code1(struct Context* context, enum Code next) { + union Data *ds1; + ds1 = get_data_segment(context, Allocate); + ds1->allocate.size = .....; +} + +union Data* get_data_segment(struct Context* context, int key) { + return context->data[key]; +} +``` + +# data segmentを参照するsyntax +``` +__code code1(struct Allocate allocate) { + allocate.size = .....; +} +``` + +# Cerium on Gears + + + diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_06_16/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_06_16/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,52 @@ +title: Monadに基づくMeta計算を基本とするGears OSの設計 +author: Tatsuki IHA +profile: +lang: Japanese +code-engine: coderay + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている. +- Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する. +- また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させ,Many CoreやGPGPU環境でも信頼性の高い並列処理を実現する. +- この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする. + + +# 近況 +- Data SegmentへのアクセスのsyntaxをList, Synchronized Queueに適応 + +# 従来のDSへのアクセス +- contextからDataの配列にアクセスする + +# 従来のDSへのアクセス +``` +__code code1(struct Context* context) { + context->data[Allocate]->allocate.size = .....; + context->data[Allocate]->allocate.next = .....; + goto meta(context, Allocator); +} +``` + +# stubを経由したDSへのアクセス +- Code Segmentは必要なDSを引数として取る +- 全てのCSに対してstubを用意し, 必要なDSをstubで指定してCSを呼ぶ +- stubは現在は直接書いているが, Compile時に生成されて欲しい + +# stubを経由したDSへのアクセス +``` +__code code1(struct Context* context, struct Allocate* allocate) { + allocate->size = .....; + allocate->next = .....; + goto meta(context, Allocator); +} +__code code1_stub(struct Context* context) { + goto code1(context, &context->data[Allocate]->allocate); +} +``` + + + + diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_06_30/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_06_30/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,54 @@ +title: Monadに基づくMeta計算を基本とするGears OSの設計 +author: Tatsuki IHA +profile: +lang: Japanese +code-engine: coderay + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている. +- Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する. +- また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させ,Many CoreやGPGPU環境でも信頼性の高い並列処理を実現する. +- この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする. + + +# 近況 +- GearsによるCeriumの実装 + - あんまり進んでないです + +# 動かしたい例題 +- temporaryなDS同士の計算 +- 最初はInt型の足し算などをscheduleringして演算をする + +# TaskManager + +# Create Task +- 新しいcontextを作成してinputのQueueにいれる + +``` +__code code1(Context *context) { + goto create_task(); +} + +__code create_task(Context *context) { + init_context(context); + goto put(context); +} +``` + +# scheduler +- 他のDSを用意している間に他のDSを実行する +- taskのpoolからschedulerがtaskをとる + - schedulerが待ちtaskを取り合う + +# set input +- + +# set output + + +# wait for + diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_07_14/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_07_14/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,24 @@ +title: Monadに基づくMeta計算を基本とするGears OSの設計 +author: Tatsuki IHA +profile: +lang: Japanese +code-engine: coderay + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている. +- Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する. +- また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させ,Many CoreやGPGPU環境でも信頼性の高い並列処理を実現する. +- この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする. + + +# 近況 +- synchronized QueueのCASのwhileループをgotoに変更 +- 院試の勉強してました。 + +# + + diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_07_21/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_07_21/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,55 @@ +title: OSC & OCの話 +author: Tatsuki IHA +profile: +lang: Japanese +code-engine: coderay + +# 近況 +- 院試の勉強してました。 +- オープンキャンパス行きました + +# OSC +- 僕は徳森さんを空港に送ったため,午後からの参加 +- まささんの講話はみれませんでした。 + +# 聴いた講話 +- GFS2やKVM、さくらクラウドを用いた琉球大学情報工学科次期システムの設計について +- MySQL 5.7 RC登場!MySQL最新開発ロードマップ + +# シス管 +- 人は結構いました(15 〜 20人, ieのOBが多い感じでした) +- 過去のシステムの話 +- GFS2の苦労話 +- 貸出VMの話 +- さくらの話は少し + +# もらった物 +![](./pictures/osc.jpg) + +# もらったもの +- オライリーのノート +- Tシャツ +- Hinemos統合管理[実践]入門 + +# OC +- 基本的に406にいました +- 午前は20名 * 8 グループくらい +- 午後は4,5名 * 8グループくらい +- 出し物はleap motionを使用した指揮者ゲーム, ボールころがし, Oculus +- 高校生にはOculusが、学生にはボールころがしが人気だったようです + +# OCの反省 +- 会場設置が18時まで全然されてなかった + +# 写真は? +- 取るの忘れました + + diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_07_28/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_07_28/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,48 @@ +title: SML# +author: Tatsuki IHA +profile: +lang: Japanese +code-engine: coderay + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている. +- Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する. +- また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させ,Many CoreやGPGPU環境でも信頼性の高い並列処理を実現する. +- この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする. + + +# 近況 +- 院試おわりました +- SML# のコンパイルをしました + +# SML# +- とりあえず, 自分のMBPでコンパイル +- 必要だったもの + - LLVM 3.4 + - GMP library + +# ハマった所 +- SML# のコンパイラは最新版ではまだ64bitのArchitecture向けコードを出力しない(近い将来行う予定とのこと) +- なのでLLVM 3.4とCMPライブラリは32bit版でcompileしないといけない + +# SML# のコンパイル +- SML#のlex, yacc, SMLFormat, プリンタ自動生成ツール, 基本LibraryはSML#で書かれている +- SML# のコンパイルの際はSML#をコンパイルするのに十分なSML#コンパイラ(minismlsharp)を使ってコンパイル +- minismlsharpは古いSML#コンパイラで事前にコンパイルしており, LLVM IR形式でソースツリーに用意されている. + +# SML# のコンパイル +- 実際のコードがSML#で書かれてるのでlldbで追えない + - SML#のデバッガは、、、、 +- ランタイムライブラリはCで書かれてるのでそこは追える + +# SML#のコード量 +- SML#で書かれたコード + - 174664行 +- CのランタイムLibrary + - 21920行 + + diff -r 47676a16ed13 -r 3b7da0b661cc 2015/2015_08_04/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2015/2015_08_04/slide.md Tue Aug 04 18:12:46 2015 +0900 @@ -0,0 +1,23 @@ +title: SML# +author: Tatsuki IHA +profile: +lang: Japanese +code-engine: coderay + +# 研究目的 +- 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている. +- Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する. +- また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させ,Many CoreやGPGPU環境でも信頼性の高い並列処理を実現する. +- この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする. + + +# 近況 +- SML#fireflyにインストールしました +- wikiにSML#とbrewでのCbCのインストール方法を記述しました + + +