タグ

parallelに関するterurouのブックマーク (10)

  • neue cc - ForEachAsync - 非同期の列挙の方法 Part2

    Part2って、Part1はあったのかというと、うーん、非同期時代のLINQ、かな……?さて、今回はForEachがテーマです。といってもそれってSelect+WhenAllでしょ!「Selectは非同期時代のForEach」って言ってたじゃない、というと、はい、言ってました。まだ他に言うことあるの?というと、例えば以下のシチュエーション。 var httpClient = new HttpClient(); var tasks = Enumerable.Range(1, 100000) .Select(async x => { var str = await httpClient.GetStringAsync("http://hogehoge?q=" + x); Console.WriteLine(str); }); await Task.WhenAll(tasks); 別に動きはします

  • マルチコア時代のプログラマは関数脳になろう〜Java8のススメ〜 - Tech-Sketch

    CPUのクロックアップに限界が訪れ、マルチコア化することで処理性能向上を目指す時代になりました。これからのプログラマには、マルチコアで処理性能が向上するプログラム=マルチスレッドで並列処理が可能なプログラムを書く能力が必要になります。今回は「関数型」でプログラムを書くことによって、いとも簡単に並列化ができることを実例を元に解説します。 関数型プログラミングと並列処理 「関数型でプログラムを書くことで簡単に並列化できる」と書きましたが、そもそもここで言う「関数」とは何なのでしょうか? 関数型プログラミングの特徴 関数型プログラミングの「関数」を理解するためには、数学における「関数」を想像するとわかりやすいでしょう。 例えば三角関数を用いた y=cos(x) という式を考えてみます。この式に入力値 x=0 を与えた場合、いつでも必ず結果は y=1 になります。x= π/3 の場合は y =

  • .NET最先端技術によるハイパフォーマンスウェブアプリケーション

    Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法モノビット エンジン

    .NET最先端技術によるハイパフォーマンスウェブアプリケーション
    terurou
    terurou 2013/06/09
    非同期回りはもうF# で書いた方がいいんじゃないか感がある。しかしすごいなぁ
  • MSDN マガジン: 並列コンピューティング - SynchronizationContext こそすべて

    AsyncOperationManager と AsyncOperation .NET Framework の AsyncOperationManager クラスと AsyncOperation クラスは、SynchronizationContext を抽象化する軽量のラッパーです。AsyncOperationManager クラスは、AsyncOperation の初回作成時に現在の SynchronizationContext をキャプチャし、現在の SynchronizationContext が null であれば既定の SynchronizationContext に置き換えます。AsyncOperation クラスは、キャプチャした SynchronizationContext にデリゲートを非同期にポストします。 ほとんどのイベントベースの非同期コンポーネントは、その実装内で

    MSDN マガジン: 並列コンピューティング - SynchronizationContext こそすべて
    terurou
    terurou 2013/06/07
    やばい、この記事の存在を認識してなかった
  • TPL入門 - インデックス | xin9le note

    TPL入門 - インデックス posted by xin9le on TPL No comments .NET Framework 4.0で搭載されたタスク並列ライブラリ (TPL : Task Parallel Library) について、MSDNの記事に沿いながら、噛み砕いて書いていければと思います。 はじめに データの並列化 単純なループ 挙動の観察 ループの中断/停止 スレッドローカル変数 例外処理 ループの取り消し Leave a Reply

  • .NET開発者のための非同期入門 フリーズしないアプリケーションの作り方 - @IT

    連載目次 「エンド・ユーザーは、0.5秒のフリーズでストレスを感じ、3秒のフリーズはバグだと思う」。昔、冗談半分に言ってみた言葉だが、回りの反応を見るに、割とみな思っていることらしい。 特にモバイル端末向けのOSでは、応答性の悪いアプリケーションはOSによって強制終了されたり、マーケットプレイスでの審査に落ちたりする。フリーズしないアプリケーション作りがますます重要になっている。 そこで、稿では、フリーズしないアプリケーション作りに必要となる「非同期処理」*1について説明していく。 *1 時間のかかるAPIに対して、そもそも非同期版しか提供しないケースが増えてきている。Windows 8の新しいWindows API(WinRT)では、50ミリ秒以上かかるAPIを、すべて非同期なメソッドとして提供するそうだ。 ■非同期処理の今までとこれから ネットワークI/Oのように待ち時間の発生する処

    .NET開発者のための非同期入門 フリーズしないアプリケーションの作り方 - @IT
    terurou
    terurou 2011/09/30
    岩永さんのガチ記事か。
  • Microsftが開発する新実験OS「Barrefish」、ソースコード公開 | エンタープライズ | マイコミジャーナル

    Barrelfish is a research operating system. Microsoft Researchとチューリッヒ大学が共同で開発に取り組んでいる実験目的の新OS「Barrelfish」のソースコードが公開された。Mercurialリポジトリを経由しての取得が可能。 Barrelfishはメニーコア時代におけるOSの新設計を模索する取り組み。ヘテロジニアスなプロセッサ構成にも対応するなど興味深い設計になっている。システムのほとんどがC言語およびアセンブラで開発されており、MITライセンスのもとで公開されている。 開発は2007年10月からはじまっており、当初はx86プラットフォームを対象としていた。現在ではほかのアーキテクチャへの移植も進められているという。OSの開発と同時に非同期プログラミングモデルの模索やパラレルファイルシステムの開発なども行われている。 Barr

  • .NET クラスライブラリ探訪-047 (System.Threading.Barrier(1))(バリア, SignalAndWait, フェーズ, 協調動作, .NET 4.0) - いろいろ備忘録日記

    今回は、Barrierクラスについて。 Barrierクラスは、.NET 4.0からSystem.Threading名前空間に追加されたクラスです。 Barrierクラスは、並行処理を複数のフェーズ毎に協調動作させる場合に利用します。 つまり、N個のスレッドを特定のフェーズ毎に足踏みを揃えて、次のフェーズに進むようにします。 Barrierでは、複数のスレッドが前進するためにバリアのところに全員が揃わないといけません。 一見、CountdownEventと同じように見えますが、以下の違いがあります。 CountdownEventは、特定のイベントが終わったという事を待つために利用するが、Barrierは仲間のスレッドを待つために利用する。 CountdownEventは、Signalを呼ぶことでカウンタをデクリメントします。 CountdownEvent.Waitを呼んでいるスレッドは、そ

    .NET クラスライブラリ探訪-047 (System.Threading.Barrier(1))(バリア, SignalAndWait, フェーズ, 協調動作, .NET 4.0) - いろいろ備忘録日記
  • 並行と並列について-並行コンピューティング技法-を読んで - M-Tea

    以前FITEA定期勉強会で、並行と並列の違いについて議論になりました。 具体的な議論のポイントは 「並行」は時分割でスレッドを処理、「並列」はマルチコアで処理 「並行」は概念的に違うものを同時に処理、「並列」は同じ処理を分割して処理 というポイントで、簡単に検索してみたところ、両主張ともに見受けられ、その場では深く追求しませんでした。(別議論のなかのサブトピックであったので、時間的な都合もあり) 今回たまたま、以下のを読んでみて色々考えたので、それを記載してみます。 【送料無料】並行コンピューティング技法 価格:3,360円(税込、送料別) コンピュータサイエンス的な「並行」と「並列」 「並行コンピューティング技法」の1.1.2「並行と並列:その違いは?」に以下のようにあった。 システムが複数の動作(処理の流れ)を同時に実行状態(in progress)に保てる機能を備えている場合を 並

    terurou
    terurou 2011/03/25
    並行と並列の違い
  • テラスケールコンピューティングのための言語「Ct」

    会期:9月18日~20日(現地時間) 会場:San Francisco「Moscone Center West」 Intelは、メニイコア、ヘテロジニアスなど、いわゆるTera-Scale Computingと呼ばれる領域で、大きく3つの研究成果を発表している。1つは、昨年(2006年)春のIDFでラトナー氏が基調講演で語ったTransactonal Memoryである。これは、今回、ソフトウェアでこれを実現するSTM(Software Transactional Memory)対応のコンパイラが公開されている。 残りの2つが、「Accelerator Exoskeleton」と「Ct」である。Accelerator Exoskeletonについては別途レポートしたので、今回は、Ctについてレポートする。 Ctは、Ctで定義したデータタイプに対する演算処理をOpenMP対応C/C++コンパ

  • 1