view src/parallel_execution/Todo @ 322:366baa247572

Use generate_stub for queue_test
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Tue, 21 Mar 2017 03:58:31 +0900
parents a9a6d571fa80
children d9887056ae5b
line wrap: on
line source

Wed Mar  1 18:25:36 JST 2017

    parallel_executtion/test/ を .cbc に書き直す
    rb_tree の stub をできるだけ取り外す
    synchornizedQueue の meta部分を分離する
    synchronizedQueue のバグをとる
    GPU のバグとり
    cbc++...?

Sat Jan 28 16:10:28 JST 2017

    stackからpopした後、呼び出される continuation は出力を受けとる。
    出力を受けとる stub を生成する必要がある。
    なので、CodeGear が、そのような interface で定義されたものかどうかを調べる必要がある。
    Stackのnext(やisEmpty)に代入された時点でわかる。なので、あまり自明な見つける方法がない。 
    引数の異なるnextは異なる名前を持つべきか? 持たなくてもできるが...

         goto next(data, ...);                                       引数で渡された continuation に移動
         goto nodeStack->push(newNode, replaceNode1);                Interface の呼び出し。(ここで replaceNode1 が stack の戻り値を受けることがわかる。
         goto replaceNode(traverse, traverse->current, newNode);     普通のgoto
         goto rotateTree->next(...);                                 DataGearに格納された continuation

    などをチェックする必要がある。これらの型チェックは CbC level では行われない。(CbCはmeta levelだから)

     戻り値の部分は interface に記述させるという手もあるな。


Sun Jan 22 20:11:28 JST 2017

    TaskManagerから必要なCPUWorkerを生成する
    WorkerはcreateWorker時に新しくthreadを作る
    
    TaskManager->createTaskで新しいContextを生成する
    この時点でWorkerを番号で指定する
    このContextにGearefで値を設定していく
    待ち合わせ用のDSを設定する
    taskManager->spawnでWorkerにcontextを送る

Fri Jan 13 17:47:40 JST 2017

    Task は contextを直接使うことにする
        DS には, まっているcontextをListを作る
        context に実行中断中のCS の番号をいれるフィールドを用意する
        待っているDS のcount
    createTaskの手順
        新しくcontextを作る
            allocate 用のheap も用意
            もとのcontextを全部copyする or 必要なものだけcopyする
            待ち合わせのDS群を指定する
            終わったあとの行き先を指定する(default は task_exit)
            exception の行き先も必要な指定する
            待っているDSが全部揃っていたら active Queueに入れる
    task の実行
        taskの実行後、 goto meta する直前で code gear commit を呼んで, Reader list を消化する
        複数から参照されるDSは一旦localに書き出して, その後atomic に書き出す
        複数から参照されるDSは何かしら宣言が必要
            つまり DS には 一つ一つ owner がいる

Mon Nov 28 17:39:39 JST 2016

    Task,TaskManager,Workerのインターフェースの実装を作成する
    Taskを一旦Treeに入れずに直接Queueに入れる

    Task
        CodeGen
            IDataSeg
            IDataSeg
            ...
        idsCount
        nextTask(can be C_exit)
            ODataSeg?

    TaskManager
        createWorker
        spawn (any,cpu,GPU)
        taskSend
        activeQueue
        shutdown
        deadlockDetectid

    SynchronizedQueue * Workerの数だけ

    Worker
        execute
        taskRecive
        shutdown