タグ

並列に関するraimon49のブックマーク (40)

  • Ansible + Mackerel APIによる1000台規模のサーバオペレーション - ゆううきブログ

    Ansible と Mackerel API を組み合わせて、1000台規模のサーバ群に対して同時にパッケージの更新やその他のサーバオペレーションのための方法を紹介します。 タイトルに Mackerel とありますが、それほど Mackerel に依存しない話です。 (AnsibleとDockerによる1000台同時SSHオペレーション環境 - ゆううきブログに続編を書いています。) 背景 社内では、サーバ構成管理ツールとして Chef を使用しています。 Chef Server は運用が大変なので使用しておらず、knife-solo と Mackerel APIを組み合わせてホストと Chef role とのマッピングに Mackerel のロール情報を用いています。 また、MackerelRuby クライアントを利用して recipe 内で API を叩いて、Mackerel

    Ansible + Mackerel APIによる1000台規模のサーバオペレーション - ゆううきブログ
  • マルチコア時代のプログラマは関数脳になろう〜Java8のススメ〜 - Tech-Sketch

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

  • PHP の curl_multi_exec はなぜPHPなのにパラレルで処理できるのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    発端 某所で「最近のPHPcurlライブラリはパラレル取得できる」ときいて「エッなんで、PHPって基シングルスレッドだしイベントループみたいな機構もないと認識してるんだけど」って思って調べた。 追記:と思ったが、この記事を書いた後さらに調べたら、そもそもPHP には stream_select など IO 多重化をサポートする関数群があった。不勉強であった。 なにはともあれドキュメントにあたろう PHPは公式のドキュメントが充実していてすばらしい。これは素直に認めるべきPHPの美点だと思う。 Client URL Library うーんなんか見た感じCで並列性を吸収してるのかな?という感じの低レベルAPIへのグルー感。じゃあ実際にソースを読んでみる ソースを読む https://github.com/php/php-src/blob/85d05b5654cbbbf6f741d7f9be

    PHP の curl_multi_exec はなぜPHPなのにパラレルで処理できるのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • もしもラムダの中で例外が発生したら(前編) - Taste of Tech Topics

    ある日、 id:cero-t がJJUGの重鎮たちと話している中で、とある宿題をもらいましたとさ。 「Java8のラムダの中で例外が発生したら、どうなるんだろう?」 こんにちは、アキバです。 もう皆さんはJava8を使ってみましたか? とりあえずインストールしてみた人! ・・はーい (おまえか という冗談はさておき、 今回は、id:cero-t に代わって私が冒頭のお題を調べてみました。 1. SerialStreamで動かしたラムダで例外が発生したら まずは、小手調べにシングルスレッドの場合を見てみましょう。 検査例外が発生するようなコードをラムダに書いてみると、コンパイルエラーになります。 こんなコードです。 try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(W_FILENAME))) { // writer.

    もしもラムダの中で例外が発生したら(前編) - Taste of Tech Topics
    raimon49
    raimon49 2014/04/19
    これは……。
  • 直列加算と並列加算でdoubleの足し算の結果が変わる話 - きしだのHatena

    Javaに限った話ではないのだけど、Javaで並列加算が気軽にできるようになったので、気に留めておいたほうがいい話。 まず、次のようなコードを動かしてみます。 public static void main(String[] args){ double[] data = { 1.234E80, -1.234E80, 2, 3}; System.out.println(Arrays.stream(data).sum()); System.out.println(Arrays.stream(data).parallel().sum()); } 1.234×10^80と-1.234×10^80という、桁が大きくて符号の違う数を並べて、そのあとに2と3という1桁の数値を置いています。 これらを加算すると、1.234×10^80と-1.234×10^80は符号が違うだけなので、当然結果は0になります

    直列加算と並列加算でdoubleの足し算の結果が変わる話 - きしだのHatena
    raimon49
    raimon49 2013/12/01
    >並列加算の場合は、そのときに使えるコアの数によって足し算の順序が変わるので、実行する環境や同時に動いているアプリケーションなどの条件によって答えが変わる可能性があります。
  • Dropboxは全部Pythonで信頼性の高いソフトウェアを作った(後編)~PyCon APAC 2013

    Pythonユーザーが集まり、情報交換し、交流するためのカンファレンス「PyCon APAC 2013」が9月13日、14日に都内で開催されました。PyCon APACはこれまでシンガポールで開催されており、今回初めて日で開催されました。 (記事は「Dropboxは全部Pythonで信頼性の高いソフトウェアを作った(前編)~PyCon APAC 2013」の続きです) Pythonは遅いのか? でもたぶん、あなたのアプリはCPUによって制約されているわけではないでしょう。ごく限られた分野、例えばゲームとか科学計算ではないのならば、多くの制約はハードディスクやネットワーク、もしくはメモリから来ているのではないでしょうか。 それにもしも当にCPUによって制約されているのであれば、そういうアプリはだいたいCやC++で書かれているとは思うけれど、Pythonにも選択肢はあって、それはCyth

    Dropboxは全部Pythonで信頼性の高いソフトウェアを作った(後編)~PyCon APAC 2013
  • 20130228 Goノススメ(BPStudy #66)

    前回の勉強会の内容が、C言語のハック的内容で、あまり役に立たないものだったので、今回は、C言語の基に立ち返った内容にしました。 C言語のマナーとか書いているので、学校でC言語をやったよ、という人は、見ると得るものがあるかもしれません。 最後のほうには、オマケの内容も付けています。

    20130228 Goノススメ(BPStudy #66)
    raimon49
    raimon49 2013/07/13
    YouTubeやHerokuでも採用
  • マルチコア時代のCPUリソースを有効活用--Java EE 7で進化した並列処理を理解する - builder by ZDNet Japan

    Javaはバージョン1からマルチスレッドに対応しているが、最初から用意されていた並列処理機能は、今となっては時代遅れの感は否めない。そうした状況の中、この6月にリリースされるJava EE 7では、新たな並列処理機能として「Concurrency Utilities for Java EE」が搭載された。 ここでは、5月の「Java Day Tokyo 2013」で行われたセッション「エンタープライズ環境における並列処理の実装方法について」で語られた、この新しい並列処理機能について紹介する。 Java EEの並列処理を刷新するJSR-236 Javaにおける新機能、特に言語仕様的な拡張は、まずJava SEに投入された後、エンタープライズ向けの改良を施してからJava EEに導入されるというのが典型的な流れになっている。 Javaの並列処理機能も、この流れに沿っていて、Java SE 5で

    raimon49
    raimon49 2013/06/16
    Concurrency Utilities スレッドプール
  • Modern C# Programming 現代的なC#の書き方、ライブラリの選び方

    Event : Visual Studio Users Community Japan #1 Date : 2019/09/14 ソフトウェア/サービス開発において最も後回しにされるものの代表が「パフォーマンスの向上」です。C#/.NET の最大の武器は開発生産性ですが、C# 7.0 以降はパフォーマンス向上のための機能追加が多数行われています。いくつかのポイントを押さえることで実装時からより高速なコードを書くことができるようになります。 このドキュメントでは、そんなポイントとなる箇所をふんだんにお届けします。

    Modern C# Programming 現代的なC#の書き方、ライブラリの選び方
    raimon49
    raimon49 2013/01/29
    モダンC# 確かに今でもdelegate構文を使っている解説文に出会うことある。スレッドはTaskで。
  • ParallelArrayを試す - ushiroad

    これは2012年9月時点での情報です。 現在、Mozilla Firefoxでは並列計算を行うための ParallelArray 型の実装が進められています。早速この危険そうなドッグフードを試してみました。 Firefox 17 編 Firefox 17 (11月リリース予定)には、ParallelArray がプラグイン不要で実装されています。現在のところ、これは実際には並列計算を行わないハリボテなのですが、今からこれでプログラムを書いておけば、物の並列計算がサポートされた暁には自動的にプログラムがとんでもない速さになります。 と言いたいところですが、上記のような行為は全く推奨できません。なぜかというと、現在Firefox 17に入っているParallelArrayは、物の並列計算に対応できないようなコードも平然と通してしまうからです。 例えば、["xx", "yy", "zz"]

  • GCD すごい - yashiganiの英傑になるまで死ねない日記

    iOS には,iOS4.0 から GCD っていう非同期処理の仕組みが入ったんだけど,今までこれという活かしどころがなくて使っていなかった ちょうどいい感じの活かしどころが出てきたのでここぞとばかりに試してみた. 音楽再生するアプリで自分の iPod Library からリストに上がっている曲を探してくるんだけど,これが 50 コくらい探そうと思うと結構な量の曲数が入っているライブラリとか,3GS だとむっちゃ時間がかかって画面の遷移に挟んだりすると,とてもじゃないけど精神衛生に支障をきたすレベルのロックがかかる(5~20秒くらい) こんなかんじ for (NSString *title in titles) { MPMediaPropertyPredicate *titlePredicate = [MPMediaPropertyPredicate predicateWithValue:t

    GCD すごい - yashiganiの英傑になるまで死ねない日記
  • GitHub - grosser/parallel_tests: Ruby: 2 CPUs = 2x Testing Speed for RSpec, Test::Unit and Cucumber

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - grosser/parallel_tests: Ruby: 2 CPUs = 2x Testing Speed for RSpec, Test::Unit and Cucumber
  • 掲載終了のお知らせ : 富士通

    ご利用いただきありがとうございます。ページは掲載を終了いたしました。 PCクラスタ ソリューション Excel高速化ソリューション 関連情報については、以下のページをご参照ください。 FUJITSU Server PRIMERGY PCクラスタ

    raimon49
    raimon49 2012/03/16
    専用PCクラスタを組んでスケールアウト。これは本当のソリューションと言って良い代物。見積もりで幾ら出されるのか怖いけど。
  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • バグから学ぶ計算機科学 Scalaのハッシュテーブルにおいて並列コレクションのためのコード変更が大量の衝突を引き起こした事例

    バグから学ぶ計算機科学 Scalaのハッシュテーブルにおいて並列コレクションのためのコード変更が大量の衝突を引き起こした事例 書いた人: ると 書いた日: 2012年1月21日 はじめに Twitterで「有名なオープンソースソフトで今まであったおもしろいバグを解説したとかないだろうか」とツイートしたらそれなりに需要があるようでした。そこで先ず隗より始めよという故事にのっとり、死馬の骨としてバグ解説記事を書いてみます。 今回のバグはScala 2.9の標準ライブラリに含まれるmutable.HashSet(ハッシュテーブルを使った重複無しコレクション)のコピーがJavaの標準ライブラリに含まれるHashSetの100倍遅いというバグです。並列コレクションのためにぱっと見問題の無い変更を加えたら思わぬところで影響が出たというものです。 なお、今回はScalaに関するバグですが、Scala

    raimon49
    raimon49 2012/01/25
    並列処理でCPU資源を有効活用するためにハッシュテーブルのインデックスでは下位nビットから上位nビットを使う実装に変更→ハッシュテーブルのコピーのように大量に挿入する場面で、テーブルサイズ拡大時にインデック
  • parallel と concurrent、並列と並行の違い - 本当は怖いHPC

    2017/01/10 誤字脱字を修正しました 2016/11/07 内容を修正しました 2010/09/17 文章を修正しました 一般的に、parallelは並列、concurrentは並行と訳されます。検索してもずばり書かれた物がなかったので、僕なりの理解を書いてみます。 (注:言葉の定義の問題なので、複数の流儀があり得ます。端的に言えば、いわゆるCPUSIMD命令を「並行」と見なすかどうかに違いが現れます) 参考リンク: http://d.hatena.ne.jp/NyaRuRu/20060129/p2 http://d.hatena.ne.jp/muimy/20070322/1174526368 一番妥当(だと思う)定義 一言で言えば、 Concurrent(並行)は「複数の動作が、論理的に、順不同もしくは同時に起こりうる」こと Parallel(並列)は、「複数の動作が、物理的に

    parallel と concurrent、並列と並行の違い - 本当は怖いHPC
    raimon49
    raimon49 2011/11/06
    Concurrent GCは互い違いに実行、Parallel GCは、処理を「真に並列に」実行。
  • .NET開発者のための非同期入門 フリーズしないアプリケーションの作り方 - @IT

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

    .NET開発者のための非同期入門 フリーズしないアプリケーションの作り方 - @IT
    raimon49
    raimon49 2011/11/05
    C# 5.0から追加されるasync修飾子, awaitキーワードの紹介。yield returnで処理を返していたテクニカルな書き方が不要になり、誰でも非同期化の恩恵に与れる。
  • irbから学ぶRubyの並列処理 ~ forkからWebSocketまで - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 irbから学ぶRubyの並列処理 ~ forkからWebSocketまで : melborne.github.com - 世の中は並列化花ざかりだよ 人間はシングルタスクのままなのに プログラミングするときは マルチタスクが要求されるなんて 世知辛い世の中になったものだね でも情報革命は始まったばかりだから 愚痴ってばかりもいられないよ 自分がその波にうまく乗れないとしても うまく乗ってる人の様を 間近で見てみたいと思うんだ そんなわけで.. Rubyのfork Thread Reactor EventMachine WebSocketなどの並列化について少し学んだので 自分の理解をここにまとめておくよ REPL irbはRubyにおける対話型の実行環境だよ こ

    irbから学ぶRubyの並列処理 ~ forkからWebSocketまで - hp12c
    raimon49
    raimon49 2011/09/30
    REPLサーバのfork並列化からWebSocketまで。
  • 近代的なハードを使いこなすAzulガーベッジ・コレクター - karasuyamatenguの日記

    Azul Systems社のZingというJava環境のGCの解説 http://www.infoq.com/articles/azul_gc_in_detail GCはハードの進歩についていけていない 10年前、1GBのヒープは大きいとされていた 今日、通常のサーバでも256GB+24-48コアを装備 この期間にメモリは100倍以上になったにもかかわらず一般的にGCが管理するHeapは二倍にしかなっていない GCの働き Heap内で生きているオブジェクトを識別する 死んでいるオブジェクトのリソースを回復 relocation/compaction: 定期的に生きているオブジェクトを動かして連続した領域を確保 ゴミ収集モード: 「Stop-the-world」か並列処理 (Parallelism and Concurrency) Stop-the-worldはアプリケーションを止めて作業を

    近代的なハードを使いこなすAzulガーベッジ・コレクター - karasuyamatenguの日記
  • まつもと×笹田、Ruby 1.9を語る ― @IT

    2007/12/25 「そういえばあのretryの話、どう思う?」、「誰も使ってないから害悪が多いっていう話は説得力ありますよね」、「じゃあなくすか……、うん、なくしといて」、「あ、決まっちゃった(笑)」――。 まつもとゆきひろと、笹田耕一。いま、世界が注目するプログラミング言語「Ruby」の生みの親と、開発コアメンバーの2人は、こともなげにRubyの仕様を記者の目の前で変更してしまった。Rubyの開発はどのように行われ、どこへ向かおうとしているのか。現行のバージョン1.8系から大きく様変わりする次期開発版「Ruby 1.9」のリリースを12月25日に控えた2人に、師走の秋葉原で話を聞いた(文中、敬称略)。 Rubyの仕様は密室で決まる!? 冒頭に紹介した2人の会話は、「retry」というRubyの文法の2種類ある使い方のうち、これまでほとんど使われた形跡がない方を文法仕様から取り除くかど

    raimon49
    raimon49 2007/12/26
    1.9リリース前夜当時の対談。