タスクシステム総合スレ part5at GAMEDEV
タスクシステム総合スレ part5 - 暇つぶし2ch426:名前は開発中のものです。
09/03/01 12:46:52 I7MayTRi
もーいーよーだれか説明してよ、まとめてくれよー。
うち頭悪くていいから。長くても4レスぐらいでまとまるでしょ?

427:名前は開発中のものです。
09/03/01 18:00:32 +HiGpNcL
>>426
>264

428:名前は開発中のものです。
09/03/01 18:45:16 3VRI83Xk
ぶっちゃけると誰にでも理解できるものじゃないと思う。
少なくともポインタを理解できる頭は必要。
"使える" と "理解できる" は違うよ。

429:名前は開発中のものです。
09/03/01 18:48:07 xuNYhNP2
>>428
なにその使っていけばレベルがあがるみたいな言い方?
タスクシステム自体プログラム言語の進化を完全に否定してるものなのにw
型も引数も否定して彼等はどこへいくのか・・・

430:名前は開発中のものです。
09/03/01 19:17:01 lmuwAfAn
アンチタスカーの頭の悪さが目立つな。

431:510
09/03/01 19:35:00 lmuwAfAn
URLリンク(kansai2channeler.hp.infoseek.co.jp)
作りかけだけど。
前スレで言ってた参照構造を実装した。
オブジェクトの参照構造がreference_structure.cppで定義されてる。
タスク内において、それの定義にしたがってオブジェクトが参照される。
今日はここまで。

432:名前は開発中のものです。
09/03/01 19:36:50 bNWlMx7s
アンチタスカーですが
>CodeZine:本格的なシューティングゲームを実現するタスクシステム(タスクシステム,シューティング,ゲーム)
>URLリンク(codezine.jp)
このコードはひどいね
重複してるし 未使用領域もある
メンバ関数も無駄にstaticで意味がない

もっと調べればもっと叩くところはでるだろう


で タスク信者に言う ソースで語れ
嫌なのか?さらしたくないのか?逃げるだけか?ライバルを作りたくないのか?逃げるのか?

答えろ

433:名前は開発中のものです。
09/03/01 19:43:26 3VRI83Xk
>>429
使っていけばレベルがあがるとは言ってない。

URLリンク(local.joelonsoftware.com)
>どうやら大部分の人々はポインタを理解するための脳の一部分を持たずして生まれてくるようだ。

俺にはこれを否定できない。
同じ大学で勉強したはずの友人の例を見てきてるから。

434:名前は開発中のものです。
09/03/01 19:44:25 aHmLTao6
>>431
これはひどい

435:名前は開発中のものです。
09/03/01 20:39:37 /NI8vJIH
>>432
> このコードはひどいね
> 重複してるし 未使用領域もある

どれが未使用領域?

436:ID:EEKBitmg
09/03/01 20:42:30 MlhdTCDS
>>433
そんな馬鹿な!世界は広大だな
PICのプログラムを組む実習とかあったが
HWIトリガーにしてアドレス入りレジスタ
使ってROMエリアのデータ(配列)読んで
所定の計算して出力とか、脳筋体育系も
ヤンキーも出来てたぞ。出来なきゃ留年
チョンボして他人のソース丸パクできない
やればひどい制裁を受けるから

ポインタ使えないんじゃなくて、そういうのを
使う必要がない言語や環境しか経験してないから
単に不慣れなだけじゃないの?

437:名前は開発中のものです。
09/03/01 20:56:06 1CyuAS5Y
ポインタを使えない人は本当に居る。
不慣れとかそういう話でなく、ポインタの仕組みは理解できても、
(コーディング上において)ポインタを使うメリットが理解できない。ってタイプ。

知り合いに、値渡しで関数に与えていて、わざわざ冗長なコードを書いていたから指摘したら、
本人いわく、ポインタは知っていてもあえて使わないんだとさ。

438:ID:EEKBitmg
09/03/01 21:18:09 MlhdTCDS
>>437
んー。そうかー
値渡しで組んでも動くからいいやーって人かな
CPUパワーもRAM容量も余りまくりでジャブジャブ
使ってもいいよーっていうターゲット(ハードウェア)
を使える環境だからそういうふうになるんじゃないかな

貧弱環境でタイムクリティカルな処理しろって
状況に放り込めば参照渡し使うと思うけど

439:名前は開発中のものです。
09/03/01 21:24:04 1CyuAS5Y
どんな環境でもポインタで参照渡し使った方が軽いし、コード記述量も減るというのに、
彼のとった選択肢は"ポインタは分かり辛いから使わない"だとさ。
だったらCやめればいいのにと思った。

440:名前は開発中のものです。
09/03/01 21:24:27 aHmLTao6
>>438
前に ACM Newsletter か何かで読んだが、教育レベルとか計算機環境に
よらず、一定割合でプログラミングがダメな人は存在するそうだ。

いい大学の CS に入ってくるような人間でも、適性ない人間はどうにもダメ
らしい。



441:名前は開発中のものです。
09/03/01 21:25:01 aHmLTao6
>>439
っつか、ゲームプログラミングやめれば良いのにな。

442:名前は開発中のものです。
09/03/01 21:34:18 bNWlMx7s
>>435
読めばよい

443:名前は開発中のものです。
09/03/01 21:38:28 XFHzOPV1
>>431
#include "Tasksystem.h"
#include "reference_structure_macro.h"

このヘッダがzipに入ってないね。

444:名前は開発中のものです。
09/03/01 22:03:38 1CyuAS5Y
このスレ見て、身の回りのいろんなPGを見ていて思うに、
ゲームプログラマには、大別してクリエイター型とエンジニア型が居ると思うわけよ。

■クリエイター型(C型)
ゲーム製作を美術・芸術・メッセージ表現の一種と捉え、作品の完成を目指して鍛錬する。
ゲームが完成することを最終目標としているために、エンジニア型に対して結果が全てと見下している。
ゲームとしての表現力を増すのような技術がローコスト(手間要らず)で導入であれば積極的に採用したいが、
ゲーム製作において足枷になるような技術については、嫌悪する傾向がある。
駆け出しの頃はスクリプター寄りの傾向。将来的にはPDに向いている。
プログラミング能力は低いので他業種での潰しが利き辛い。

■エンジニア型(E型)
ゲーム製作を自己のプログラミング能力向上のための試金石と捉え、ライブラリの完成を目指して鍛錬する。
フレームワーク作りに熱中し、何時まで経ってもゲームは完成しない。
新規技能・技巧をいち早く取り入れる風潮があり、汎用性・完成度・移植性などを重視する傾向がある。
技術的に稚拙なクリエイター型について、プログラム知識の無さに嫌悪することがある。
駆け出しの頃はライブラリ製作+サンプルゲームを作る傾向。将来的にはメインPGに向いている。
プログラミング能力が高いので他のSE業種に移行しやすい。

445:名前は開発中のものです。
09/03/01 22:04:44 1CyuAS5Y
で、今までのレスの流れも見ていて、ここからは完全に独断だが、
アンチタスク派は、ずっとC型でPG経験の浅い若年層が多い気がする。
・コンシューマ開発で、C++も無かったASM時代において、タスクシステムが成した業績と歴史を認めない。
・プログラム技能が未熟で、TCBなり、関数ポインタによるスケジューリングを理解できない/扱えない。
・実際にタスクシステムを使ったコーディングに従事したことがあり、タスクシステム特有の束縛された記述方法に嫌悪感を示す。
・ただタスク派をおちょくって遊びたいだけ。

一方、タスク派は、ずっとE型でPG経験の長い壮年層が多い気がする。
・OOP時代を迎え言語もコンパイラも発達し、タスクが過去の遺産であることを認めない。未だにタスクシステムをプロの技巧と賞す。
・タスクによるスケジューリングが完全汎用であると勘違いし、これを理解できない人を煽る。
・ゲーム内容の実際の記述において、タスク管理によるコーディングがどれほど厄介なのか理解できない。
・ただアンチタスク派をおちょくって遊びたいだけ。

と見ている。

個人的には、中庸が一番。
始めはE型で自作ライブラリが完成してから、C型に移行するプログラマーが理想なんだがね。
もしくはPG2名で完全分業し、E型がライブラリとスクリプトを提供して、C型がゲーム内容を記述するのでも良いと思ってる。


446:名前は開発中のものです。
09/03/01 22:59:06 aHmLTao6
>>445
> ・コンシューマ開発で、C++も無かったASM時代において、タスクシステムが成した業績と歴史を認めない。
若者でも、/* You are not expected to understand this */ とか読んだことあれば
十分だよ。

447:名前は開発中のものです。
09/03/02 01:17:33 Ggk4JG/+
>>442
>432
> 嫌なのか?さらしたくないのか?逃げるだけか?ライバルを作りたくないのか?逃げるのか?

448:名前は開発中のものです。
09/03/02 02:04:32 qNJJjYLT
実際にタスク改みたいなシステムでゲーム何本か作ったことがあれば
いろいろあれの欠点で苦労するから純粋なタスク信者ってのはありえないけどね。
でも単純なアンチってのもまた無い。

ジャンルや環境によっては今でも十分使い物になるから。というか今の携帯機クラスの性能のゲーム機で
動いてるゲームのかなりの数がいわゆるタスク改で実装されてる。
それに純粋なタスクシステムの欠点はそれぞれ回避方法があるので使い分けができる。

ジャンルによってはタスク改ではない違う作り方のものもあるけど、アクション系ではいわゆるタスクの進化系以外の
実装はあんまりお目にかかったことが無いな。
少なくとも日本産に限っては。海外産はあんまりソース見る機会無いから知らんが…

449:名前は開発中のものです。
09/03/02 07:26:29 N5eJa8sN
ぜってーそんなことねぇよ(笑)
こんなマイナーシステム普通使わねぇだろ

450:名前は開発中のものです。
09/03/02 15:49:57 2YZpDjg8
ミニゲーム集みたいなゲームだとタスクシステムは向いてると思うけどね
同じインターフェースで全く遊び方の違うゲームを数十個つくらにゃいけない場合とか
一つ一つにかかるコストを大幅に削減できる

451:名前は開発中のものです。
09/03/02 17:55:09 N5eJa8sN
向いてねぇよ
ごった煮だから弾の処理で何が呼ばれててもおかしくない
ということは弾だけなにかほかに使おうと考えても
ソースの癒着が酷くて切り出して使うということはできないというわけだよ
わかったかね

452:名前は開発中のものです。
09/03/02 18:02:00 hIPGPAIG
よく>>451見たいな書き込みを見るけど
タスク間のアクセスはタスクシステムが間に入るから
癒着がひどいっておかしくないか

453:名前は開発中のものです。
09/03/02 18:16:36 N5eJa8sN
それじゃなんのためのごった煮なの?
どこからでも呼び出したかったんじゃないの?
つまりそれは、すべてを呼び出している可能性だってあるということだよ
だってそのためにごった煮にしたんでしょ?
ミサイルのターゲットをポインタの保持で解決したかったんじゃないの?(笑)

454:名前は開発中のものです。
09/03/02 18:25:42 hIPGPAIG
例えば全てを呼び出してるとして
ミサイル以外のタスクをソースから排除しても
ターゲットが見つからずにまっすぐ飛んでくだけでしょ
ターゲットのポインタなんて抽象クラスへのウィークポインタか
インクリメンタルIDのどっちかだし

455:名前は開発中のものです。
09/03/02 18:33:27 N5eJa8sN
そんな話してねぇよ馬鹿
全部呼び出せるってことは全ヘッダーファイルが必要になるってことだろが
それとも今更カプセル化守って弾のクラス内には他のゲームオブジェクトは一切入ってこない
って方向転換するか?それでもいいぜ(笑)

456:名前は開発中のものです。
09/03/02 18:48:04 hIPGPAIG
なんで全部呼び出せるなら全ヘッダーがいるんだ
派生先のポインタが欲しければ各自でキャストすればいい
それが嫌ならビジター作ってタスクシステム内のタスク全部なめればいい
なんで弾のクラス内に他のゲームオブジェクトが入ってくるんだ
そんな話出てきたか?めんどいんで方向転換ってことでいいです。

457:名前は開発中のものです。
09/03/02 18:56:46 N5eJa8sN
キャストするにはだな・・・え~そっから~(笑)
さすがにそのレベルはかつてないな(笑)

458:名前は開発中のものです。
09/03/02 19:19:04 hIPGPAIG
いやあ俺馬鹿だからさ優しく教えてよw

459:名前は開発中のものです。
09/03/02 19:32:05 Rv93cI1M
>>457
面白いからもっとやって(笑)

460:名前は開発中のものです。
09/03/02 19:36:16 wHsdSnqf
俺も見てるよ。面白い展開になりそうだからもっと熱く語り合ってほしい(笑)

461:名前は開発中のものです。
09/03/02 19:57:05 VFyVP2iT
まだごった煮言ってるのかw
なにも進歩ないなw

462:名前は開発中のものです。
09/03/02 20:14:04 iymFeNpw
キャストするクラスのヘッダーだけでいいだろ?
全部は必要なくね

463:ID:EEKBitmg
09/03/02 20:44:58 0jBbfc+e
>>444-445
C型なのかな。肝炎みたいだね。「おまえの場合は脳炎だろ」とか言われそうだけど

助教授に言われたことがある
『例えばお前が作ってるゲームなんてものは技術的には枯れた要素技術の集合体であり
CASEツールで機能分析すれば、その大半は汎用のコンポーネントを結合したものとして
表現される。』と

『開発工程全体を見たとき、お前はおそらく遊び・面白さの部分を煮詰める反復作業に
 時間の多くを費やしているのだろう。ならば、ワークフロー・データフローの設計も
 そこを優先するだろ常識的に考えて。与えられてる状況(道具、人、時間、etc)にあわせて
 構造化設計すれば、最終的な結論はH**は神言語となる。わかったな?』

私は心を打たれた。この人はC型のようなE型のようなH型だ

助教授はいわゆるベーマガ世代というものらしい。本人に言わせれば『PIOとかRAMとかテクノ(何とか)を
知らないようなガキにベーマガ世代とか言われるとイラっと来る』ということらしいけど、まぁとにかく
そういう世代らしい

助教授にタスクシステム(>>2)のページを見せた。反応は「組み込みシステムを劣化猿真似してるのか」
みたいなかなり淡白なものだった
『ワークRAMが少ないゼッパチマシンでこんな贅沢な組み方してたのか?』
『70年代にこれやってたって本当か?』『メガドラとか16ビットのアーケードゲームの話じゃないのか?』
と聞き返された。そんなことは厨の俺が知るはずもないし答えられるはずもなかったから
「だってこの人(LogicianLordの人)がギャラクシアンはこうだって言ってるからそうなんじゃないすか><」
と知能障害・思考停止な返事をしたら『ふーん。あっそう』と言われた

むかつく。誰か教えて

464:ID:EEKBitmg
09/03/02 21:27:36 0jBbfc+e
『当時は毎月、目を皿のようにしてマイコン雑誌を読み漁ったが"タスクシステム"なんて言葉は見た記憶無いな』
『俺にとっては雲の上のプロプライエタリな世界だったから。そういうプロの世界の隠語なのかな。』
『しかし30年以上経過して陳腐化したからって吹き出物みたいに今更出てきても仕方ないだろこんなもの』
『PCでさえベクトルプロセッサ化したビデオチップにマルチコア化したCPUが普及した現代においてこんな一本道の
 逐次処理コードを使ってたんじゃハードは遊び放題だな。お前らのゲームボーイ(←DSのことらしい)で使ってるテクか』
『ステートマシンの逐次処理用の優先度付きキューを手作りしてたのか。今ならboostか次期C++標準のライブラリ
から出来合えのコンテナでも引っ張ってくればいいんじゃないの。あと、機能分析すればこの実装になる必然性はない』
『型システムを否定している。コンパイラによる最適化を阻害してる。自作ジャンプテーブルで条件分岐は高速化される
 という先人のチョイテク・豆知識を天下り式に真似ているのではないか。それは太古の簡素なCPUアーキテクチャに
 依存した公式に過ぎない。定理ではない』

『くだらない話をふってないで、お前は早く課題レポートを提出しなさい』

うぜぇオヤジだ


465:名前は開発中のものです。
09/03/02 23:57:02 j9iR0+6m
>>464
> マイコン雑誌
この辺の単語の使い方に、世代を感じるなぁ。

466:名前は開発中のものです。
09/03/03 00:35:53 RAMjL7VZ
テクポリは最初技術系の雑誌だったんだね
アダルトゲーム雑誌になってからしか知らないや

467:名前は開発中のものです。
09/03/03 00:54:38 nTxu8UVE
>>463-464
何…?このポエム

今もタスク進化系が使われ続けてる現実を前にして
現実逃避してるのかな?


468:名前は開発中のものです。
09/03/03 01:06:03 gnPoJpgi
ID:N5eJa8sNはタスクシステムを使うとタスクシステムに全部のheaderをincludeしなければ
ならなくなるとか言っていた例の基地外だろ。

こんな低脳がアンチタスカーだから、アンチはみんな頭がおかしいと思われるんだ。

こんな奴、プログラマですらないので、この板から出てけよ。

469:名前は開発中のものです。
09/03/03 01:43:30 e/qFL/0J
>>467
シーングラフはタスクシステムの外国版(笑)
タスクシステム改(笑)
タスク進化系(笑)

出るわ出るわ。怪しげな僕んちのソフトウェアアーキテクチャ発展史
萎びた僻地で密教みたいにひっそりやってきた「俺んちのベストプラクティス」
そいつがお前にとってのプライスレスなのはわかるけどな
何の具体的な情報も開示せずに世間に認知してもらおうなんて考えちゃダメ
世の中そんなに甘くない

公にされず標準化もされないド田舎・ローカルのソフトウェアアーキテクチャや
ベストプラクティスと自認している者は、何の資料も出せない状態で世間の前で
顔真っ赤にして反論したりしない。黙ってる。そこを分かれ。出てくんな。みっともねー
幾つだよお前。誰だよ

反論するならお前の言うタスク進化系って奴が世間に認知される
ソフトウェアアーキテクチャ、ベストプラクティスとなるよう、きちんと文書にして
発表すべきだ

現在、世間の前に出てるタスクシステムに関する文献の中で唯一
書いた人間の出自が現場出身であることが垣間見えるのは秀和の
逆引きゲームプログラミングだけ。これを超えるものをお前が書けばいい




470:名前は開発中のものです。
09/03/03 01:50:47 e/qFL/0J
>>468
あー、やっぱあいつだよな
ヘッダーがどうのとか言い出した瞬間にイカ臭かったもんな

471:名前は開発中のものです。
09/03/03 02:03:06 nTxu8UVE
>>469
>ベストプラクティスと自認している者は、何の資料も出せない状態で世間の前で
アンチじゃなくてもあんな原始的な仕組みをベストプラクティスと自認している人はいないと思うぞ。

あぁ、アンチって実はタスクシステムに過度に期待してる人たちなのかもね。
「こんな自分でもタスクシステムが理解できたらゲームが作れる…」って。
だから資料出せ、教えろ、説明しろってうるさいのか。

472:名前は開発中のものです。
09/03/03 02:09:19 e/qFL/0J
>あぁ、アンチって実はタスクシステムに過度に期待してる人たちなのかもね。
>「こんな自分でもタスクシステムが理解できたらゲームが作れる…」って。
>だから資料出せ、教えろ、説明しろってうるさいのか。

今度はアンチは実は信者論か。がんばるねー
アクロバティックな発想に翻弄されちゃうねー
生ゴミの臭いを好き好んでかぎ回るのは信者なんだけど
アンチは臭いものは臭いんだからとっとと捨てればー?
とアドバイスしてあげてる分まだ常識があるねー


473:名前は開発中のものです。
09/03/03 02:22:24 e/qFL/0J
ま、タスカーは大人しくサンドバッグにされてろってこった
今更開陳したところで世間に八つ裂きにされるのが目に見えてるからな
俺は絶対に晒さない。何年も前に廃棄したゴミアーキテクチャだから
とっくに葬り去ってお墓に入れたものをわざわざ引っ張り出して晒す
なんてマゾっけたっぷりの趣味は無い

474:名前は開発中のものです。
09/03/03 02:37:34 gnPoJpgi
ポエマーもいらねーから出てってな

475:名前は開発中のものです。
09/03/03 02:42:58 e/qFL/0J
DSLポエマーと間違われるとは光栄だねー
タスクシステムを叩く材料が不足したら呼んでね。補給してあげるよ
アンチ応援してるよ。あーねみー。ばいばーい

476:名前は開発中のものです。
09/03/03 02:53:26 eCcH4IzT
顔まっかなのはお前だろうに

477:名前は開発中のものです。
09/03/03 02:57:23 eCcH4IzT
>俺は絶対に晒さない。何年も前に廃棄したゴミアーキテクチャだから
>とっくに葬り去ってお墓に入れたものをわざわざ引っ張り出して晒す
>なんてマゾっけたっぷりの趣味は無い

要するに、お前は過去の自分と戦ってるのか?
お前の暗い過去を皆に押し付けないで欲しい。

478:名前は開発中のものです。
09/03/03 07:34:27 NIkO1+LI
ヘッダー全部インクルードしないと必要なときに必要なものが呼び出せないから
タスクシステム使ってるなら総合ヘッダーに全部インクルードしてあると思うよ
仮に必要なものだけだとしても関連をもったものは全部インクルードしてやる必要があるから
この構造で作ったら切り離すのは容易じゃないよ

479:名前は開発中のものです。
09/03/03 07:50:27 NIkO1+LI
それと関連をすべてタスクにするとか嘘ついてるけど
ポインタの保持を関連タスクに強制するうえ
パラが一つでも必要になったらタスクを新しく作らなければならない
折角、ごった煮にした意味がまるでないけどそれでいいの?
だんだんタスクなんて作らないほうがいいって結論になりそうで俺は満足だけどね

480:名前は開発中のものです。
09/03/03 08:19:58 gnPoJpgi
>>478
お前が頭がおかしくて、プログラムの組めないド素人なのはよくわかったから
もうこの板に来んな

481:名前は開発中のものです。
09/03/03 08:53:25 HSt7mZci
>>478
んなこたない


アンチな俺でも同意できる箇所が見当たらない

482:名前は開発中のものです。
09/03/03 10:09:41 T2e1Wx7e
一番要らない子なのはウンコちゃんだろう。
全レス内容無しってのが凄い。

483:名前は開発中のものです。
09/03/03 12:43:55 NIkO1+LI
じゃヘッダー無しでどうやってキャストしてんだよ
まあ、これは無理でしょ

タスク信者が必要な分だけインクルードしてるなんて考えられないから
ごった煮を表現するために総合ヘッダー絶対あるだろ
だからタスク信者の書くソースは分離できない
さらにタスク信者は引数使えないから総合ヘッダーにグローバル変数の塊もあるだろうし
奴らのソースはカプセル化なんて不可能と言っていい
テンプレートは使いたがるくせにオブジェクト指向は欠片もわかってない

484:名前は開発中のものです。
09/03/03 13:04:10 gnPoJpgi
>>483
> ごった煮を表現するために総合ヘッダー絶対あるだろ

ない。お前はOOPの基本すらわかっていない。もう死んで。

485:名前は開発中のものです。
09/03/03 13:09:30 fc1Nudsp
>>483
なんでそこでテンプレートがでてくるのか理解できない
総合ヘッダにグローバル変数ときたら次はマクロだろ

486:名前は開発中のものです。
09/03/03 13:11:42 HSt7mZci
>>484
OOPは関係ないだろ…

487:名前は開発中のものです。
09/03/03 13:11:56 UVBLimNu
>>483
>総合ヘッダー
その発想は無かったwwwwwwwww
お前のコーディングすごいなwwwwwwwwwww

488:名前は開発中のものです。
09/03/03 13:14:20 HSt7mZci
>>484
携帯からだったから483よく読んでなかったぜ
すまんこ
>>483
根拠の無い話ばかり並べても叩かれるだけ

489:名前は開発中のものです。
09/03/03 18:22:34 NIkO1+LI
いいやあるね
少なくともごった煮をデータベースとか言ってた馬鹿のソースには確実にあるね
そもそもそいつは制限や型を言語の進化の過程でできたものという認識がまったくなかった
タスク信者の大半がこんな奴ら
関連をタスクにするなんて言ってるけど
関連クラスとどうやってやりとりする気なんだよ
グローバル変数かポインタの保持くらいしかないだろ
また、無駄に問題が増える(笑)
使わないって選択肢は選べないのかね

490:名前は開発中のものです。
09/03/03 18:25:01 NIkO1+LI
カプセル化もわからないから自機のクラスに弾の処理書いちゃうんだよ
お前等馬鹿は

491:名前は開発中のものです。
09/03/03 18:29:59 UVBLimNu
>>489
>>490
レスを二つにしてカプセル化したつもりですかwwww

492:名前は開発中のものです。
09/03/03 18:34:43 gnPoJpgi
>>489
こんな馬鹿、久しぶりに見た。

悪いこと言わないから、OOPの基礎から勉強しなおしなよ。

493:名前は開発中のものです。
09/03/03 18:57:02 NIkO1+LI
ムリムリ
タスク信者の組み方じゃ絶対分離なんて不可能
グローバルインスタンスホルダーが絶対にある

494:名前は開発中のものです。
09/03/03 19:09:12 gnPoJpgi
>>493
仮想関数すら知らなさそうだな。本当、生きてて恥ずかしくないか?

495:名前は開発中のものです。
09/03/03 19:19:33 NIkO1+LI
仮想関数?
いまの話題と全く関係無いけど頭おかしいの?
弾クラスで自機クラス呼んだら自機クラスのヘッダーが必要になるんだぜ
基底クラスじゃ自機クラス呼べないんだぜ
もしかしてしらなかった?

496:名前は開発中のものです。
09/03/03 19:22:49 gnPoJpgi
>>495
> 弾クラスで自機クラス呼んだら自機クラスのヘッダーが必要になるんだぜ

呼ぶ必要なんか全くないんだが。ほんと、馬鹿だよね。

497:名前は開発中のものです。
09/03/03 19:27:56 NIkO1+LI
でも、呼んでるんでしょ?
だからタスクシステムに固執してるんでしょ?
嘘はよくない(笑)

498:名前は開発中のものです。
09/03/03 19:31:36 gnPoJpgi
>>497
本当、馬鹿すぎて泣ける。

ソース書いてみな。俺が添削してやるから。

499:名前は開発中のものです。
09/03/03 19:38:27 NIkO1+LI
は?
俺はごった煮とかやってる馬鹿なタスク信者をぶん殴ってるところなんだよ
俺がなんのソースをだすんだよ
日本語大丈夫かよ(笑)
ああ、頭悪いのか
それじゃしょうがないな

500:名前は開発中のものです。
09/03/03 19:42:26 gnPoJpgi
>>499
だからお前の糞タスクシステムのソースを出せと言ってるんだ。
全タスクのヘッダをincludeしているところを書き直してやる。

501:名前は開発中のものです。
09/03/03 19:58:25 NIkO1+LI
は?
俺、タスクシステムなんて使わないんだけど?
だいたいソース書きたきゃ自分で書けよ
仮想関数とか明らかにズレた話題だしてる格下のお前の相手なんかしなきゃいけないんだよ

502:名前は開発中のものです。
09/03/03 20:10:55 gnPoJpgi
>>501
仮想関数わかってないのお前。

> タスク信者が必要な分だけインクルードしてるなんて考えられないから
> ごった煮を表現するために総合ヘッダー絶対あるだろ

何度でも言うが、そんなものはないし、そんなことをする必要すらない。
まあ、このスレでわかってないのお前だけだろうから、俺はもう帰る。

基地外の相手してても仕方ないんでな。


503:名前は開発中のものです。
09/03/03 20:38:10 fQh6ZhSe
俺も基底クラスに仮想関数つくってそれ呼び出せば、いちいち総合ヘッダーなんて必要ないと思う。

504:名前は開発中のものです。
09/03/03 21:24:23 NIkO1+LI
は?仮に基底がゲームオブジェクトだとして自機特有の処理はどうやって呼ぶんだよ
まさか全部ゲームオブジェクトにもたせんの?(笑)
ああ、お前等のごった煮ってそこまで腐ってんだ

505:名前は開発中のものです。
09/03/03 21:37:48 fQh6ZhSe
ああ凄いな。凄まじいなID:NIkO1+LIは。
とりあえず総合ヘッダー(笑)については、必要ないことを分かったかい?
まずはそこからだ。

506:名前は開発中のものです。
09/03/03 21:39:53 I1ftq204
ぬるぽ

507:名前は開発中のものです。
09/03/03 21:48:44 gnPoJpgi
>>504
お前は、OOPの基本がわかってない。

腐ってんのはお前の頭。

508:名前は開発中のものです。
09/03/03 21:54:48 gnPoJpgi
アンチタスカーって、なんで ID:NIkO1+LI みたいな OOPすらまともに使いこなせない
糞野郎ばっかりなんだろうかね・・

509:名前は開発中のものです。
09/03/03 21:57:27 fQh6ZhSe
さすがのアンチタスカーの俺も擁護できん。
同じPG職なら陰口叩かれてもいいレベル。

510:名前は開発中のものです。
09/03/03 22:01:20 I1ftq204
ID:NIkO1+LI
2009年ゲ製痛い(ノ∀`)ニュース第1位確定だな。
道理でアンチタスク厨とは、マトモな会話が成り立たないわけだ。

511:名前は開発中のものです。
09/03/03 22:11:53 NIkO1+LI
は?
どうせ総合ヘッダーよんでんだろ
そうじゃなきゃごった煮の意味ないもんな
悔しかったら総合ヘッダー無しでプログラム組んでみろよ
データベースなんだろデータベース(笑)

512:名前は開発中のものです。
09/03/03 22:14:31 fQh6ZhSe
アンチタスカーは、タスクシステムを使って知ったうえで、叩くべきだわ。
使ったこともないのに想像だけで総合ヘッダーや癒着云々と否定しているのは滑稽すぎるわ。

513:名前は開発中のものです。
09/03/03 22:16:25 NIkO1+LI
ハイハイ、自機のソースから弾のソースを取り払ってから言ってね

514:名前は開発中のものです。
09/03/03 22:21:10 AybnbhgS
大昔ポケコンでシューティングを作ってた時は
敵ワークx16 弾ワークx16 とか固定長バッファを用意して、使用中フラグのビットマップで管理して動かしてた
ワークエリア内にポインタを書いてリストや仮装関数を実現するには500kHz程度クロックのCPUには重荷だった
今はもうゲームとして動いてるならなんでもいいやって感じ

515:名前は開発中のものです。
09/03/03 22:41:02 I1ftq204
>>511
総合ヘッダー(笑)って何だよ!
総合病院にでも診てもらってこい。
C++入門者未満のくせに、デカイ顔してノイズ垂れ流しやがって。
タスクシステムを語るには20年早いわ。

516:名前は開発中のものです。
09/03/03 23:02:20 Gs0swA+H
main.h に extern 使いまくりで
どこからでも #include "main.h" をすればコンパイルは通る
分割コンパイルの意味の分かっていないバカのやることだよ

ええ そうですよ 私の講師がそうだったように・・・

517:名前は開発中のものです。
09/03/03 23:13:28 KhkzCgZ3
アンチタスカーだが俗に言うタスクシステムみたいな仕組みを
C++で実現している

ソース晒そうか?

518:名前は開発中のものです。
09/03/03 23:28:24 UfdUZfM/
j

519:名前は開発中のものです。
09/03/03 23:37:31 UfdUZfM/
仮想関数と総合ヘッダの話は
本元のクラスでなくて、抽象クラスを、includeするということ?
/*総合.h もしくはそれの#include*/
class IHoge : public ITask
{
virtual SomeFunc() = 0;
};
/*Hoge.cpp*/
class CHoge: public IHoge
{
SomeFunc();
};
ということ?
多分、総合ヘッダといった人は、IHogeを抜いて考えていたと思う
もしくは、それでもIHogeを利用するところからIHogeが見えないといけないジャンという
ことを言いたかったのかも

タスクとマルチコアとかの関連っぽい記事を発見したので張っとく
理解はしていないので、賢い人解説して
そして建設的な話をして
URLリンク(www.gamasutra.com)


520:名前は開発中のものです。
09/03/03 23:38:58 UfdUZfM/
戻り値書き忘れたけれど、突っ込まないで

521:名前は開発中のものです。
09/03/03 23:47:42 YUVx5SHc
>>519
タスクと言う言葉を軽々しく使わないで下さい

522:名前は開発中のものです。
09/03/03 23:52:38 NIkO1+LI
>>519
馬鹿はどっかいけよ

523:ID:EEKBitmg
09/03/04 00:02:09 vv/UkwCS
厨房見参

総合ヘッダーさん(ID:NIkO1+LI)と引数さんは同じ人だと思うが、まぁそれはそれとして
総合ヘッダーさんはCodeZineの記事に出てくるようなタスクシステムのことを言ってるんだろ?

CodeZineの記事を書いた人は俺と同い歳くらいの学生さんだと思う。叩くつもりはないが
グチャグチャに絡み合ってる反面教師的なコードとしてはなかなか秀逸だなーと思う

task.hに
自機、敵機、自機の弾、敵機の弾 狙い撃ち、爆発、自機の制御、敵の出現制御
ステージ制御、ライフバー管理、スコア管理、タイトル画面、ゲームオーバー画面
といったTaskEx派生クラス全ての宣言をまとめてぶちこんでいる

で、例えば自機弾クラスのソースコードの中を見る。まず先頭でtask.hをインクルードしている
次に自機弾クラスの当たり判定メソッドの中を見る。こいつの中では

int 敵数=GetCount(ENEMY); // 敵の数よこせ (循環リストを総舐め)
for(int i=0;i<count;i++){
  敵クラス *task=(敵クラス*)GetTask(ENEMY , i ); //i番目の敵よこせ (ヒットするまで循環リストを舐める)
  …
}
という感じで 『"グローバルインスタンスホルダー"の検索結果 3 件中 1 - 3 件目』
に対して、『敵を全部くれ』と要求して、敵クラス型にキャスト(static_cast)している

循環リストを舐めまくりでびびった。HSPでこんなコード組んだら重くて普通に死ねる
C/C++を使うメリットを遺憾なく発揮してると思った





524:名前は開発中のものです。
09/03/04 00:18:28 43lD+2sK
>>523
アンチだけれども、別にごった煮にして、
全てをなめるような実装にしなくてもいい気がする
最初から型ごとにリストを持ってそれごと返せばいい訳だし
ヘッダに全部宣言を入れていたのも、サンプルとしてそうしていただけで、
ヘッダが必要な個々の実装でincludeさせてそこでキャストさせればいい
そうすると、型ごとリストへ割り振りは、本当の型で判断できないので
別の情報で型を識別させるようにして型ごとリストを持たせればいいのでは?
タスクシステムに入れる時に型名を文字列で渡すとか
ここらへんは、タスクシステムの弱点ではない気がする
何回も語られているけれど、本当の弱点は、
静的に片付くものをわざわざ動的にして問題を複雑にしている点だと思う
素人考え?

525:名前は開発中のものです。
09/03/04 00:23:18 w8Rwmagw
> 静的に片付くものをわざわざ動的にして問題を複雑にしている点だと思う

意味がわからない。例えば?

526:名前は開発中のものです。
09/03/04 00:31:05 mN9/jFMx
>>524
それなら、最初からふつーにメンバ変数で持たせて終わりじゃない?

class Scene {
 Player player_;
 Enemies std::list<Enemy> enemies_;
...
};

527:名前は開発中のものです。
09/03/04 00:40:31 43lD+2sK
>>525
静的というのは、シーンクラスのメンバもしくはそのメンバに
自機、敵機、自機弾、スコア管理、ステージ制御などを階層を持たせて
配置しているということ
動的というのは、(少なくともインターフェイス越しには)ごった煮の
グローバルなリストから個々のインスタンスが勝手に互いを参照し合って
どうも統制が取れてなさそうに見えないこと
上の静的でも崩壊させることができるけれど、上手く設計すれば問題は起こらないはず
で、ごった煮はその問題をただ先延ばしにしてしまっているようなイメージを持っている
だからアンチ
>>524
そう。そう思う。
だからアンチ

528:名前は開発中のものです。
09/03/04 00:48:30 43lD+2sK
>>どうも統制が取れてなさそうに見えないこと
どうも統制が取れているように見えないこと

529:名前は開発中のものです。
09/03/04 02:40:49 hHE159vF
>>448 の者だが、
タスク進化系がいまだにコンシューマゲーム開発の現場で生き残っているのは単純に無駄が無いから、ってのも理由の一つ。

スーファミからPS1へ、PS1からPS2へ、PS2からPS3へ移行するたびに、こんな大量のメモリ使い切れん、と思ったものだが
なぜかマスター寸前の修羅場になるといつもメモリも速度も足りなくなりチューニングに明け暮れる日々が続く。
これはメモリ128Kのスーファミ時代から256MBのPS3まで、コンシューマ開発では変わらん定例行事。

そして常にメモリとコードの無駄を減らす圧力にさらされるんだけど、タスクみたいに毎フレーム相当数呼ばれる処理に
無駄が見つかると真っ先に削られる。

この修羅場では「可読性が…」とか「OOP的に…」なんて甘い理由よりも少しでも軽量なコードで動かすことが優先される。
で、PS3時代にもタスク進化系が生き残ってる、というわけだね。

仮想メモリつんでてスペックはユーザ毎にばらばらのPC環境では特定ハード向けにガリガリにチューニングなんて意味ないので
PC環境でしか作ったことの無い人間には理解できんだろうけど、
コンシューマ開発や組み込み系とみたいに固有のハード性能を120%使い切る開発スタイルではよくあること。

530:名前は開発中のものです。
09/03/04 02:55:00 43lD+2sK
>>529
なるほど。全くコンシューマーを知らないけれど、説得力がある
では潤沢過ぎる程のメモリと、無限の演算能力がもしあったとしたら
喜んでタスクシステムは棄て去る?

531:ID:EEKBitmg
09/03/04 03:04:13 vv/UkwCS
ありえない仮定を持ち出すとかスゲェな
厨だけどさすがにこれは真似できないな

お前は凄い。俺は頭痛がしてきた。寝る

532:名前は開発中のものです。
09/03/04 03:13:07 43lD+2sK
突込みがあったので補足。
>>530は、タスクシステムが貧困な環境で使えるという>>529に対して、
ならば、十分豊かな環境だったらそうではないのか?という質問。
無限~は *話を簡単にするため* の誇張した表現。

533:名前は開発中のものです。
09/03/04 03:29:05 hHE159vF
>>530
無限のメモリと無限の演算能力があったら…?
それでも小規模なアクションゲーム系1人で作るならタスク進化系の管理システム使うと思う。
タスク系は下手に使うとバグの温床になるけど使いどころを間違えなければ便利だし。

まぁこれは慣れの問題なので、この手のゲームならこの手法で…とかだいたいやり方の想像つくし
タスク系固有のバグで苦しんだ結果、バグの温床にならない作り方が出来るようになってるから、ってのもある。
慣れた人間にとっては開発効率いいんだよね、あれ。

まぁでも新人込みのプログラマ数十人で大規模オンラインゲームを作る、とかならたぶん違う方法取るけどね。

534:名前は開発中のものです。
09/03/04 04:55:07 ll33Ou9u
>>533
無限の資源があってもリスクと教育コスト考えれば結局C++使うだろうねー
無限の納期と無限の人材があるなら・・・遊んで暮らすだろうなー

535:名前は開発中のものです。
09/03/04 05:47:21 kXQL8zXx
タスクシステムってソースがタスクなわけで
プロセスがタスクじゃないのね

ではマルチプロセス対応というのは真っ赤な嘘になるわけだ

536:名前は開発中のものです。
09/03/04 06:56:53 m+X+Qg7j
>>527
タスクシステムはsingletonじゃねぇぞ。

タスクのなかに別のタスクシステムをcompositionで配置してタスクを
階層化できるが、お前本当にOOPわかってんのか?

537:名前は開発中のものです。
09/03/04 07:31:28 NGMxgsfO
そんなの全く意味がないじゃん
だいたいそんなのやるならはじめから分けてもてよ

538:名前は開発中のものです。
09/03/04 07:34:46 NGMxgsfO
並列化はどう考えても嘘
並列にするなら少なくとも並列にするデータは分けないと動かない
ごった煮でできるわけない

539:名前は開発中のものです。
09/03/04 08:44:10 mN9/jFMx
>>529
メモリ使用量の大半を占めるのはテクスチャ・モデル・モーションなどのデータで、
CPU使用時間の大半を占めるのはヒット判定や AI 処理。

いわゆるゲームオブジェクト (プレイヤーとか) で多少削ったところで、誤差にもならない。

540:名前は開発中のものです。
09/03/04 08:48:07 m+X+Qg7j
>>537
> そんなの全く意味がないじゃん

そんなこたあ、ない。

541:名前は開発中のものです。
09/03/04 08:49:26 2ryo6+k/
数人で作るレベルなら擬似タスクでいいよ。
でもそれを超えると破綻すると思う。

542:名前は開発中のものです。
09/03/04 08:49:27 m+X+Qg7j
>>538
阿呆すぎて泣ける。

前スレ510のプログラム、あれ並列化できないの?

本当に1行でもプログラム書けるの?

タスクシステム使わなくていいから、前スレ510のプログラム、並列化してみなよ。

543:名前は開発中のものです。
09/03/04 08:51:55 m+yO0HqN
>>508
彼を養護してるアンチはいないようだが
そこまでして印象操作したいの?

544:名前は開発中のものです。
09/03/04 08:52:16 m+X+Qg7j
>>526
> それなら、最初からふつーにメンバ変数で持たせて終わりじゃない?

そのメンバ変数が指しているオブジェクトが生きていることを誰がどうやって保証するんだ?

545:名前は開発中のものです。
09/03/04 08:54:00 m+X+Qg7j
>>543
このスレのアンチタスカーのレベルが総じて低すぎる。

タスクシステムに限らずフレームワークなんて、使える範囲で使えばいいだけのことなのに
完全否定する奴は完全肯定する奴と同罪で、頭おかしい。

546:名前は開発中のものです。
09/03/04 08:55:29 mN9/jFMx
>>542
> 前スレ510のプログラム、あれ並列化できないの?
そもそも、あれは名前がタスクなだけで、>>2 と設計全然違うけど。

いずれにせよ、データに依存性があり並列化はできない。

> m_vx = m_vx*m_m/(m_m+Star2.m_m) + Star2.m_vx*Star2.m_m/(m_m+Star2.m_m);
> m_vy = m_vy*m_m/(m_m+Star2.m_m) + Star2.m_vy*Star2.m_m/(m_m+Star2.m_m);

たとえばこのコード、複数の Star インスタンスの m_vx, m_vy を同時に読み書きしている。
複数スレッドで走らせた場合、値が保障できなくなる。


547:名前は開発中のものです。
09/03/04 08:57:09 m+yO0HqN
>>545
> 完全否定する奴は完全肯定する奴と同罪で、頭おかしい。
つ鏡

548:名前は開発中のものです。
09/03/04 09:08:31 mN9/jFMx
>>544
526のコードは、ポインタではなく実体で持たせているから、保障も何も要らんと思うが。
いずれにせよハンドルクラス (整数値とインスタンスの対応付け) は用意したほうが
便利だが、その場合でもプレイヤー・敵は別の ID 体系にしておくな。

たとえば、最大 2 プレイヤー同時プレイ可能なゲームで、プレイヤーに向かって
進む敵を作りたい場合。

class PlayerID { int id_; friend class Scene; }; class EnemyID { int id_; friend class Scene; };
class EnemyEnv {
 virtual ~EnemyEnv() {};
 virtual PLAYER_ID GetNearestPlayer(ENEMY_ID enemy_id) const = 0;
 virtual Vec3 GetPlayerPos(PLAYER_ID player_id) const = 0;
};

class Scene : public EnemyEnv {
 Player player_[2];
 std:::list<Enemy> enemies_;
public:
 void Update() { player_.Update(*this); enemy_.Update(*this); }
 virtual PLAYER_ID GetNearestPlayer() const { ... }
 virtual bool GetPlayerPos(PLAYER_ID player_id, Vec3* pos) const {
  // 実際には、ここで player_id.id の値チェックを行い、生存していなかったら false 返す
  *pos = player_[player_id.id_].GetPos(); return false;
 }
}

void Enemy::Update(EnemyEnv& env) {
 PLAYER_ID player_id = env.GetNearestPlayer(this.GetID());
 Vec3 pos = env.GetPlayerPos(player_id);
 // あとは pos に向かって自分の位置を調整
}

549:名前は開発中のものです。
09/03/04 09:09:02 m+X+Qg7j
>>546
> たとえばこのコード、複数の Star インスタンスの m_vx, m_vy を同時に読み書きしている。

その言い方は不正確だし、並列化の本質をわかっていない。

そのコード、そもそも元コードがすこしおかしいのだが、タスクシステムを使おうと使うまいと
Starオブジェクトの集合から任意の2体を取り出して、その振る舞いを書きたいとする。

foreach(var star1 , star2 in stars)
{
  star1.m_vx = star1.m_vx*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vx*Star2.m_m/(star1.m_m+Star2.m_m);
  star1.m_vy = star1.m_vy*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vy*Star2.m_m/(star1.m_m+Star2.m_m); }
 }

これは、次のようにかきかえる。

foreach(var star1 , star2 in stars)
{
  star1.m_vx_new = star1.m_vx*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vx*Star2.m_m/(star1.m_m+Star2.m_m);
  star1.m_vy_new = star1.m_vy*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vy*Star2.m_m/(star1.m_m+Star2.m_m);
 }
foreach(var star in stars)
{
  star1.m_vx = star1.m_vx_new;
  star1.m_vy = star1.m_vx_new;
}

これは、コリジョン判定とそれに対するアクションを切り離すときもそう。
これをきちんと切り離しておかないと並列化できない。

前スレでコリジョン判定は並列化できないとか言ってた馬鹿がいたけど、アクションを切り離さないから出来ない。

550:名前は開発中のものです。
09/03/04 09:11:17 mN9/jFMx
>>549
その指摘は正しいが、前スレ 510 を使うかどうかとまったく無関係だよね。
タスクとやらを使ったから並列化できるようになるわけじゃないし、並列化が
楽になるわけでさえない。

けっきょく、同じ労力を咲く必要がある。

551:名前は開発中のものです。
09/03/04 09:11:22 m+X+Qg7j
>>548
> いずれにせよハンドルクラス (整数値とインスタンスの対応付け) は用意したほうが

そんなものあえて作る意味があるか?boost::weak_ptrで済むだろ。

そもそも、548のソースは典型的なタスクシステムで記述するよりはるかに複雑なんだが、
あんたは、タスクシステムの否定派なのか肯定派なのか何なんだ?

552:名前は開発中のものです。
09/03/04 09:15:37 m+X+Qg7j
>>550
> タスクとやらを使ったから並列化できるようになるわけじゃないし、並列化が
> 楽になるわけでさえない。

それは違うね。タスクシステムの側に並列化する部分を担当してもらう。
タスクシステムを使う側は、それを利用すればいいだけ。

タスクシステムは底辺の馬鹿プログラマが書かなくとも、別の、もっと優秀なプログラマが書けばいい。

並列化効率とか、メモリcacheとか、シェーダーに対するタスクの分配とか、そういうのを考慮して効率の
いい並列化プログラムを書ける奴がな。

こうして、はじめてゲームの分業が成立するんだが。
あんたはちょっとはまともなプログラマに見えるが、大規模なゲーム開発に取り組んだことはないのか?

553:名前は開発中のものです。
09/03/04 09:17:40 m+X+Qg7j
>こうして、はじめてゲームの分業が成立するんだが。

脱字。「ゲーム開発における分業」の間違い。

いま読み返したら549は
>foreach(var star in stars)
>{
>  star1.m_vx = star1.m_vx_new;
>  star1.m_vy = star1.m_vx_new;
>}

ここ、左辺はstar1ではなくstarだ。ごめん。

554:名前は開発中のものです。
09/03/04 09:24:16 mN9/jFMx
>>551
> そもそも、548のソースは典型的なタスクシステムで記述するよりはるかに複雑なんだが、
以前から同じようなコード例書いてるんだけどな。前スレ 748 とか。

・コンポジションで良いじゃん
・規模が大きいプログラムだと、どのタイミングで何が呼ばれるか、変更されるかが
 分かることが重要。
 この例だと Enemy::Update 時には EnemyEnv 経由で Scene のメンバ関数が呼ばれる
 だけと確定する。Enemy::Draw みたいな処理があったときに、EnemyEnv const& 使うか
 別のクラスを用意するかは要検討(場合による)。

> そんなものあえて作る意味があるか?boost::weak_ptrで済むだろ。
スクリプトと連携するときに楽
boost::shared_ptr 使ってるとは限らない

別に weak_ptr 使える場合には、使えば良いと思うけど。

555:名前は開発中のものです。
09/03/04 09:25:22 mN9/jFMx
>>552
> タスクシステムの側に並列化する部分を担当してもらう。
名前がタスクシステムなだけで、前スレ 510 とも >>2 ともまったく違う設計・実装について
語ってるということで FA?

556:名前は開発中のものです。
09/03/04 09:26:54 m+X+Qg7j
結局、並列化の本質は>>549なんだ。もう少し抽象化して書けば、こう。

foreach(var star1 , star2 in stars)
{
star1の新しく情報を書き込む領域 ← star1とstar2相互計算によって得る。
}
foreach(var star in stars)
{
starの新しく情報を書き込んだ領域をcommitする。
}

で、これをタスクシステム側に並列化する部分を受け持ってもらう。
例えば>>546であれば、次のように書けば上のプログラム(>>549)と等価になる構文を用意する。

foreach_parallel (var star1 , star2 in stars)
{
  star1.m_vx = star1.m_vx*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vx*Star2.m_m/(star1.m_m+Star2.m_m);
  star1.m_vy = star1.m_vy*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vy*Star2.m_m/(star1.m_m+Star2.m_m);
}

このとき、左辺は、shadow(m_vx_new , m_vy_new ) に対してアクセスしていて、実際はforeachを抜けてから

foreach(var star in stars)
{
  star.m_vx = star1.m_vx_new;
  star.m_vy = star1.m_vx_new;
}

これが実行される。この仕組みをタスクシステム側に提供してもらう。これなら簡単に並列化できる。
ゲームで使うコリジョン判定などはたいていこのように並列化できる。

557:名前は開発中のものです。
09/03/04 09:31:11 m+X+Qg7j
>>555
> 名前がタスクシステムなだけで、前スレ 510 とも >>2 ともまったく違う設計・実装について
> 語ってるということで FA?

並列化とタスクシステムとは直交する概念だから、例えば>>2のタスクシステムを並列化することも出来るし
前スレ510のタスクシステムを並列化することも出来る。

どちらかと言えば、前スレ510のほうが>>2よりはある型のオブジェクト集合のうち任意の2体に対する
振る舞いが書けるのでその部分が並列化する価値が高いだけのこと。

そもそも、タスクに対して列挙したり、任意の型の2体を取り出したりする仕組みがどこにもない状態で
並列化なんて出来ないだろう。

俺がタスクシステムと呼んでいるのは、最低限、タスクシステムと名がつくなら、タスクに対する基底
クラスが存在して、それくらいの機能はあるんじゃねーの?と思うからだ。

558:名前は開発中のものです。
09/03/04 09:32:48 m+X+Qg7j
>>554
>> そんなものあえて作る意味があるか?boost::weak_ptrで済むだろ。
>スクリプトと連携するときに楽

ふむ、それならok。

559:510
09/03/04 11:11:12 5viq5cgM
>>556
shadowのアイデアもーらい。

transaction( hoge )//shadow初期化
{
  task2_parallel( hoge, hoge )
  {
    _hoge1.x += hoge2.x;//例えば、変数の頭にアンダーバーがついていたらshadowとか。
    //rollback;//ロールバックも出来るよ
  }
  task_parallel_end;
}
commit;//shadowコミット


あと、何か頭が統合ヘッダ?の人が来てたみたいだけど、
アップロードしたプログラムのヘッダファイルがごった煮だったのは
単にサンプルプログラムだったからだ。

560:510
09/03/04 11:23:44 5viq5cgM
shadowは書き込みさきより参照元の方が良いな。

561:名前は開発中のものです。
09/03/04 11:43:23 4u8TV8ZG
>>557
>俺がタスクシステムと呼んでいるのは、最低限、タスクシステムと名がつくなら、タスクに対する基底
>クラスが存在して、それくらいの機能はあるんじゃねーの?と思うからだ。

あー、やはりな。以下の内容は煽り抜きだから気を悪くしないでくれ

結局これはローカル用語の解釈を巡る相違でしかない
例えばウチの社内ではあんたの解釈を振りかざしても
意思疎通はうまくいかないだろう

ここでは色んな名無しが俺定義・俺解釈のローカル用語を
公衆の場に持ち出して一人相撲してる。あんたもそう

タスクシステムは権威不在の定義不明瞭なローカル用語だ
ということをまず再確認し、意思疎通を円滑にするために
それぞれがより確かな一般的な計算機用語に換言する努力を
すべきだ。でなければ、この実に不毛なすれ違いは無くならない

562:510
09/03/04 11:50:03 5viq5cgM
俺はソースコードアップしてその上で、これが俺のタスクシステムだって言ってるんだから良いんだよな。
皆各々ソースコードアップすればよいと思うよ。

563:名前は開発中のものです。
09/03/04 12:38:40 4u8TV8ZG
>>562
君のコードにはもっと相応しい個性的でカッコイイ名前を付けてあげなさい
手垢で汚れたタスクシステムなんて臭い名前では>>2と勘違いされてしまう
君のコードは泣いているぞ。不敏でならない

エターナル自動並列ブリザードデータベースでもなんでもいい
革新的であることを世の馬鹿共に知らしめる努力をすべきだ

564:並列さん ◆dPfetnROQg
09/03/04 15:46:36 m+X+Qg7j
>>559
なかなかいいね。

俺、そろそろコテハンにしとくわ。
ちなみに前スレ510に対して、C++としては素人の書き方だと指摘したのは俺な。

原則煽り専門だから、よろしく。

565:名前は開発中のものです。
09/03/04 18:27:15 NGMxgsfO
で?
ごった煮でどうやってヒット判定の並列化をするって?
値を後で更新すると折角優先順位をつけても古い値でヒット判定をすることになるからおすすめできない
並列化を狙うならオクツリーにして位置で切らないと多分無理

566:名前は開発中のものです。
09/03/04 18:45:20 4u8TV8ZG
演算器いっぱいのベクトルプロセッサにやらせる場合
移動フェーズと衝突検出フェーズと衝突応答フェーズに
分割してそれぞれのフェーズでいっせーのーせでやる

物理エンジンなんかもそう

もちろん空間領域分割もする

567:名前は開発中のものです。
09/03/04 18:51:51 NGMxgsfO
駄目
衝突は即座に補正かけないとそれだけでバグる
移動して衝突判定をすぐにしないと壁の向こうの敵と接触することになるぞ
しかし壁の当たりの優先順位はおそらく最後だろ?
でないと抜けるしね
しかしそうすると壁の向こうの敵と接触する
この辺をタスク縛りにするのは正直うまくない
やるならなにはなくともオクツリー

568:名前は開発中のものです。
09/03/04 19:02:10 sCGilUsr
なんで衝突判定中に衝突以外の判定を入れるの?馬鹿なの?

569:名前は開発中のものです。
09/03/04 19:02:19 TXLFx8i5
それでバグらないようにする手法も研究されてるだろうね
考えるならなにはなくともまずはサーベイ

570:名前は開発中のものです。
09/03/04 19:04:26 F+dIxfjw
並列化とタスクと絡めて話してるのは極一部で
しかもタスクを使えば並列化できると主張してる人はいない。
今の話は並列化に対応したタスクがもし作れるとするなら
どんなものになるかという感じ。並列化に関する部分は一般論をしてる。

つか並列化はそろそろ別スレ立てた方がいいんじゃね。
並列化が目的でタスクは手段に過ぎないんでしょ。

571:名前は開発中のものです。
09/03/04 19:08:59 4u8TV8ZG
>>567
上のは(Id Software系のエンジンでいうところの)エンティティ対エンティティ
のみに絞った話。相互作用。
壁抜けや床抜けに対するケア、これはブラシとの衝突(相互ではなく一方的作用)は
当然これは即座に補正される

572:名前は開発中のものです。
09/03/04 19:18:42 4u8TV8ZG
>>571
即座に、ではなく、衝突検出フェーズにおいて、ブラシとの作用が先に反映される
だな

573:並列さん ◆dPfetnROQg
09/03/04 19:25:13 m+X+Qg7j
>>567
> 衝突は即座に補正かけないとそれだけでバグる

俺物理エンジン書いたことあるが、そんなこたぁない。

どうせお前のプログラム、移動させて同時に衝突判定してぶつかってたら逆方向に移動とか
阿呆なことやってんだろ。本当、このスレは底辺プログラマ集まってんのな。

574:名前は開発中のものです。
09/03/04 19:26:40 4u8TV8ZG
>>572
ついでに、高速移動体に対するケアの話もここでは割愛している

あと、俺は強烈なアンチだ

575:並列さん ◆dPfetnROQg
09/03/04 19:30:44 m+X+Qg7j
ああ、ID:4u8TV8ZGは底辺プログラマではないな。俺的に除外しとく。

しかし、ID:NGMxgsfOは、底辺以下だな。俺的には、ゴミ扱い。

タスクシステムを使うと総合ヘッダが必要になるとか言ってる基地外と一緒。
ああ、ID:NGMxgsfOがその基地外なのか?

576:並列さん ◆dPfetnROQg
09/03/04 19:33:21 m+X+Qg7j
>>574
あんたは、強烈なアンチなのか。それは意外だ。

俺はじゃあ、強烈なタスク信者ってことでヨロシク!

まあ、あんたとは仲良くできそうだけどな。

577:名前は開発中のものです。
09/03/04 19:44:25 4u8TV8ZG
>>576
俺とあんたとの間に争点があるとすれば、それはタスクシステムという呼称だろうな
俺はあのローカル用語から発せられる腐敗臭が大嫌いなんだ

578:名前は開発中のものです。
09/03/04 19:50:16 sCGilUsr
タスク(自分の信じる、おそらく誰とも同じものを指していない)信者

強烈なアンチ(なにに対してなのか自分でも解っていない)
か。

579:並列さん ◆dPfetnROQg
09/03/04 20:28:42 m+X+Qg7j
>>577
ああ、それは同感。

まあ、俺のなかでは、タスクシステムは少なくともstd::listよりは少しはマシなことが
出来るように工夫してあんだろ、みたいな思い込みはある。

std::list以下のものなら、タスクシステムなんて大層な名前つけなくても黙って
std::list使っときゃいいわけで。

580:名前は開発中のものです。
09/03/04 23:21:38 m+yO0HqN
>>549
結局パフォーマンス向上しないだろコレ

581:名前は開発中のものです。
09/03/04 23:55:44 NGMxgsfO
全くしない(笑)
何を並列化したのかさっぱりわからん
あたりでやるとしたら全く関わることのない範囲を同時に・・・
ぐらいしかないけどな
こんなパラ単位で並列化なんて意味ねーよ

582:名前は開発中のものです。
09/03/05 00:22:53 eF6P+SnV
>>580
foreach の部分を OpenMP とかで並列処理できれば、まぁ多少は。

しかし、そもそも並列化するならゲームロジックが絡むところより、モーション計算
とかエフェクト(特にパーティクル)だろう。ゲームロジックは依存関係がキツいし、
仕様変更が頻繁に起こりうるからリスク大きすぎる。

もっとも PS2 のときから、技術力があるところは VU1 に持っていってたけどな。

583:名前は開発中のものです。
09/03/05 01:46:15 EYYtQjTl
ああくそ!
ID:NIkO1+LI祭に乗り遅れた!
書き込み規制が憎い

584:並列さん ◆dPfetnROQg
09/03/05 07:31:17 2NL1rK1f
>>580
するよ。

>>581
阿呆すぎて泣ける。どこの阿呆かと思ったら、
「衝突は即座に補正かけないとそれだけでバグる」とか言ってた阿呆か。
全然話にならんわ。

まともな物理エンジンのソース見たことないんだろうな。


585:名前は開発中のものです。
09/03/05 07:49:58 DNYGW2s8
でも実際動いたら補正かけないと壁の向こうの敵に当たる
間に壁がないかみて判定しなきゃならんときもある
この辺をタスク縛りにされるのは正直やりにくいにも程がある
ゲームやオブジェクトによってすり抜けがどうでもいいものもあるだけに一般化はできない
リングアウトだけ起こらないでは済まない場合は結構多い
べつに速度がとんでもない場合じゃなくても問題は起こる

586:並列さん ◆dPfetnROQg
09/03/05 08:24:43 2NL1rK1f
>>585
あんたは、ID:NGMxgsfOか?

それとも、ID:NGMxgsfO級の阿呆が何人もいるのか?
いい加減、コテハンにしてくれ。

まともな幾何的なconstraint solverを書いたことすらない奴が物理エンジンを語るなよ。

587:名前は開発中のものです。
09/03/05 09:31:58 eF6P+SnV
>>586
ここで物理エンジン語るのも、どうかと思うが。

588:名前は開発中のものです。
09/03/05 09:41:46 NLOFzCy8
>>586
何故 >>585 の問題が起こらないのか教えて欲しい

589:名前は開発中のものです。
09/03/05 09:52:09 W/Wu7C9w
>>585,588
タスク以外でも585の問題をどうやって解決しているのか知りたい。
結局両方の例が無いと比較できないし評価を下すこともできない。

590:名前は開発中のものです。
09/03/05 10:27:56 rvhMBE/z
壁との当り判定&補正処理をした後で
敵との当り判定を取れば良いだろ。

591:並列さん ◆dPfetnROQg
09/03/05 10:33:57 2NL1rK1f
>>588-589
何度でも言うが阿呆共はコテハンつれてくれ。

>>590
そんなことをするとコリジョン判定を並列化できない。

592:名前は開発中のものです。
09/03/05 10:56:14 rvhMBE/z
壁との当り判定&補正処理と、敵との当り判定を、それぞれ別々に並列化すればよいだろ。

parallel { 壁との当り判定&補正処理 }
parallel { 敵との当り判定 }

593:名前は開発中のものです。
09/03/05 11:00:40 eQbdbaUx
さすがに優先度の在る処理を並列化する馬鹿は居ないだろ。

594:並列さん ◆dPfetnROQg
09/03/05 11:53:25 2NL1rK1f
>>592
素人すぎて話にならん。なんだよ、壁と敵って。動くか動かないかでわけてんの?馬鹿じゃねーの。

595:名前は開発中のものです。
09/03/05 13:24:53 rvhMBE/z
動くか動かないとか、誰も言ってないのに。
壁=動かない、敵=動く、という固定観念でもおあり?

>>592 は、
あらかじめ、物理的に問題の無い状態に落ち着けてから、
あらためて、ゲーム進行上ひつような当り判定を行う。
ということ。



596:名前は開発中のものです。
09/03/05 13:26:57 rvhMBE/z
並列さんも結局あてにならないんだよなぁ・・・

597:並列さん ◆dPfetnROQg
09/03/05 13:50:52 2NL1rK1f
>>595
> 壁=動かない、敵=動く、という固定観念でもおあり?

この議論の大元となっているのは、>>155で、そこには

> 衝突解決には、たとえば「壁は動かない」「プレイヤーが壁に当たったら押し戻される」

と書いてあるから俺はその定義に従っただけなのだが。

この流れで、オレオレ定義の「壁」とか「敵」を持ち出すなら、言葉の定義ぐらい先に書いて欲しいんだが。

598:名前は開発中のものです。
09/03/05 14:02:23 TJw/foDe
あてになるかどうかというより基本的な部分で意志の疎通ができてないんじゃ。
共通認識を積み上げる作業をさぼったらコミュニケーション取れんよ。

そんな面倒なことは省略して結果を気にせずに出会い頭の辻切り対辻切り
みたいなやりとりを日常的にしてるのが2chでもあるけど。

599:名前は開発中のものです。
09/03/05 14:03:36 rvhMBE/z
どんだけ悔しかったのか知らないが、12日も前のレス持ち出して弁解ですか。
>>592の壁とか敵はオレオレ定義ではなく、>>585で出現しているそれ。
7つ上のレスも見れない池沼さんですか?
で、揚げ足取りは結構なんだけど、本文への反論は?

600:並列さん ◆dPfetnROQg
09/03/05 14:18:31 2NL1rK1f
>>599
> >>592の壁とか敵はオレオレ定義ではなく、>>585で出現しているそれ。

>>585に定義らしきことは書いてないじゃん。

> で、揚げ足取りは結構なんだけど、本文への反論は?

「壁」と「敵」についてきちんと定義を書いてくれ。話はそれからだ。


601:名前は開発中のものです。
09/03/05 14:45:45 eQbdbaUx
>>600
こいつは何を並列処理しようとしてるの?

602:名前は開発中のものです。
09/03/05 14:56:23 rvhMBE/z
(あ、また、
自分は7レス前の今朝の関係のあるレスも見れないのに、
他人には439レス前の12日前の無関係なレスを覚えていることを要求する並列さんが何か言ってるな)

>>600
ちょっともう、どうしたらよいの?国語やりなおせとしか言いようが無いのだが。。
>>585をよめば、
・壁とは、敵との当りを防ぐもの。
・敵とは、当たりをとる対象。
ということぐらい普通分かるだろ。
同時に、>>155が今件になんら関係ないことも分かるだろ。
結論から言うと、お前が一人で勘違いして勝手に煽ったりファビョったり一人相撲してただけだ。

603:名前は開発中のものです。
09/03/05 15:05:28 rvhMBE/z
文章が読めない奴ばかりだから、もう一度書き込むぞ。
>>585は、
衝突解決の途中でゲーム進行用の当たり判定を取ると、
ゲーム進行用の当たり判定がバグる、
と主張し、
それに対して俺は、
衝突解決が完了してからゲーム進行用の当たり判定を取ればよい、
と主張をしている。
予め言っておくが、衝突解決の優先順位の問題とは全く別の話。

604:並列さん ◆dPfetnROQg
09/03/05 15:17:15 2NL1rK1f
>>602
> ・壁とは、敵との当りを防ぐもの。
> ・敵とは、当たりをとる対象。
> ということぐらい普通分かるだろ。

それはわかるが、敵同士は重なっている状態が許容されるかどうかが>>585からはわからない。

もし許容されないなら、敵とか壁とか分けて考える必要はなく、どちらも対等な単なるオブジェクトだから
用語をわざわざ分ける必要がない。

それを >>592 のように処理を分けているというのは、あんたが勝手に敵同士の交差は許容されると
>>585 から解釈したとしか思えない。要するに>>585を拡大解釈しているのはあんただろ。

605:並列さん ◆dPfetnROQg
09/03/05 15:20:29 2NL1rK1f
>>603
> 衝突解決が完了してからゲーム進行用の当たり判定を取ればよい、

「ゲーム進行用の当たり判定」なんて、誰も話題にしてなくて
幾何的に重なりをもつ状態をいかに防ぎつつ処理を並列化するかしか
問題にしてないと思うんだが。

あんたは日本語が不自由以前に頭が不自由みたいなんで、
俺はあんたの相手はしないことにする。

606:名前は開発中のものです。
09/03/05 15:41:13 eQbdbaUx
まとめ
ID:2NL1rK1f が正しい。
ID:rvhMBE/z は間違っている。

なぜならここはタスクシステム(^^;)スレだから。
今は並列処理(笑)をどこまでシステムを組み込めるか議論する場なので、(たとえば整数のみで実数計算するにはどうするのが一番いいかのような)
ID:rvhMBE/zのように並列処理(笑)を使わない最も効率的で扱いやすい無駄の無い設計はスレ違い。
みんなそれが最善手段と知ってる上で議論している。
(まぁ>>604の敵同士の交差がどうこうというのは並列処理(笑)時の話であって交差しようがしまいが別に処理させているID:rvhMBE/zの設計に対するツッコミ(ボケ?)は意味不明だが)

607:名前は開発中のものです。
09/03/05 15:51:13 rvhMBE/z
本当に文章が読めないんだな。どうしようもない。
>>585にはプレイヤーという主語が抜けてるんだよ。
それぐらい行間読めよな。

だから、

>敵同士は重なっている状態が許容されるかどうか

は関係ない。

さかのぼってみれば、>>567が発端で、これは、

>演算器いっぱいのベクトルプロセッサにやらせる場合
>移動フェーズと衝突検出フェーズと衝突応答フェーズに
>分割してそれぞれのフェーズでいっせーのーせでやる

に対してレスされている。
内容は、それぞれのフェーズの呼び出し順が固定だから、
衝突検出フェーズ内で拾う値は必ず補正前の値になってしまうので、
壁の向こうの敵に接触してしまうなどの不具合が出る、というもの。
つまり、古典的タスクシステム固有の問題で、実は並列化は関係がない。

608:名前は開発中のものです。
09/03/05 16:09:30 Ld676bZP
速度がでてないのに壁の向こうの敵にあたるって
壁薄くね?

609:並列さん ◆dPfetnROQg
09/03/05 16:37:36 2NL1rK1f
>>608
実際は、紙みたいな壁も存在して、単なる衝突判定でやってしまうと
次フレームでは通り抜けてることもある。

だから、まともな物理エンジンでは、そういうオブジェクトに対しては、
連続体として扱うようになっているのだが、この取り扱いは結構難しい。

これに関しては最近、いろいろ論文が発表されるなど、比較的hotなテーマだ。

610:名前は開発中のものです。
09/03/05 18:58:37 /7Ei5x6Q
君らってRogue Spear 知らないの?
URLリンク(www.youtube.com)
そんな古臭い話が最近の論文なんて信じられないが

論文あるならソースだしてくれよ
多分読めないが


話変わって >>2 のタスクシステムのソースって
慣れてないと難しいね
拡張も慣れが必要
ちょっと自分流の方が早い気がしてきた

611:ID:EEKBitmg
09/03/05 19:12:57 CwokJJKn
このスレは直列番長の>>2をボコるスレだろ

612:ID:EEKBitmg
09/03/05 19:50:12 CwokJJKn
>>607
>つまり、古典的タスクシステム固有の問題で

なんでそうなるんだよ

613:ID:EEKBitmg
09/03/05 20:33:20 CwokJJKn
>>567はcontinuous collision detectionの話がしたいのか?

壁とか言ってるから違うだろ。隣部屋同士の誤判定の話くさいんだけど
空間分割された隣部屋同士なら『ドア(窓)を経由しない限り当たらない』
ドア(窓)を経由して侵入してくる疑いがある奴は移動フェーズの時点で
バレてんだから、移動フェーズが終わった時点で同期的処理かませれば
いいだけだろ。バカくせ

614:ID:EEKBitmg
09/03/05 20:40:46 CwokJJKn
ドア(窓)を経由しないでポータルの外を飛び出るかもとか
そんなクズシステムの話を持ち出す時点で駄目だ

タスクバカ=>>2信者=直列バカはやっぱりバカだ

615:名前は開発中のものです。
09/03/05 20:52:25 LpIMNDbi
銃弾は壁も突き抜けるぜ!

616:ID:EEKBitmg
09/03/05 20:54:34 CwokJJKn
そうか。>>567は銃弾の話をしてるのか。そうなのか?
そういや壁抜きでぶっ殺したら升使ってるとか言われたな
これだからnoobは困る

617:名前は開発中のものです。
09/03/05 21:49:16 /7Ei5x6Q
>>616
そういうツールありますから
あなたの方がnoobですよ

618:ID:EEKBitmg
09/03/05 21:51:32 CwokJJKn
あー、わかったぞ
並列君は銃弾も人も同じエンティティとして平等に扱うのか
マジで狂ってるな。どんだけ無駄なことすりゃ気が済むんだよ

619:名前は開発中のものです。
09/03/05 21:54:16 eQbdbaUx
>>618
だから効率を求めてるんじゃなくて、並列でどうやって対処するか議論してるんだってば

620:ID:EEKBitmg
09/03/05 21:57:28 CwokJJKn
>>619
は?誰だよお前。名無しに用はねーんだよ
効率を度外視した糞システムなんてみんな糞だ
お前らタスクバカはそうやって何でもツクールを目指すバカだから
並列処理も効率度外視とかウンコくさい話をしたがるんだろ

バカは氏ね。思想レベルで詰んでる

621:名前は開発中のものです。
09/03/05 22:03:48 okJUxEhs
≡≡≡≡≡≡.   
日 ▽ Ⅱ 日    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
≡≡≡≡≡≡   | IDさん今日は荒れてるなあ。
Ⅲ ∩ []    。〇 \____________
____ ∧∧゚______
     □ (    )
―― |   ヽ―――
      (____)~
━┳━   ━┳━   ━┳━
 ̄┻  ̄ ̄ ̄┻ ̄ ̄ ̄ ┻ ̄ ̄

622:ID:EEKBitmg
09/03/05 22:07:27 CwokJJKn
>>2が時代錯誤的な直列処理してっからブッ叩かれ、それを気にして
カッとなって、今度は極度に逆方向にふれて究極の並列コードを
目指すし始めた一部の先進次世代タスクバカ。>>510が代表だな

お前らタスクバカはさ、いい加減『ナニを作るのか』具体的に書けよ
何でもツクール目指すから『ナニを作るのか』書けません、だとか
ミラクルドリーマーみたいな事をほざくなよ

623:ID:EEKBitmg
09/03/05 22:19:07 CwokJJKn
>>621
俺、一応未成年だからお酒でそういう大人っぽいお店にいって
酩酊してウサ晴らすとかそういうことできないんだよね

これは芸風だから。昨日の並列君のお前らみんなバカ宣言
に対する報復である

624:ID:EEKBitmg
09/03/05 22:20:46 CwokJJKn
×お酒でそういう大人っぽいお店にいって酩酊して
○そういう大人っぽいお店にいってお酒で酩酊して

625:561
09/03/06 00:00:33 4YMxwutE
惚れた

626:名前は開発中のものです。
09/03/06 07:47:43 +3ldVLU9
>>622
そんなの無理だろ
タスク信者は動いてるプログラムにタスクウィルスを入れて
自分しかメンテできないようにして、自分の居場所を確保する
犬の小便的行動が本来の目的なんだから

627:ID:EEKBitmg
09/03/06 10:06:54 xP4A6jxv
いやー、昨日も面白い池沼がいて楽しかったわ
これだからこのスレはやめられないw

628:名前は開発中のものです。
09/03/06 13:01:17 FjTUznzx
銃弾の事は外野の俺がネタで言ってみただけだお…><

629:名前は開発中のものです。
09/03/06 14:33:08 YCUPWfAP
>>625
>427

>>626
そのくらいで地位を守れるなら失うよりはずっとマシだと真剣に思う、この不況。無職を叩く側から叩かれる側になるなんてやだもん。

630:名前は開発中のものです。
09/03/06 18:02:43 +3ldVLU9
ついにタスク信者自身が自分がクソを入れてることを認めたか

631:並列さん ◆dPfetnROQg
09/03/06 18:18:57 oTJ018DT
なんじゃそりゃ

632:名前は開発中のものです。
09/03/06 19:15:57 oLiuTYVi
>>622
タスクシステムが直列処理だとは思わんが。
どっちかっていうと、並列かと。

633:ID:EEKBitmg ◆HSP4mee/SU
09/03/06 23:46:34 aRzhzssB
>>627
ちょっとー。何なのおまえ誰なのおまえそこへ直れよおまえ!このイジメっ子ザザ虫!
平日の朝っぱら10時から暇そうに2ちゃんで厨のIDコテ使って何ふんぞり返ってるの?
イイ歳した大人が虎の威ならぬ厨の威を借りて一段高くなれるの?低くならないの?恥ずかしくない?

お前、今まで俺のことをHSPしか使えない基地外とか繰り返し叫んでたウンコ君でしょ?
気になるあの子が振り向いてくれないからって、あの子の目の前であの子の名札つきの
体操服を着てあの子のピアニカをチュアパチュパしゃぶりながらあの子のリコーダーに
ポークビッツを差し込んで教室で待ち構えて本人登場したらポークビッツが健気に膨張
圧迫されて抜けなくなって保健室に運ばれちゃう変態、超ド変態の子供時代を繰り返すの?

タスクバカのことをバカバカエンガチョって指差してきたけど流石にトリップ無しIDコテ厨を
騙るほど堕ちちゃいないだろうと信用してたのに買いかぶりだったみたい。もう大嫌い



634:並列さん ◆dPfetnROQg
09/03/06 23:55:00 oTJ018DT
>>633

>627は偽物だったのか・・。まあ、もとより俺には、本物が誰なのかよくわからないのだが。

>633を見る限り、なんか内容は支離滅裂だが、それでもあんたの日本語は他の奴よりは
断然読みやすいのでまだ許せる。

日本語の不自由な奴は、ゲームなんか作ってる場合じゃなくて、
もっと先に勉強すべきことがあるだろ、とか思うんだけどな。

635:ID:EEKBitmg ◆HSP4mee/SU
09/03/06 23:56:33 aRzhzssB
>>632
正確には並行処理じゃないの?

636:ID:EEKBitmg ◆HSP4mee/SU
09/03/06 23:59:28 aRzhzssB
寮に帰って2ちゃん見てワナワナプルプルしながら顔真っ赤に怒ってるから
支離滅裂なんだ!ちなみに昨日の書き込みには大変な矛盾があるので
訂正したかったが、>>627は俺らしいから彼にやらせてみようと思う

637:名前は開発中のものです。
09/03/07 00:46:01 ZZNOCL1s
>>635
優先順位がつくばあいもあるから正確には並列とは言えないだろうな。

638:並列さん ◆dPfetnROQg
09/03/07 00:55:26 cewi3IDn
>>637
その理屈はおかしい。
マルチスレッドのプログラミングでもセマフォで他のスレッド待ったり普通にするじゃん。

処理に順序があろうが無かろうが、並列なものは並列だ。

>>635が並行と言ってるのは、タスクを実行しているスレッド(プロセス)が通例、
1つだけだという理由からだろう。

639:名前は開発中のものです。
09/03/07 01:06:43 ZZNOCL1s
>処理に順序があろうが無かろうが、並列なものは並列だ。

並列さんの言ってることは意味が分からん。
処理に順序があれば、同時に実行できないのだから、並列でないだろ。
マルチスレッド≠並列。

煽り専門と名のってたが、嘘ばかりを書き込んでスレの機能を麻痺させる気?
名前変えたら?

640:並列さん ◆dPfetnROQg
09/03/07 01:17:59 cewi3IDn
>>639
> マルチスレッド≠並列

言葉の定義の問題だから、まあどうでもいいが、まあ普通は
マルチスレッドで実行されている以上、並列だし、あるスレッドが他のスレッドを
待っていてスループットが悪かろうが、並列なものは並列。

処理順序が厳密に定められていて、まったく逐次実行しか出来ないなら、
シングルスレッドと同じか、それ以下のパフォーマンスしか出ないけどな。

実際はゲームのタスクはそこまで処理順序に関しては制約が厳しくないので
いくらでも並列化できる。

641:名前は開発中のものです。
09/03/07 01:37:59 ZZNOCL1s
>マルチスレッドで実行されている以上、並列だし、
並列ではない。並列な部分もあるってだけ。
今は、「正確には並行処理じゃないの?」と問われていたわけで、
純粋に並列でないなら、正確には並列とは言えない。

だいたい、マルチスレッド云々は実装レベルでの話しだし。
タスクシステムがアーキテクチャ的に並列処理かどうかとは関係ない。

642:名前は開発中のものです。
09/03/07 01:42:09 ZZNOCL1s
コーヒー牛乳は牛乳か→YES
コーヒー牛乳は正確には牛乳か→NO

タスクシステムは並列的か?→YES
タスクシステムは正確には並列か?→NO

643:並列さん ◆dPfetnROQg
09/03/07 01:58:35 cewi3IDn
>>641
> 今は、「正確には並行処理じゃないの?」と問われていたわけで、
> 純粋に並列でないなら、正確には並列とは言えない。

この文章、意味不明だ。この文章、俺の解釈では↓こうだ。

 今は、「正確には並行処理じゃないの?」と問われている。

 スループットが1以下の並列実行なんて並列実行には含まれないので
 「正確には並列」とは言えないので、単なる「並行処理」と見なすべきだから、
 この「正確には並行処理じゃないの?」は正しい。

もし、そういう意味で書いているなら、俺は別に反対意見は唱えていない。

しかしそれなら>>637の書き方が悪い。
「優先順位がつくばあいもあるから正確には並列とは言えない」
だと、「優先順位がときどき偶発的について、そのときに限り並列性が落ちるから
並列とは言えない」と読める。だから俺は>>638のように反論した。
>>637は、正しくは
「優先順位がつく場合、並列化が難しく、並列度が極端に低下して、単一スレッドで実行
しているのと変わらないから、並列と呼ぶべきではない」と言うべきだっただろう。

しかし、俺はそうは思わない。
処理に優先順位がついていようが並列度を上げることは十分可能だからだ。

644:名前は開発中のものです。
09/03/07 02:03:29 LbywpZ2h
コーヒー牛乳は牛乳か→NO

645:名前は開発中のものです。
09/03/07 02:08:20 cMprZFoi
>>643
見苦しいです

646:並列さん ◆dPfetnROQg
09/03/07 02:10:52 cewi3IDn
>>645
見苦しいか?ふむ。

それなら、日本語の不自由そうな奴に絡むのはもうやめるわ。疲れるだけだ。

647:名前は開発中のものです。
09/03/07 02:23:08 ZZNOCL1s
>「優先順位がつくばあいもあるから正確には並列とは言えない」
>だと、「優先順位がときどき偶発的について、そのときに限り並列性が落ちるから
>並列とは言えない」と読める。

優先順位がときどき偶発的について、そのときに限り並列性が落ちることがあるから、
正確には並列とは言えない、であってるよ。
タスクシステムは正確には並列か?という命題に対して、
タスクに優先順位が付く場合を判例に挙げたまで。
処理に優先順位が付く場合、理論的にピュアな並列処理とは言えないからな。
完全な並列性とは、なにをどの順で実行しても構わない場合のみ。

648:名前は開発中のものです。
09/03/07 02:47:03 ZZNOCL1s
>それなら、日本語の不自由そうな奴に絡むのはもうやめるわ。疲れるだけだ。

自分がまともに日本語を扱えないくせに。
>>643とか、これ日本語ですか?

Q:タスクシステムは正確には並列か?
A:タスクの処理の優先順位をサポートするタスクシステムの場合には、
  タスクの処理に順序が出来るので、この場合は正確には並列とは言えない。

たったこれだけのことが何で分からないのか。

彼はこの問題を実装レベルの並列度の話に持ち込もうとするが、
そもそも、すべてのタスクを同時に実行できるハードが存在しない現状で、
実装レベルでの並列性をもってして、
「タスクシステムが正確には並列かどうか」を判断するのはナンセンス。
なぜならタスクシステム自体による制限よりも、
ハードウェアによる制限の方が先に現れるから。

649:並列さん ◆dPfetnROQg
09/03/07 02:49:57 cewi3IDn
>>647
> タスクシステムは正確には並列か?という命題に対して、

だが、あんたは、>>635を誤解している。

635は
> 正確には並行処理じゃないの?
と書いてあって、並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。

635を書いた本人は、「タスクシステムの構造ではスループットは1倍を絶対に超えない」ので
「並行処理と呼ぶほうが正しいのではないか」と言ってるわけ。

それなのにそれに対する受け答えとして、あんたは、>637で「スループットがN倍になっていなければ
pureな並列とは呼べないので並行ではない」と言っている。あんたが「並列度1.0(そんなもの現実的に
存在しないんだが)ではない並列」を「並列」とみなさないのはあんたの勝手だが、635に対する返答として
637は、おかしい。

650:並列さん ◆dPfetnROQg
09/03/07 02:52:08 cewi3IDn
>>648
> Q:タスクシステムは正確には並列か?
> A:タスクの処理の優先順位をサポートするタスクシステムの場合には、
>  タスクの処理に順序が出来るので、この場合は正確には並列とは言えない。
> たったこれだけのことが何で分からないのか。

Qが間違っている。誰もそんなQをしていない。詳しくは>>649


651:並列さん ◆dPfetnROQg
09/03/07 03:03:47 cewi3IDn
俺、もう寝る。

どうか、ID:EEKBitmg ◆HSP4mee/SU は、 ID:ZZNOCL1sの相手をしてやって欲しい。

ID:EEKBitmg ◆HSP4mee/SU の書く内容は、技術的に間違ってることも多々あるし、態度も生意気だけど、
日本語は意味明瞭だし、技術用語の使い方も比較的正しいので俺としてはかなり好感が持てる。

まあ、勉強熱心なんだろうな・・。

652:名前は開発中のものです。
09/03/07 10:03:00 8u/3vapK
なんか良く分からんが、お前らの並列と並行の定義はこれで合ってるの?
URLリンク(docs.sun.com)

653:名前は開発中のものです。
09/03/07 10:21:13 ZZNOCL1s
まず並行でないなら並列化できないわけで。
逆に、並列化不可能なら、並行でない。
というか、むしろ今まで並行の意で並列と言っていたのだが。

>スループットがN倍になっていなければ
>pureな並列とは呼べないので並行ではない
は正しい。

順序がある処理は並行ではない。

654:名前は開発中のものです。
09/03/07 10:22:50 ZZNOCL1s
URLリンク(journal.mycom.co.jp)
俺はこっちかな。

655:名前は開発中のものです。
09/03/07 10:43:57 8u/3vapK
>>652 >>654
同じだとおもうけどw

>順序がある処理は並行ではない。
いや、順序があっても並行は並行だろう。

ID:ZZNOCL1sは効率的でない並行/並列は役に立たないんだから、
仰々しく「並行」だの「並列」だの言うな、と主張しているように見えるなあ。
ID:ZZNOCL1sは実践的な話をしていて、
並列さんは字面通りの一般的な並列の定義に沿って話しているだけに見える。

というのは深夜の時点で並列さんも悟っているように見える。

656:名前は開発中のものです。
09/03/07 10:53:23 ZZNOCL1s
>並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。
>「タスクシステムの構造ではスループットは1倍を絶対に超えない」ので

並行化によって待ち時間が減ったりするので、スループットは向上するが、
1倍の基準点が不明。

657:並列さん ◆dPfetnROQg
09/03/07 10:57:38 cewi3IDn
>>653
> というか、むしろ今まで並行の意で並列と言っていたのだが。

あんたは、全然話にもならない。

専門用語を勝手に本来と違う意味で使っておいて
相手に日本語が読めないだの何だの言うのは本当、勘弁して欲しい。


658:名前は開発中のものです。
09/03/07 11:06:08 ZZNOCL1s
>いや、順序があっても並行は並行だろう。
順序がある処理は並行化できないよ。
例えば、処理Aと処理Bがあって、
BはAの後でないと実行不可だとする。
この場合、AとBを並行に処理することは出来ない。

659:名前は開発中のものです。
09/03/07 11:06:20 cMprZFoi
>>655
> ID:ZZNOCL1sは効率的でない並行/並列は役に立たないんだから、
そんな話じゃないでしょうに…

あと
>並列さん
>悟っている
なんか気持ち悪いです

660:並列さん ◆dPfetnROQg
09/03/07 11:13:36 cewi3IDn
>>658
> 順序がある処理は並行化できないよ。

それぞれのタスクを逐次処理しようが、それは並行処理って言うんだが。
ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。

本当、専門用語を勝手に意味を作り替えんなと言いたい。

>>659
気持ち悪いのはお前。お前はいらない子だから死んでくれ。

661:名前は開発中のものです。
09/03/07 11:17:08 ZZNOCL1s
>>657
お前も、並列処理は並行処理の部分集合だということをおさえられていなかっただろ。

>並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。
↑何に対する1倍かはしらないがな。

662:並列さん ◆dPfetnROQg
09/03/07 11:25:40 cewi3IDn
>>661
>>並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。
>↑何に対する1倍かはしらないがな。

そこが読めてないのお前だけだろう。

「concurrentな処理は、Nコアであっても、単一コアで実行したときの1倍以上のスループットが出ない」の意味。

663:並列さん ◆dPfetnROQg
09/03/07 11:31:14 cewi3IDn
>>661
> お前も、並列処理は並行処理の部分集合だということをおさえられていなかっただろ。

どこをどうやればそう読めるのか俺は知りたい。

並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が
単一か複数かの差のみ。そんなことは誰でもわかっている。

その用語を勝手に違う意味に使ってたのはあんただろ。
俺には、頭がおかしいとしか思えない。

その頭のおかしいあんたを唯一擁護しているのは ID:cMprZFoi だけ。

こいつは、あんたが書き込みした直後にしか出てこない。どうせこれもあんただろ。

664:名前は開発中のものです。
09/03/07 11:36:14 92TsYx3X
カプコンのMTフレームワークみたいなマルチコアでのパフォーマンスに特化した設計の
フレームワークなら並列云々の話になると思うが…

あれもタスク進化系の一種なのか?ちょっとタスクって守備範囲広すぎ。

あれはコア数がパフォーマンスに直結する造りだね。
順序の依存性のある処理と無い処理をグループ分けして、並列で問題ないケースは複数コアで同時計算。
順序の依存性がある処理との同期スケジューリングをフレームワークが管理って感じで。

ゲーム中には依存性のある処理と無い処理があるから、まぁ複数コアを有効に使おうと思うと
こんな感じな設計に行き着くんだろうね。

665:並列さん ◆dPfetnROQg
09/03/07 11:40:55 cewi3IDn
ID:EEKBitmg ◆HSP4mee/SUはまだ良かった。

HSP使いのプログラミング経験の浅い世間知らずのクルクルパーだが、
そのわりには用語の使い方はまともだし、勉強もよくしていると思っていた。

俺は専門用語を勝手に俺解釈の用語とすり替えて話す奴とは
面倒くさいので話をしたくない。

このスレはどうせみんな常駐してるようなもんなんだから、みんなコテハン
にすればいい。それそれぞれが嫌な奴をNGリストに入れておけばいいと思うんだがな。

そんなわけで ID:ZZNOCL1sは俺をNGリストに入れておいてくれ。
お前と話をするのは疲れる。

666:名前は開発中のものです。
09/03/07 11:49:53 ZZNOCL1s
>それぞれのタスクを逐次処理しようが、それは並行処理って言うんだが。
いや、単純に考えて、処理に依存関係があると、並行処理できないだろ。
実際OSなんかは各スレッド間に依存関係が無いものと見なして並行処理しているわけで。

667:名前は開発中のものです。
09/03/07 11:52:30 8u/3vapK
>>658
それが実質直列だってことは分かるんだけど。

とりあえず、俺が何を考えているのかと言うと、
動き方が実質直列であっても、それぞれ別のスタック領域を持ってる点が違うだろ?
別々のコンテキストを持っている。
その辺を区別するのに「実行効率ゼロの並行」も俺は並行と呼んでただの直列と区別していた。

要するに俺はコアが何個でそのPCがどこ指してるのって部分だけで並行か並列かって言ってた。

んで、一般的定義はどうなのと思ってググった先を見てみると、
コンテキストがどうのというのは論点じゃ無いような気がしてきた。

もうちょい調べてみるわ。

668:並列さん ◆dPfetnROQg
09/03/07 12:05:02 cewi3IDn
>>666
> いや、単純に考えて、処理に依存関係があると、並行処理できないだろ。

あんたの「並行処理」について持ってる勝手なイメージは知らんが、
優先順位がついていてそれぞれのタスクを逐次的に処理していく場合も
(そのタスクが終了後に消滅しないなら)「並行処理」と呼ぶ。

URLリンク(en.wikipedia.org)

> Concurrent programs can be executed sequentially on a single processor
> by interleaving the execution steps of each computational process

「並行プログラムは、それぞれの計算プロセスを実行箇所をインターリーブしながら
シングルプロセッサによって逐次的に実行される」

計算プロセス間の依存性とか、効率とかそんなことは並行処理の定義とは
何ら関係がない。

・実行箇所をインターリーブしながら(タスクからリターンしてもタスクは
通例存在していて)

・シングルプロセッサによって(ある瞬間を見たときにつねにひとつの
プロセッサしかタスクを実行していない)

この二つを満たしているなら、並行処理。

669:名前は開発中のものです。
09/03/07 12:09:24 ZZNOCL1s
>ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。
どこにそんな定義があるんだ?

670:並列さん ◆dPfetnROQg
09/03/07 12:10:23 cewi3IDn
>>667
何を言いたいのかよくわからないが、>>668の説明は理解できる?

671:並列さん ◆dPfetnROQg
09/03/07 12:11:16 cewi3IDn
>>669
>>668

672:名前は開発中のものです。
09/03/07 12:26:24 ZZNOCL1s
並行計算
URLリンク(ja.wikipedia.org)
>タスク群は1つのプロセッサ上で動作する場合、複数プロセッサ上で動作する場合、
>ネットワークを介した分散システムで動作する場合が考えられる。

663 名前:並列さん ◆dPfetnROQg [sage] 投稿日:2009/03/07(土) 11:31:14 ID:cewi3IDn
 並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が
 単一か複数かの差のみ。そんなことは誰でもわかっている。

Wikipediaの人は分かってないみたいですよ。
注意してきたらどうなんですかね。

673:名前は開発中のものです。
09/03/07 12:42:43 ZZNOCL1s
>>668
>計算プロセス間の依存性とか、効率とかそんなことは並行処理の定義とは
>何ら関係がない。

だから、並行処理では処理の依存性は考えない=依存性は扱わない=依存性は扱えない。
扱わないのは扱えないから扱わないの。
実際のOSなんかでも、スレッド間の処理の依存性は扱わない。というか扱えない。
各スレッドを並行と見なして実行する。
処理に依存性がある場合はプログラマが自前で同期オブジェクトとかつかってシコシコやる。

一方、タスクシステムでは処理の依存を優先順位という形で明示的に扱うのが一般的。
各タスクを並行とみなしているわけではない。

674:名前は開発中のものです。
09/03/07 12:44:25 92TsYx3X
いつのまにか
並行・並列処理の単語の定義のスレになってるな。

自然言語の単語の定義なんてどこまでいっても曖昧なのに…
自分の言う「臭い」と他人の言う「臭い」が同じという保障なんて誰にも出来んよ

確かなのは人工言語で書かれたソースのみ。

675:並列さん ◆dPfetnROQg
09/03/07 12:44:25 cewi3IDn
>>672
ざっと見たけど日本語のwikipediaのほうは、ひどいな。

これとか
> 並行性のための構造を備えた最も一般的な言語はJavaとC#である。
なんでだよと突っ込みを入れたくなる。

これ書いてる奴は、thread生成が出来るからJavaとC#を入れてるんだろうけどひどいにもほどがある。
C#のyieldによるcontinuationは確かに並行スレッドなんだが、それならJavaを含めるのはおかしい。

日本語のwikipediaの「並行性」の項目もひどいな。なんだよこれ。

ちょっとwikipedia行って暴れてくるわ。

676:並列さん ◆dPfetnROQg
09/03/07 12:47:15 cewi3IDn
>>674
> 自然言語の単語の定義なんてどこまでいっても曖昧なのに…

専門用語は、限りなくstrictに定義されてるべき。

そうじゃなきゃ論文とか意味のないものになってしまう。

677:名前は開発中のものです。
09/03/07 12:50:58 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
09/03/07 12:52:11 cewi3IDn
>>673
> 実際のOSなんかでも、スレッド間の処理の依存性は扱わない。というか扱えない。

それはダウト。

実際のOSにはプロセスのpriorityがあって、それに従ってスケジューリングされる。
割り込みなんか特にそう。あるプロセスの実行が他プロセスの実行より優先されることは多々ある。

キーボードイベントが発生したら、その処理が優先される。そこには明確な実行順序がある。

そんな機能すらない、もっとprimitiveなOSの話をしているなら、まあそれはそれでいいけど
「実際のOS」と書かれるとWindowsやらLinuxやらを想定しているのかと俺は思ってしまう。

679:名前は開発中のものです。
09/03/07 13:02:13 ZZNOCL1s
>>675
お前がひどいという日本語版の、
「並行性のための構造を備えた最も一般的な言語はJavaとC#である。」
は英語版のページにある
「Today, the most commonly used programming languages that
 have specific constructs for concurrency are Java and C#. 」
の訳なわけだが。
そしてその英語版のページを引用して、
「これが並行処理の定義だ!」と言っていたのがお前なのだが。
さらにその引用も自分の都合のいいところだけを引用するという正確の悪さ。
「~又は~」と書いてあるのに、「又は」以降をバッサリカット。

680:名前は開発中のものです。
09/03/07 13:05:44 ZZNOCL1s
>>678
プロセスのプライオリティーは必ずしも守られるわけではない。
あれは、CPUリソースに対する優先順位であって、処理に対する依存関係を表すものではない。
現にマルチプロセス環境だと、プライオリティーの高いものと低いものが同時に実行される。

681:並列さん ◆dPfetnROQg
09/03/07 13:05:45 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:名前は開発中のものです。
09/03/07 13:09:34 Fbn5zOAB
並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
並列(parallel)は、複数の計算を物理的に同時に実行できることを表す。
んじゃないの?

独立した概念(関連はあるけど)なんだから、>>660
>ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。
はおかしいと思う。
concurrentに作っておけば、parallelに実行しやすいんだし。

683:並列さん ◆dPfetnROQg
09/03/07 13:17:17 cewi3IDn
>>680
うむ、それは正しい。

>>682
ああ、そうか。そういう意味では、660はおかしいし、書き方が悪いな。
これについては反省。すまんかった。> ID:ZZNOCL1s


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch