無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

中の人の徒然草258

こんにちわ♪インドリです♪時間が経つのは早いもので、つい最近まで蝉が鳴いていて夏ムードだったのに、日が暮れるのが早くなり、夜になると秋の音が聞こえるようになってきました。鈴虫とかの鳴き声はムードがあっていいですよね♪夏に冷房をカけて涼しく読書するのも良いものですが、夜に鈴虫の声を聞きながら読書するのもまた良いものです♪
私は夏の情熱的な雰囲気が大好きなのですが、秋の物悲しい雰囲気もまた好きです。そろそろ秋の兆しが見られるようになってきましたので、皆様も出勤時や帰宅時にちょっと気を緩めて秋を探してみては如何でしょうか?きっといい気分になれると思います。
突然ですが、最近のマイブームは並列処理です♪並列処理って奥が深いですよね♪マルチスレッドプログラミングは業務で沢山してきましたが、それでも並列の真髄はまだまだ分かりません。これからはマルチコアCPUが当たり前の時代になりますので、マルチスレッドを慣れていない人はマルチスレッドプログラミングを、マルチスレッドをしてきた人はより抽象的な並列様技術(TBBなど)を学習すると良いかと思います。
並列処理って改めて考えると、我々人間が普通にしている事であり、世界で普通に起きている現象なんですよね・・・それにも関わらず案外並列処理は難しいです。ちょっとした事でバグが発生しますし、デバッグもこれまた難しいし、オブジェクト指向設計するのが難しいし・・・色々な困難がそこに待ち受けています。
でも上手に並列処理を行えばパフォーマンスが大幅にUPします♪この快感が癖になりますので、面倒くさがらずに挑戦する事をお勧めします♪みんなでパラレルをエンジョイしよう♪
別窓 | 日記 | コメント:5 | トラックバック:0 | ∧top | under∨
| 無差別に技術をついばむ鳥 | 書籍をつつく117−C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス。実践的金言集。>>

この記事のコメント

初めて投稿する。
並列処理を推奨していますが、危険度を考慮してますが、
パラレル処理(マルチスレッド)が持つ難しさをキチンと明記しないと、文意が通じない。
業務ロジックは、同期処理が多く、手続き型処理が適している場面が多々ある。
それに対して、パラレル処理を施そうとすると、混乱を招く。
場面に適した道具を提唱できるのが技術者だと考えるのだが。
パラレルを楽しんでいるのだから、苦労する点は熟知していると思う。
特に、変数等が広域化するので、排他処理による遅延をどう克服しているかが知りたい。
2009-09-04 Fri 10:17 | URL | AlphaBeta #-[ 内容変更]
コメント有難う。

>特に、変数等が広域化するので、排他処理による遅延をどう克服しているかが知りたい。

質問の件ですが、並列化に於けるオーバーヘッドは確かに存在します。
それ故、マルチコアであっても性能は2倍にならず、良くて1.8ぐらいの性能となり、最悪の場合は悪化します。
その件についてですが、それについてはどこを並列化するのかを見極める事が肝要です。
大量のデータを処理する部分か機能を並列化するのが大体のところです。
並列化プログラミングの記事を執筆する予定がありますので、詳しい情報は暫しお待ちください。
なにはともあれ、そういった設計部分を楽しむのも良いかと思います。
並列化を一緒に楽しもう♪
2009-09-04 Fri 12:35 | URL | インドリ #-[ 内容変更]
説明が足りないと思いましたので、先ほどのコメントを補足します。
先ほどのコメントは、並列化する事によるオーバーヘッドは絶対に生じますので、
パフォーマンスをUPさせる方法は、アルゴリズムを工夫しようという事です。
こういった問題は設計面からのアプローチが大事なのです。
あと、データの粒度の問題等のアルゴリズム以外(設計面以外)の問題もありますが、
こういった問題は今のところは実際に試すしかないと思います。
どれだけ技術が発達しても実践は大事だよね。
2009-09-04 Fri 12:55 | URL | インドリ #-[ 内容変更]
回答、ありがとう。
事務業務アプリ開発に、並列処理を持ち込む事に疑問を呈したのだが。

業務仕様上、並列処理が必要になる場面は殆どない。大量更新などはDB上の処理になるので尚更。
並列処理を駆使するには、スレッドに関する知識か必要になる。
事務業務アプリ開発者の多くは、テクニカルスキルは持ち合わせていないし、必要性がない。
事務業務アプリは新テクノロジーよりも確実テクノロジーで安定している方を望んでいる。
事務業務アプリ開発者にとっては不満があるかも知れないが、一時代遅れた技術で開発するのがビジネスでもある。
その事情を汲んで、Blogを書いて貰わないと、現状否定する開発者で出かねる。
2009-09-04 Fri 15:10 | URL | AlphaBeta #-[ 内容変更]
AlphaBeta さん
現状まではそれも一理ありましたが、マルチコア時代にそういう発想は危険ですよ。
コメントを読むに他の方はマルチスレッドが苦手なようですが、
AlphaBeta さんは分かっておられるようなので、こっそり学習しちゃいましょう。
マルチコア時代にもう突入していますので、並列プログラミングは必須スキルになると思います。
その時、出来る人と出来ない人の差はかなり大きくなります。
その時に備えて一緒に学習しましょう♪
2009-09-04 Fri 15:16 | URL | インドリ #-[ 内容変更]
∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |