1 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 02:21:01 ID:k4ODtuXP] タスクシステムについての議論、相談、質問、雑談などのスレです part4 pc11.2ch.net/test/read.cgi/gamedev/1233459490/ part3 pc11.2ch.net/test/read.cgi/gamedev/1226199100/ part2 pc11.2ch.net/test/read.cgi/gamedev/1196711513/ part1 pc11.2ch.net/test/read.cgi/gamedev/1173708588/ ・タスクと呼ばれる実装は、非常に多岐に渡ります 古典タスクシステムについての話題は「>>2 」と明示してください そうでない場合はカスタム版タスクであることを明示してください ・人を憎んで言語を憎まず
599 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 14:03:36 ID:rvhMBE/z] どんだけ悔しかったのか知らないが、12日も前のレス持ち出して弁解ですか。 >>592 の壁とか敵はオレオレ定義ではなく、>>585 で出現しているそれ。 7つ上のレスも見れない池沼さんですか? で、揚げ足取りは結構なんだけど、本文への反論は?
600 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/05(木) 14:18:31 ID:2NL1rK1f] >>599 > >>592 の壁とか敵はオレオレ定義ではなく、>>585 で出現しているそれ。 >>585 に定義らしきことは書いてないじゃん。 > で、揚げ足取りは結構なんだけど、本文への反論は? 「壁」と「敵」についてきちんと定義を書いてくれ。話はそれからだ。
601 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 14:45:45 ID:eQbdbaUx] >>600 こいつは何を並列処理しようとしてるの?
602 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 14:56:23 ID:rvhMBE/z] (あ、また、 自分は7レス前の今朝の関係のあるレスも見れないのに、 他人には439レス前の12日前の無関係なレスを覚えていることを要求する並列さんが何か言ってるな) >>600 ちょっともう、どうしたらよいの?国語やりなおせとしか言いようが無いのだが。。 >>585 をよめば、 ・壁とは、敵との当りを防ぐもの。 ・敵とは、当たりをとる対象。 ということぐらい普通分かるだろ。 同時に、>>155 が今件になんら関係ないことも分かるだろ。 結論から言うと、お前が一人で勘違いして勝手に煽ったりファビョったり一人相撲してただけだ。
603 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 15:05:28 ID:rvhMBE/z] 文章が読めない奴ばかりだから、もう一度書き込むぞ。 >>585 は、 衝突解決の途中でゲーム進行用の当たり判定を取ると、 ゲーム進行用の当たり判定がバグる、 と主張し、 それに対して俺は、 衝突解決が完了してからゲーム進行用の当たり判定を取ればよい、 と主張をしている。 予め言っておくが、衝突解決の優先順位の問題とは全く別の話。
604 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/05(木) 15:17:15 ID:2NL1rK1f] >>602 > ・壁とは、敵との当りを防ぐもの。 > ・敵とは、当たりをとる対象。 > ということぐらい普通分かるだろ。 それはわかるが、敵同士は重なっている状態が許容されるかどうかが>>585 からはわからない。 もし許容されないなら、敵とか壁とか分けて考える必要はなく、どちらも対等な単なるオブジェクトだから 用語をわざわざ分ける必要がない。 それを >>592 のように処理を分けているというのは、あんたが勝手に敵同士の交差は許容されると >>585 から解釈したとしか思えない。要するに>>585 を拡大解釈しているのはあんただろ。
605 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/05(木) 15:20:29 ID:2NL1rK1f] >>603 > 衝突解決が完了してからゲーム進行用の当たり判定を取ればよい、 「ゲーム進行用の当たり判定」なんて、誰も話題にしてなくて 幾何的に重なりをもつ状態をいかに防ぎつつ処理を並列化するかしか 問題にしてないと思うんだが。 あんたは日本語が不自由以前に頭が不自由みたいなんで、 俺はあんたの相手はしないことにする。
606 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 15:41:13 ID:eQbdbaUx] まとめ ID:2NL1rK1f が正しい。 ID:rvhMBE/z は間違っている。 なぜならここはタスクシステム(^^;)スレだから。 今は並列処理(笑)をどこまでシステムを組み込めるか議論する場なので、(たとえば整数のみで実数計算するにはどうするのが一番いいかのような) ID:rvhMBE/zのように並列処理(笑)を使わない最も効率的で扱いやすい無駄の無い設計はスレ違い。 みんなそれが最善手段と知ってる上で議論している。 (まぁ>>604 の敵同士の交差がどうこうというのは並列処理(笑)時の話であって交差しようがしまいが別に処理させているID:rvhMBE/zの設計に対するツッコミ(ボケ?)は意味不明だが)
607 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 15:51:13 ID:rvhMBE/z] 本当に文章が読めないんだな。どうしようもない。 >>585 にはプレイヤーという主語が抜けてるんだよ。 それぐらい行間読めよな。 だから、 >敵同士は重なっている状態が許容されるかどうか は関係ない。 さかのぼってみれば、>>567 が発端で、これは、 >演算器いっぱいのベクトルプロセッサにやらせる場合 >移動フェーズと衝突検出フェーズと衝突応答フェーズに >分割してそれぞれのフェーズでいっせーのーせでやる に対してレスされている。 内容は、それぞれのフェーズの呼び出し順が固定だから、 衝突検出フェーズ内で拾う値は必ず補正前の値になってしまうので、 壁の向こうの敵に接触してしまうなどの不具合が出る、というもの。 つまり、古典的タスクシステム固有の問題で、実は並列化は関係がない。
608 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 16:09:30 ID:Ld676bZP] 速度がでてないのに壁の向こうの敵にあたるって 壁薄くね?
609 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/05(木) 16:37:36 ID:2NL1rK1f] >>608 実際は、紙みたいな壁も存在して、単なる衝突判定でやってしまうと 次フレームでは通り抜けてることもある。 だから、まともな物理エンジンでは、そういうオブジェクトに対しては、 連続体として扱うようになっているのだが、この取り扱いは結構難しい。 これに関しては最近、いろいろ論文が発表されるなど、比較的hotなテーマだ。
610 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 18:58:37 ID:/7Ei5x6Q] 君らってRogue Spear 知らないの? www.youtube.com/watch?v=A7xiK-snyJk そんな古臭い話が最近の論文なんて信じられないが 論文あるならソースだしてくれよ 多分読めないが 話変わって >>2 のタスクシステムのソースって 慣れてないと難しいね 拡張も慣れが必要 ちょっと自分流の方が早い気がしてきた
611 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 19:12:57 ID:CwokJJKn] このスレは直列番長の>>2 をボコるスレだろ
612 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 19:50:12 ID:CwokJJKn] >>607 >つまり、古典的タスクシステム固有の問題で なんでそうなるんだよ
613 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 20:33:20 ID:CwokJJKn] >>567 はcontinuous collision detectionの話がしたいのか? 壁とか言ってるから違うだろ。隣部屋同士の誤判定の話くさいんだけど 空間分割された隣部屋同士なら『ドア(窓)を経由しない限り当たらない』 ドア(窓)を経由して侵入してくる疑いがある奴は移動フェーズの時点で バレてんだから、移動フェーズが終わった時点で同期的処理かませれば いいだけだろ。バカくせ
614 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 20:40:46 ID:CwokJJKn] ドア(窓)を経由しないでポータルの外を飛び出るかもとか そんなクズシステムの話を持ち出す時点で駄目だ タスクバカ=>>2 信者=直列バカはやっぱりバカだ
615 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 20:52:25 ID:LpIMNDbi] 銃弾は壁も突き抜けるぜ!
616 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 20:54:34 ID:CwokJJKn] そうか。>>567 は銃弾の話をしてるのか。そうなのか? そういや壁抜きでぶっ殺したら升使ってるとか言われたな これだからnoobは困る
617 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 21:49:16 ID:/7Ei5x6Q] >>616 そういうツールありますから あなたの方がnoobですよ
618 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 21:51:32 ID:CwokJJKn] あー、わかったぞ 並列君は銃弾も人も同じエンティティとして平等に扱うのか マジで狂ってるな。どんだけ無駄なことすりゃ気が済むんだよ
619 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 21:54:16 ID:eQbdbaUx] >>618 だから効率を求めてるんじゃなくて、並列でどうやって対処するか議論してるんだってば
620 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 21:57:28 ID:CwokJJKn] >>619 は?誰だよお前。名無しに用はねーんだよ 効率を度外視した糞システムなんてみんな糞だ お前らタスクバカはそうやって何でもツクールを目指すバカだから 並列処理も効率度外視とかウンコくさい話をしたがるんだろ バカは氏ね。思想レベルで詰んでる
621 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 22:03:48 ID:okJUxEhs] ≡≡≡≡≡≡. 日 ▽ U 日 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ≡≡≡≡≡≡ | IDさん今日は荒れてるなあ。 V ∩ [] 。〇 \____________ ____ ∧∧゚______ □ ( ) ―――― | ヽ―――――― (____)〜 ━┳━ ━┳━ ━┳━  ̄┻  ̄ ̄ ̄┻ ̄ ̄ ̄ ┻ ̄ ̄
622 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 22:07:27 ID:CwokJJKn] >>2 が時代錯誤的な直列処理してっからブッ叩かれ、それを気にして カッとなって、今度は極度に逆方向にふれて究極の並列コードを 目指すし始めた一部の先進次世代タスクバカ。>>510 が代表だな お前らタスクバカはさ、いい加減『ナニを作るのか』具体的に書けよ 何でもツクール目指すから『ナニを作るのか』書けません、だとか ミラクルドリーマーみたいな事をほざくなよ
623 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 22:19:07 ID:CwokJJKn] >>621 俺、一応未成年だからお酒でそういう大人っぽいお店にいって 酩酊してウサ晴らすとかそういうことできないんだよね これは芸風だから。昨日の並列君のお前らみんなバカ宣言 に対する報復である
624 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 22:20:46 ID:CwokJJKn] ×お酒でそういう大人っぽいお店にいって酩酊して ○そういう大人っぽいお店にいってお酒で酩酊して
625 名前:561 mailto:sage [2009/03/06(金) 00:00:33 ID:4YMxwutE] 惚れた
626 名前:名前は開発中のものです。 [2009/03/06(金) 07:47:43 ID:+3ldVLU9] >>622 そんなの無理だろ タスク信者は動いてるプログラムにタスクウィルスを入れて 自分しかメンテできないようにして、自分の居場所を確保する 犬の小便的行動が本来の目的なんだから
627 名前:ID:EEKBitmg mailto:sage [2009/03/06(金) 10:06:54 ID:xP4A6jxv] いやー、昨日も面白い池沼がいて楽しかったわ これだからこのスレはやめられないw
628 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 13:01:17 ID:FjTUznzx] 銃弾の事は外野の俺がネタで言ってみただけだお…><
629 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 14:33:08 ID:YCUPWfAP] >>625 >427 >>626 そのくらいで地位を守れるなら失うよりはずっとマシだと真剣に思う、この不況。無職を叩く側から叩かれる側になるなんてやだもん。
630 名前:名前は開発中のものです。 [2009/03/06(金) 18:02:43 ID:+3ldVLU9] ついにタスク信者自身が自分がクソを入れてることを認めたか
631 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/06(金) 18:18:57 ID:oTJ018DT] なんじゃそりゃ
632 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 19:15:57 ID:oLiuTYVi] >>622 タスクシステムが直列処理だとは思わんが。 どっちかっていうと、並列かと。
633 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/06(金) 23:46:34 ID:aRzhzssB] >>627 ちょっとー。何なのおまえ誰なのおまえそこへ直れよおまえ!このイジメっ子ザザ虫! 平日の朝っぱら10時から暇そうに2ちゃんで厨のIDコテ使って何ふんぞり返ってるの? イイ歳した大人が虎の威ならぬ厨の威を借りて一段高くなれるの?低くならないの?恥ずかしくない? お前、今まで俺のことをHSPしか使えない基地外とか繰り返し叫んでたウンコ君でしょ? 気になるあの子が振り向いてくれないからって、あの子の目の前であの子の名札つきの 体操服を着てあの子のピアニカをチュアパチュパしゃぶりながらあの子のリコーダーに ポークビッツを差し込んで教室で待ち構えて本人登場したらポークビッツが健気に膨張 圧迫されて抜けなくなって保健室に運ばれちゃう変態、超ド変態の子供時代を繰り返すの? タスクバカのことをバカバカエンガチョって指差してきたけど流石にトリップ無しIDコテ厨を 騙るほど堕ちちゃいないだろうと信用してたのに買いかぶりだったみたい。もう大嫌い
634 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/06(金) 23:55:00 ID:oTJ018DT] >>633 >627は偽物だったのか・・。まあ、もとより俺には、本物が誰なのかよくわからないのだが。 >633を見る限り、なんか内容は支離滅裂だが、それでもあんたの日本語は他の奴よりは 断然読みやすいのでまだ許せる。 日本語の不自由な奴は、ゲームなんか作ってる場合じゃなくて、 もっと先に勉強すべきことがあるだろ、とか思うんだけどな。
635 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/06(金) 23:56:33 ID:aRzhzssB] >>632 正確には並行処理じゃないの?
636 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/06(金) 23:59:28 ID:aRzhzssB] 寮に帰って2ちゃん見てワナワナプルプルしながら顔真っ赤に怒ってるから 支離滅裂なんだ!ちなみに昨日の書き込みには大変な矛盾があるので 訂正したかったが、>>627 は俺らしいから彼にやらせてみようと思う
637 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 00:46:01 ID:ZZNOCL1s] >>635 優先順位がつくばあいもあるから正確には並列とは言えないだろうな。
638 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 00:55:26 ID:cewi3IDn] >>637 その理屈はおかしい。 マルチスレッドのプログラミングでもセマフォで他のスレッド待ったり普通にするじゃん。 処理に順序があろうが無かろうが、並列なものは並列だ。 >>635 が並行と言ってるのは、タスクを実行しているスレッド(プロセス)が通例、 1つだけだという理由からだろう。
639 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 01:06:43 ID:ZZNOCL1s] >処理に順序があろうが無かろうが、並列なものは並列だ。 並列さんの言ってることは意味が分からん。 処理に順序があれば、同時に実行できないのだから、並列でないだろ。 マルチスレッド≠並列。 煽り専門と名のってたが、嘘ばかりを書き込んでスレの機能を麻痺させる気? 名前変えたら?
640 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 01:17:59 ID:cewi3IDn] >>639 > マルチスレッド≠並列 言葉の定義の問題だから、まあどうでもいいが、まあ普通は マルチスレッドで実行されている以上、並列だし、あるスレッドが他のスレッドを 待っていてスループットが悪かろうが、並列なものは並列。 処理順序が厳密に定められていて、まったく逐次実行しか出来ないなら、 シングルスレッドと同じか、それ以下のパフォーマンスしか出ないけどな。 実際はゲームのタスクはそこまで処理順序に関しては制約が厳しくないので いくらでも並列化できる。
641 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 01:37:59 ID:ZZNOCL1s] >マルチスレッドで実行されている以上、並列だし、 並列ではない。並列な部分もあるってだけ。 今は、「正確には並行処理じゃないの?」と問われていたわけで、 純粋に並列でないなら、正確には並列とは言えない。 だいたい、マルチスレッド云々は実装レベルでの話しだし。 タスクシステムがアーキテクチャ的に並列処理かどうかとは関係ない。
642 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 01:42:09 ID:ZZNOCL1s] コーヒー牛乳は牛乳か→YES コーヒー牛乳は正確には牛乳か→NO タスクシステムは並列的か?→YES タスクシステムは正確には並列か?→NO
643 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 01:58:35 ID:cewi3IDn] >>641 > 今は、「正確には並行処理じゃないの?」と問われていたわけで、 > 純粋に並列でないなら、正確には並列とは言えない。 この文章、意味不明だ。この文章、俺の解釈では↓こうだ。 今は、「正確には並行処理じゃないの?」と問われている。 スループットが1以下の並列実行なんて並列実行には含まれないので 「正確には並列」とは言えないので、単なる「並行処理」と見なすべきだから、 この「正確には並行処理じゃないの?」は正しい。 もし、そういう意味で書いているなら、俺は別に反対意見は唱えていない。 しかしそれなら>>637 の書き方が悪い。 「優先順位がつくばあいもあるから正確には並列とは言えない」 だと、「優先順位がときどき偶発的について、そのときに限り並列性が落ちるから 並列とは言えない」と読める。だから俺は>>638 のように反論した。 >>637 は、正しくは 「優先順位がつく場合、並列化が難しく、並列度が極端に低下して、単一スレッドで実行 しているのと変わらないから、並列と呼ぶべきではない」と言うべきだっただろう。 しかし、俺はそうは思わない。 処理に優先順位がついていようが並列度を上げることは十分可能だからだ。
644 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 02:03:29 ID:LbywpZ2h] コーヒー牛乳は牛乳か→NO
645 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 02:08:20 ID:cMprZFoi] >>643 見苦しいです
646 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 02:10:52 ID:cewi3IDn] >>645 見苦しいか?ふむ。 それなら、日本語の不自由そうな奴に絡むのはもうやめるわ。疲れるだけだ。
647 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 02:23:08 ID:ZZNOCL1s] >「優先順位がつくばあいもあるから正確には並列とは言えない」 >だと、「優先順位がときどき偶発的について、そのときに限り並列性が落ちるから >並列とは言えない」と読める。 優先順位がときどき偶発的について、そのときに限り並列性が落ちることがあるから、 正確には並列とは言えない、であってるよ。 タスクシステムは正確には並列か?という命題に対して、 タスクに優先順位が付く場合を判例に挙げたまで。 処理に優先順位が付く場合、理論的にピュアな並列処理とは言えないからな。 完全な並列性とは、なにをどの順で実行しても構わない場合のみ。
648 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 02:47:03 ID:ZZNOCL1s] >それなら、日本語の不自由そうな奴に絡むのはもうやめるわ。疲れるだけだ。 自分がまともに日本語を扱えないくせに。 >>643 とか、これ日本語ですか? Q:タスクシステムは正確には並列か? A:タスクの処理の優先順位をサポートするタスクシステムの場合には、 タスクの処理に順序が出来るので、この場合は正確には並列とは言えない。 たったこれだけのことが何で分からないのか。 彼はこの問題を実装レベルの並列度の話に持ち込もうとするが、 そもそも、すべてのタスクを同時に実行できるハードが存在しない現状で、 実装レベルでの並列性をもってして、 「タスクシステムが正確には並列かどうか」を判断するのはナンセンス。 なぜならタスクシステム自体による制限よりも、 ハードウェアによる制限の方が先に現れるから。
649 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 02:49:57 ID:cewi3IDn] >>647 > タスクシステムは正確には並列か?という命題に対して、 だが、あんたは、>>635 を誤解している。 635は > 正確には並行処理じゃないの? と書いてあって、並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。 635を書いた本人は、「タスクシステムの構造ではスループットは1倍を絶対に超えない」ので 「並行処理と呼ぶほうが正しいのではないか」と言ってるわけ。 それなのにそれに対する受け答えとして、あんたは、>637で「スループットがN倍になっていなければ pureな並列とは呼べないので並行ではない」と言っている。あんたが「並列度1.0(そんなもの現実的に 存在しないんだが)ではない並列」を「並列」とみなさないのはあんたの勝手だが、635に対する返答として 637は、おかしい。
650 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 02:52:08 ID:cewi3IDn] >>648 > Q:タスクシステムは正確には並列か? > A:タスクの処理の優先順位をサポートするタスクシステムの場合には、 > タスクの処理に順序が出来るので、この場合は正確には並列とは言えない。 > たったこれだけのことが何で分からないのか。 Qが間違っている。誰もそんなQをしていない。詳しくは>>649
651 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 03:03:47 ID:cewi3IDn] 俺、もう寝る。 どうか、ID:EEKBitmg ◆HSP4mee/SU は、 ID:ZZNOCL1sの相手をしてやって欲しい。 ID:EEKBitmg ◆HSP4mee/SU の書く内容は、技術的に間違ってることも多々あるし、態度も生意気だけど、 日本語は意味明瞭だし、技術用語の使い方も比較的正しいので俺としてはかなり好感が持てる。 まあ、勉強熱心なんだろうな・・。
652 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:03:00 ID:8u/3vapK] なんか良く分からんが、お前らの並列と並行の定義はこれで合ってるの? docs.sun.com/app/docs/doc/819-0390/mtintro-6?l=ja&a=view
653 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:21:13 ID:ZZNOCL1s] まず並行でないなら並列化できないわけで。 逆に、並列化不可能なら、並行でない。 というか、むしろ今まで並行の意で並列と言っていたのだが。 >スループットがN倍になっていなければ >pureな並列とは呼べないので並行ではない は正しい。 順序がある処理は並行ではない。
654 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:22:50 ID:ZZNOCL1s] journal.mycom.co.jp/articles/2006/05/15/bsd3/ 俺はこっちかな。
655 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:43:57 ID:8u/3vapK] >>652 >>654 同じだとおもうけどw >順序がある処理は並行ではない。 いや、順序があっても並行は並行だろう。 ID:ZZNOCL1sは効率的でない並行/並列は役に立たないんだから、 仰々しく「並行」だの「並列」だの言うな、と主張しているように見えるなあ。 ID:ZZNOCL1sは実践的な話をしていて、 並列さんは字面通りの一般的な並列の定義に沿って話しているだけに見える。 というのは深夜の時点で並列さんも悟っているように見える。
656 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:53:23 ID:ZZNOCL1s] >並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。 >「タスクシステムの構造ではスループットは1倍を絶対に超えない」ので 並行化によって待ち時間が減ったりするので、スループットは向上するが、 1倍の基準点が不明。
657 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 10:57:38 ID:cewi3IDn] >>653 > というか、むしろ今まで並行の意で並列と言っていたのだが。 あんたは、全然話にもならない。 専門用語を勝手に本来と違う意味で使っておいて 相手に日本語が読めないだの何だの言うのは本当、勘弁して欲しい。
658 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:06:08 ID:ZZNOCL1s] >いや、順序があっても並行は並行だろう。 順序がある処理は並行化できないよ。 例えば、処理Aと処理Bがあって、 BはAの後でないと実行不可だとする。 この場合、AとBを並行に処理することは出来ない。
659 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:06:20 ID:cMprZFoi] >>655 > ID:ZZNOCL1sは効率的でない並行/並列は役に立たないんだから、 そんな話じゃないでしょうに… あと >並列さん >悟っている なんか気持ち悪いです
660 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 11:13:36 ID:cewi3IDn] >>658 > 順序がある処理は並行化できないよ。 それぞれのタスクを逐次処理しようが、それは並行処理って言うんだが。 ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。 本当、専門用語を勝手に意味を作り替えんなと言いたい。 >>659 気持ち悪いのはお前。お前はいらない子だから死んでくれ。
661 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:17:08 ID:ZZNOCL1s] >>657 お前も、並列処理は並行処理の部分集合だということをおさえられていなかっただろ。 >並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。 ↑何に対する1倍かはしらないがな。
662 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 11:25:40 ID:cewi3IDn] >>661 >>並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。 >↑何に対する1倍かはしらないがな。 そこが読めてないのお前だけだろう。 「concurrentな処理は、Nコアであっても、単一コアで実行したときの1倍以上のスループットが出ない」の意味。
663 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 11:31:14 ID:cewi3IDn] >>661 > お前も、並列処理は並行処理の部分集合だということをおさえられていなかっただろ。 どこをどうやればそう読めるのか俺は知りたい。 並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が 単一か複数かの差のみ。そんなことは誰でもわかっている。 その用語を勝手に違う意味に使ってたのはあんただろ。 俺には、頭がおかしいとしか思えない。 その頭のおかしいあんたを唯一擁護しているのは ID:cMprZFoi だけ。 こいつは、あんたが書き込みした直後にしか出てこない。どうせこれもあんただろ。
664 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:36:14 ID:92TsYx3X] カプコンのMTフレームワークみたいなマルチコアでのパフォーマンスに特化した設計の フレームワークなら並列云々の話になると思うが… あれもタスク進化系の一種なのか?ちょっとタスクって守備範囲広すぎ。 あれはコア数がパフォーマンスに直結する造りだね。 順序の依存性のある処理と無い処理をグループ分けして、並列で問題ないケースは複数コアで同時計算。 順序の依存性がある処理との同期スケジューリングをフレームワークが管理って感じで。 ゲーム中には依存性のある処理と無い処理があるから、まぁ複数コアを有効に使おうと思うと こんな感じな設計に行き着くんだろうね。
665 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 11:40:55 ID:cewi3IDn] ID:EEKBitmg ◆HSP4mee/SUはまだ良かった。 HSP使いのプログラミング経験の浅い世間知らずのクルクルパーだが、 そのわりには用語の使い方はまともだし、勉強もよくしていると思っていた。 俺は専門用語を勝手に俺解釈の用語とすり替えて話す奴とは 面倒くさいので話をしたくない。 このスレはどうせみんな常駐してるようなもんなんだから、みんなコテハン にすればいい。それそれぞれが嫌な奴をNGリストに入れておけばいいと思うんだがな。 そんなわけで ID:ZZNOCL1sは俺をNGリストに入れておいてくれ。 お前と話をするのは疲れる。
666 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:49:53 ID:ZZNOCL1s] >それぞれのタスクを逐次処理しようが、それは並行処理って言うんだが。 いや、単純に考えて、処理に依存関係があると、並行処理できないだろ。 実際OSなんかは各スレッド間に依存関係が無いものと見なして並行処理しているわけで。
667 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:52:30 ID:8u/3vapK] >>658 それが実質直列だってことは分かるんだけど。 とりあえず、俺が何を考えているのかと言うと、 動き方が実質直列であっても、それぞれ別のスタック領域を持ってる点が違うだろ? 別々のコンテキストを持っている。 その辺を区別するのに「実行効率ゼロの並行」も俺は並行と呼んでただの直列と区別していた。 要するに俺はコアが何個でそのPCがどこ指してるのって部分だけで並行か並列かって言ってた。 んで、一般的定義はどうなのと思ってググった先を見てみると、 コンテキストがどうのというのは論点じゃ無いような気がしてきた。 もうちょい調べてみるわ。
668 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:05:02 ID:cewi3IDn] >>666 > いや、単純に考えて、処理に依存関係があると、並行処理できないだろ。 あんたの「並行処理」について持ってる勝手なイメージは知らんが、 優先順位がついていてそれぞれのタスクを逐次的に処理していく場合も (そのタスクが終了後に消滅しないなら)「並行処理」と呼ぶ。 en.wikipedia.org/wiki/Concurrent_computing > Concurrent programs can be executed sequentially on a single processor > by interleaving the execution steps of each computational process 「並行プログラムは、それぞれの計算プロセスを実行箇所をインターリーブしながら シングルプロセッサによって逐次的に実行される」 計算プロセス間の依存性とか、効率とかそんなことは並行処理の定義とは 何ら関係がない。 ・実行箇所をインターリーブしながら(タスクからリターンしてもタスクは 通例存在していて) ・シングルプロセッサによって(ある瞬間を見たときにつねにひとつの プロセッサしかタスクを実行していない) この二つを満たしているなら、並行処理。
669 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:09:24 ID:ZZNOCL1s] >ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。 どこにそんな定義があるんだ?
670 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:10:23 ID:cewi3IDn] >>667 何を言いたいのかよくわからないが、>>668 の説明は理解できる?
671 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:11:16 ID:cewi3IDn] >>669 >>668
672 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:26:24 ID:ZZNOCL1s] 並行計算 ja.wikipedia.org/wiki/%E4%B8%A6%E8%A1%8C%E8%A8%88%E7%AE%97 >タスク群は1つのプロセッサ上で動作する場合、複数プロセッサ上で動作する場合、 >ネットワークを介した分散システムで動作する場合が考えられる。 663 名前:並列さん ◆dPfetnROQg [sage] 投稿日:2009/03/07(土) 11:31:14 ID:cewi3IDn 並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が 単一か複数かの差のみ。そんなことは誰でもわかっている。 Wikipediaの人は分かってないみたいですよ。 注意してきたらどうなんですかね。
673 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:42:43 ID:ZZNOCL1s] >>668 >計算プロセス間の依存性とか、効率とかそんなことは並行処理の定義とは >何ら関係がない。 だから、並行処理では処理の依存性は考えない=依存性は扱わない=依存性は扱えない。 扱わないのは扱えないから扱わないの。 実際のOSなんかでも、スレッド間の処理の依存性は扱わない。というか扱えない。 各スレッドを並行と見なして実行する。 処理に依存性がある場合はプログラマが自前で同期オブジェクトとかつかってシコシコやる。 一方、タスクシステムでは処理の依存を優先順位という形で明示的に扱うのが一般的。 各タスクを並行とみなしているわけではない。
674 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:44:25 ID:92TsYx3X] いつのまにか 並行・並列処理の単語の定義のスレになってるな。 自然言語の単語の定義なんてどこまでいっても曖昧なのに… 自分の言う「臭い」と他人の言う「臭い」が同じという保障なんて誰にも出来んよ 確かなのは人工言語で書かれたソースのみ。
675 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:44:25 ID:cewi3IDn] >>672 ざっと見たけど日本語のwikipediaのほうは、ひどいな。 これとか > 並行性のための構造を備えた最も一般的な言語はJavaとC#である。 なんでだよと突っ込みを入れたくなる。 これ書いてる奴は、thread生成が出来るからJavaとC#を入れてるんだろうけどひどいにもほどがある。 C#のyieldによるcontinuationは確かに並行スレッドなんだが、それならJavaを含めるのはおかしい。 日本語のwikipediaの「並行性」の項目もひどいな。なんだよこれ。 ちょっとwikipedia行って暴れてくるわ。
676 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:47:15 ID:cewi3IDn] >>674 > 自然言語の単語の定義なんてどこまでいっても曖昧なのに… 専門用語は、限りなくstrictに定義されてるべき。 そうじゃなきゃ論文とか意味のないものになってしまう。
677 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:50:58 ID:ZZNOCL1s] >>668 wikipediaを引用しているようだが、途中で切れているようだが。 >「並行プログラムは、それぞれの計算プロセスを実行箇所をインターリーブしながら >シングルプロセッサによって逐次的に実行される」 の後ろには、実際には or executed in parallel by assigning each computational process to one of a set of processors that may be in close proximity or distributed across a network. が続いている。 自分の都合の良いところだけを掻い摘んで引用する根性の悪さ。 結局、 >並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が >単一か複数かの差のみ。そんなことは誰でもわかっている。 は間違い。
678 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:52:11 ID:cewi3IDn] >>673 > 実際のOSなんかでも、スレッド間の処理の依存性は扱わない。というか扱えない。 それはダウト。 実際のOSにはプロセスのpriorityがあって、それに従ってスケジューリングされる。 割り込みなんか特にそう。あるプロセスの実行が他プロセスの実行より優先されることは多々ある。 キーボードイベントが発生したら、その処理が優先される。そこには明確な実行順序がある。 そんな機能すらない、もっとprimitiveなOSの話をしているなら、まあそれはそれでいいけど 「実際のOS」と書かれるとWindowsやらLinuxやらを想定しているのかと俺は思ってしまう。
679 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:02:13 ID:ZZNOCL1s] >>675 お前がひどいという日本語版の、 「並行性のための構造を備えた最も一般的な言語はJavaとC#である。」 は英語版のページにある 「Today, the most commonly used programming languages that have specific constructs for concurrency are Java and C#. 」 の訳なわけだが。 そしてその英語版のページを引用して、 「これが並行処理の定義だ!」と言っていたのがお前なのだが。 さらにその引用も自分の都合のいいところだけを引用するという正確の悪さ。 「〜又は〜」と書いてあるのに、「又は」以降をバッサリカット。
680 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:05:44 ID:ZZNOCL1s] >>678 プロセスのプライオリティーは必ずしも守られるわけではない。 あれは、CPUリソースに対する優先順位であって、処理に対する依存関係を表すものではない。 現にマルチプロセス環境だと、プライオリティーの高いものと低いものが同時に実行される。
681 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 13:05:45 ID:cewi3IDn] >>677 それなぁ、「executed in parallel」以下は敢えて省略した。 これを「根性の悪さ」と言われるのはわからないではないが、いま俺が問題としているのは、 「concurrent thread」 とか「parallel thread」というときのconcurrentとparallelの意味の違いだ。 「concurrent computing」という学問分野があって、その学問分野は広範で いわゆる分散コンピューティングみたいなことまで研究対象としている。 本来、concurrentの定義にparallelとか出てくるのはおかしいのだが(それだとconcurrentとparallelとの 差が無くなってしまう)、「concurrent computing」の分野においては、「concurrent program」の意味は、 かなり拡大解釈されている。だから、その部分をはしょった。 「concurrent computing」のconcurrentを援用するのがあまり良くなかったと言われれば、まあ、それはそうなのだが。
682 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:09:34 ID:Fbn5zOAB] 並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 並列(parallel)は、複数の計算を物理的に同時に実行できることを表す。 んじゃないの? 独立した概念(関連はあるけど)なんだから、>>660 の >ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。 はおかしいと思う。 concurrentに作っておけば、parallelに実行しやすいんだし。
683 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 13:17:17 ID:cewi3IDn] >>680 うむ、それは正しい。 >>682 ああ、そうか。そういう意味では、660はおかしいし、書き方が悪いな。 これについては反省。すまんかった。> ID:ZZNOCL1s
684 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:19:11 ID:ZZNOCL1s] 用語の定義をめぐって、wikipediaと格闘するような人とは議論したくない。
685 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:20:00 ID:ZZNOCL1s] お互い疲れたと見える
686 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 13:24:11 ID:cewi3IDn] >>682 > 並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 > 並列(parallel)は、複数の計算を物理的に同時に実行できることを表す。 この定義に基づいて古典的なタスクシステムのタスクについて語ると ・古典的なタスクシステムのタスクは、「並行」。 ・実行順序に厳しい制約があるとみなすなら、「並列」化はできない。 ところが実際のゲームでは、タスク間に依存関係がない部分が結構あるので 部分的に「並列」化できる。 この「並列」化によって、コア数N×0.7ぐらいのパフォーマンスは出る。 で、この「並列」化を古典的タスクシステムを進化(?)させて書けるようにすれば いいということだな。
687 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 13:24:58 ID:cewi3IDn] >>684 俺のことは、NGリストに入れておいてくれ。 最初に682のように書いてもらえれば、俺はすぐに理解できたのだが。
688 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 14:32:04 ID:NOayWFQU] これにて一件落着
689 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 14:39:01 ID:ZZNOCL1s] おれは、>>682 と同じ意見ではない。 >並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 これに付け加えて、並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、 必要だと考えている。 並行性 ja.wikipedia.org/wiki/%E4%B8%A6%E8%A1%8C%E6%80%A7 だから、 1.並行でなければ並列化できない。 2.タクスの処理順位を考慮するようなタスクシステムは、すべてのタスクが互いに並行というわけではない。 3.ゆえに、タスクシステムを並列化するならば、並行なタスク同士を抽出する必要がある。 と考え、 さらに、タクスの処理順位を考慮するようなタスクシステムは「並行でない」と考える。
690 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 15:29:42 ID:8u/3vapK] >並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 俺もこう思ってた。 んでそうハッキリ書いてある資料を探してるんだけど、見つからない。 >並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、必要 次からこっちの定義で話すわ。
691 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 15:37:28 ID:92TsYx3X] >>689 >さらに、タクスの処理順位を考慮するようなタスクシステムは「並行でない」と考える。 MTフレームワークは処理順の依存の有無でタスク分けてマルチコアで同時に複数タスク動かしてるけど これは処理順位を考慮するシステムだから「並行でない」のかな?
692 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 15:42:35 ID:ZZNOCL1s] だいたいちょっと考えれば分かることだが、並行の定義が、 >並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 だと、いわゆるオブジェクトと呼ばれるものは全部並行ってことになっちまうだろ。 コンテキストが同時に存在できないオブジェクトなんて、まあ無いからな。 言葉としての意味が無くなる。
693 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 15:56:08 ID:ZZNOCL1s] >>691 もしはじめから並行なら、MTフレームワーク自体いらないでしょ。
694 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 16:00:29 ID:92TsYx3X] >>693 >もしはじめから並行なら どこにそんな前提が?
695 名前:名前は開発中のものです。 [2009/03/07(土) 16:36:27 ID:E0xOAlNR] >>689 >これに付け加えて、並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、 ある計算の、ある時点における実行状態を表現したものを、コンテクストと呼ぶんじゃないの? >並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 と同じ事を言ってるだけのような。 >1.並行でなければ並列化できない。 は違うと思う。 並行でない命令列も、依存関係が無ければ並列化できる。 現にCPUの中でシリアルセマンティクスを満たしつつ並列実行が普通におこなわれている。 そういう命令列は本質的に並行だった?違うでしょ?スーパースカラで並列に実行される命令は、 異なるコンテクストを持ってるわけじゃないんだから。 あと細かいことだけど、順位と順序は全然意味違うんだから、 ちゃんと使い分けてくれないと読み辛いよ。
696 名前:名前は開発中のものです。 [2009/03/07(土) 18:22:05 ID:UcXZ5wF9] でも依存関係があるかないかなんて並列で実行してんのにどうやってわかんだろね くる値によって依存関係があるかもわからんしないかもわからん ごった煮だとそういうソースになってしまうな
697 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 18:30:21 ID:rbzzI5lu] ID:UcXZ5wF9 ↑(・∀・)↑ ウンコちゃんインしたお
698 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 18:34:25 ID:ryll+mdy] >>695 > >これに付け加えて、並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、 > ある計算の、ある時点における実行状態を表現したものを、コンテクストと呼ぶんじゃないの? > >並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 > と同じ事を言ってるだけのような。 例えば、コンテクストが共有されている場合などでは、 コンテクストは同時に存在できるが、同時に実行はできない。 具体的には、オブジェクトAがオブジェクトBの参照を内部に保持している場合など。 オブジェクトAはオブジェクトBとコンテキストを共有しているということになり、 オブジェクトAとオブジェクトBは同時に存在できるが、同時に実行は出来ない。 >並行でない命令列も、依存関係が無ければ並列化できる。 並行でない命令列の中でも、依存関係が無い並行な部分だけは並列化できる。 並列化とは、並行に処理することだから、並行な処理しか並列化できない。 自動並列化 ja.wikipedia.org/wiki/%E4%B8%A6%E5%88%97%E5%8C%96 >プロセッサで「並行」に実行されるようにする。 スーパースカラ ja.wikipedia.org/wiki/%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%A9 >プロセッサ内の冗長な実行ユニットを使って「並行」して処理される。
699 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 18:39:37 ID:ryll+mdy] >>694 ヒント:背理法