並行とは?

並行計算(へいこうけいさん、Concurrent Computing)とは、複数の相互作用を及ぼす計算タスクの(同時)並行的実行を指す。並行コンピューティングとも呼ぶ。個々のタスクは通常別々のプログラムとして実装されるか、1つのプログラムから複数のプロセスやスレッドを生成する形で実装される。そのようなプログラムを作成することを並行プログラミングと呼ぶ。タスク群は1つのプロセッサ上で動作する場合、複数プロセッサ上で動作する場合、ネットワークを介した分散システムで動作する場合が考えられる。並行コンピューティングは並列コンピューティングと近い概念だが、タスク間の相互作用を重視する点が後者とは異なる。並行計算システムの設計における主要な課題は、タスク間の相互作用や通信の順序付けとタスク間で共有するリソースへのアクセスである。並行計算のパイオニアとしては、エドガー・ダイクストラ、Per Brinch Hansen、アントニー・ホーアが挙げられる。
並行計算システムには、並行コンポーネント間の通信をプログラマから隠蔽するものもある( Future という言語機能など)。一方、明示的に通信を行わなければならないものもある。明示的通信は次の2種類に分類される:
並行コンポーネント群は共有メモリの内容を更新することで通信を行う(JavaやC#)。この並行プログラミング方式では、何らかのロックを必要とする(ミューテックス、セマフォ、モニタなど)。
並行コンポーネント群はメッセージを交換することで通信を行う(Erlang、Occam)。メッセージの交換は非同期的に行われるか(「送って祈る」とも言われるが、一般にメッセージ受信が確認できないときはメッセージを再送する)、送信側がメッセージの受信を確認するまでブロック状態となって待つランデブー方式を使用する。メッセージパッシングによる並行性は共有メモリによる並行性よりも直感的に理解しやすい。また、一般にメッセージパッシングの方が頑健だが低速である。メッセージパッシングシステムを分析し理解するための数学的理論が数々存在する。例えば、アクターモデルや各種プロセス代数である。
並行計算の主要な課題の1つは、並行プロセスが互いの邪魔をしないようにすることである。共有リソース balance で表される預金口座からの引き落としを行う以下の擬似コードを例として掲げる:
balance=500 として、2つの並行プロセスがそれぞれ withdraw(300) と withdraw(350) という引き落としを行ったとする。両方の処理の 2行目が両方の 3行目の処理の前に行われると、balance > withdrawal はどちらも true となり、両方の処理で減算に進む。しかし、そうすると総引き落とし額は口座残高を超えてしまう。このような共有リソースにからむ問題は並行性制御を必要とするか、Lock-freeとWait-freeアルゴリズムのようなノンブロッキング・アルゴリズムを必要とする。
並行システムは共有リソース(通信媒体を含む)に依存しているため、並行計算は一般にリソースへのアクセスに関する何らかの調停回路を実装する必要がある。これにより無制限の非決定性問題が生じる可能性が出てくるが、調停回路を注意深く設計すればその可能性を限りなくゼロに近づけることができる。
残念なことに、リソース上の衝突問題への解決策は数々あるが、それら解決策は複数のリソースが関わってきたときに、新たな並行性問題(デッドロックなど)を生じる。
並行プログラミング言語は、並行性のための構造を備えたプログラミング言語である。具体的には、マルチスレッド、分散コンピューティング、メッセージパッシング、共有リソース(共有メモリ)、Futureなどである。
現在、並行性のための構造を備えた最も一般的な言語はJavaとC#である。これらの言語は共有メモリ型並行性モデルを基本とし、モニタによるロックを備えている(メッセージパッシングモデルを共有メモリモデル上に構築することも可能)。メッセージパッシング型並行性モデルの言語としては、Erlang が最もよく使われている。
研究目的で開発された並行プログラミング言語(Pictなど)は実用を目的としたものより多い。しかし、Erlang、Limbo、Occam といった言語は過去20年間、何度も商用に使われてきた実績がある。並行プログラミング言語として重要と思われるものを以下に列挙する:
Afnix ? データへの並行アクセスは自動的に保護される(従来は Aleph と呼ばれていたが、Alef とは無関係)。
Alef ? スレッドとメッセージパッシングを備えた言語。初期の Plan 9 のシステム記述に使われた言語。
KL1 ? Guarded Horn Clausesに基づく論理型言語。第五世代コンピュータプロジェクトの研究成果。KLICなどの実装が利用可能。
他の多くの言語でもライブラリの形で並行性をサポートしている(機能的にも上記リストに挙げたものと遜色ない)。

[ 59] 並行計算 - Wikipedia
[引用サイト]  http://ja.wikipedia.org/wiki/%E4%B8%A6%E8%A1%8C%E8%A8%88%E7%AE%97

並行性(Concurrency)とは、計算機科学において、時間的にオーバーラップして実行される計算を伴うシステムの属性であり、そのような計算ではリソースを共有することがある。エドガー・ダイクストラによれば、「2つ以上の実行の流れが同時並行して行われるとき、並行性が生まれる」としている。共有リソースの並行使用により様々な問題が発生する。共有リソースに関わる競合状態は予測不能なシステムの状態を発生させる。相互排他の導入によって競合状態は阻止できるが、デッドロックやリソーススタベーションといった問題が新たに発生する。並行システムの設計では、応答時間を最小化し、スループットを最大化するため、データ交換、メモリ割り当て、実行スケジューリングなどに関わる技術の信頼性を追及する。
並行性理論は、1960年代にカール・アダム・ペトリが独創的なペトリネットの研究を行って以来、理論計算機科学の主要な研究領域となっている。以来、並行システムを理解するための様々な理論モデル、論理、ツールが開発されてきた。
モデル開発と並行システムの理解のための形式手法には様々なものが開発されてきた。以下に主なものを列挙する。
これら並行性モデルの一部は、第一に推論と仕様記述を目的としている。一方、他のモデルは開発サイクル全体(並行システムの設計、実装、証明、テスト、シミュレーション)をサポートすることを目的としている。
様々な時相論理が並行システムの理解を助けるために使われる。特に線形時相論理や計算木論理は、並行システムの各時点の状態を確認するのに使用可能である。Action Computational Tree Logic や Hennesy-Miller Logic、レスリー・ランポートのTemporal Logic of Actionsなどは、「アクション(状態変化)」の並びを確認することができる。これら論理の主な利用法は、並行システムの仕様を記述することである。
並行プログラミングは、並行システムを実装するのに使われるプログラミング言語とアルゴリズムから構成される。一般に並行プログラミングは並列プログラミングよりも範囲が広いとされ、様々な形態の通信および相互作用に関係する。一方、一般の並列システムは予め決められた整った構成の通信パターンを備えている。並行プログラミングの基本目標には「正当性」、「性能」、「堅牢性」が含まれる。オペレーティングシステムのような並行システムは、半永久的に動作することが求められている。一部の並行システムは透過的並行性を持つよう実装されている。その場合、並行動作する計算主体群は共有リソースを使用するものの、プログラマからはその実装は隠されている。
並行システムは共有リソースを使うため、共有リソースへのアクセスを制御するための一種の調停を行うもの(通常、ハードウェア)を実装する必要がある。これにより無制限の非決定性が導入され、並行システムの正当性と性能に影響する。

[ 60] 並行性 - Wikipedia
[引用サイト]  http://ja.wikipedia.org/wiki/%E4%B8%A6%E8%A1%8C%E6%80%A7

またまた冬がやってきます!お店には9月より少しずつ新商品が増え始めます異常に暑い夏もピークを過ぎ、9月に入るといよいよスノーボード商戦が動き出します。そこで今回は、これからニューギアを買うにあたって皆さんに基礎知識として知っておいて欲しい、スノーボードグッズの海外ブランドにおける「正規商品と並行輸入商品の違い」について紹介したいと思います。「メーカー保証という安心」が付いた正規商品と、「とにかく安さが魅力」の並行輸入商品。両方を比べた時、どちらにもメリット・デメリットはありますので、事前の知識として知ることでより自分にあった道具、購入方法を選択して欲しいと思います。ではさっそく始めましょう!スノーボード「正規商品」「並行輸入商品」とは?BURTONの保証書。正規商品のボード、バインディング、ブーツには必ず付属されます「正規商品」「並行輸入商品」は海外ブランドを日本に輸入し販売する際に使われる言葉で、その違いは商品の輸入ルートの違いにあります。まず「正規商品」とは、その名前が示すとおり日本の正規代理店を経由する「正規ルート」を通ってきた商品のことを言い、「正規商品」にはそれを示すシリアル番号やフォログラム(シール)、メーカー保証書などが付いています。次に「並行輸入商品」ですが、これは今説明した「正規商品」以外の商品のことを言います。これらは、例えば販売店のバイヤーが海外のショップで直接買い付けをして日本に持ち込むなど、「正規ルート」を通らずに日本に入ってきている商品のことです。「並行=ニセモノ」というわけではないので、品質に問題があるわけではありませんが、仕入先が特定できないようにシリアル番号が消されていたり、統一の番号に変更してあったりします。また当然保証書は付いていません。2つの違いは「安心感」と「価格」にあり!ボードには1本1本シリアル番号が付いています。では、それぞれのメリット・デメリットを見て行きましょう。■正規商品「正規商品」のメリットは、なんと言っても製品に対する「安心感」です。シリアルナンバーなどによりしっかりと管理された商品には、「メーカー保証書」が付属されるので、製品に問題があればすぐに販売店やメーカーが対応をしてくれます。家電製品に保証書が入っているのと同じ感覚というとわかりやすいでしょうか。デメリットは、並行商品と比べると、販売価格が高いことです。■並行輸入商品「並行輸入商品」のメリットは、正規商品よりも格段に安い価格にあります。日本での販売価格をコントロールする正規代理店の影響を受けないので、自由な価格設定ができるのです。大手インターネットショップや大型バーゲン・ディスカウントショップなどで格安販売されているのは、ほとんどが並行商品になります。またデメリットはというと、正規代理店を通さないので当然メーカー保証が受けられません。並行商品を扱うお店によっては独自の保証を設けているところもありますが、よく検討する必要があると思います。また中には判別のつかないB級品があったりもしますので、そういったリスクも理解した上で購入する必要があります。・安心感 → 正規品 > 並行品・販売価格→ 並行品 > 正規品>>「正規」と「並行」どちらが得か?>>

[ 61] 「正規」と「並行」の違いを知っておこう! - [スノーボード]All About
[引用サイト]  http://allabout.co.jp/sports/snowboard/closeup/CU20070823A/index.htm?FM=rss



お気に入り



  • track feed
    • seo