タグ

並列に関するnowokayのブックマーク (14)

  • CPU実験:マルチコアで並列実行するまで(コンパイラ係目線) - eguchishi

    CPU実験が終わって半年ですが、忘れる前にやったことを書き残しておこうと思います。 並列化ーー CPU実験 全体 4人程のチームで、自作CPU、コンパイラ、アセンブラ、シュミレータ等を作り、最終的には高級言語(mincamlというOcamlのサブセット)で書かれたプログラム(レイトレーシング)を実行速度を競います。CPU実験の詳細は検索すると結構出てくるかと思います。 レイトレプログラムの出力結果 自班の最終成果 『レイトレプログラムをマルチコアで並列実行する』ということをやりました。結論から言うとこれがかなり上手いこといって、歴代最速記録を大幅に(1/2位?)更新することができました。 具体的には記録は以下の通りです。詳しくは*1 4.666948 s(7コア、逐次実行と比べ演算順序が変わり得る) 5.193502 s(6コア、演算順序が変わらない) *実験の条件も年々良くなっているので

    CPU実験:マルチコアで並列実行するまで(コンパイラ係目線) - eguchishi
  • https://dl.acm.org/citation.cfm?id=1088375

  • 連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)
  • 分散Groovy環境 - 川口耕介のブログ

    Hudsonの分散ビルドの実装の肝になっているのは、クロージャをリモートJVMで実行するという仕組み。クラスファイルとかリソースとかも必要に応じてリモートJVMにコピーするので、リモート側にあらかじめプログラムを配備しておく必要がないのがよい点です。 さて、常々Javaのクロージャ(もどき)の文法は冗長だと思っていたので、これにGroovyを組み合わせたらいいんじゃない?、という事で、実験して見たところ意外にうまくいきました。 def pid() { // PIDを取得する。要はどのJVMで動いているかをわかりやすくするだけ return new File("/proc/self").canonicalPath } i=0 (0..<4).each { i++; remote { println "1st from ${pid()} (${i})" remote { println "2n

    分散Groovy環境 - 川口耕介のブログ
  • .NET 4の機能を考える:並列プログラミング

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    .NET 4の機能を考える:並列プログラミング
  • Anders Hejlsberg氏およびGuy Steele氏が並列性および言語設計について語る

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Anders Hejlsberg氏およびGuy Steele氏が並列性および言語設計について語る
  • Microsoft Word - cascade_nips_paper2.doc

  • 並列化メモ - potasiumchの日記

    コンピュータサイエンス研究科で並列コンピューティングのセミナーがあるというので聞きに行く(ほとんど現実逃避)。印象に残った話をメモ。 自分の書くプログラムが2008年以降高速にならなくても良いという人を除き、全ての人は並列化プログラムを書く必要がある。 1980年代以降、RAM のアクセス速度は毎年 9% しか向上していない。このため CPU の処理速度との乖離が加速度的に増加している(いた)。これによる不具合を軽減するための仕組みとしてキャッシュメモリがあり、プログラムの実行速度はキャッシュのヒット率に大きく依存する。 アルゴリズムやデータサイズによってキャッシュのヒット率は異なる。更に最近の CPU はそれぞれ容量・速度の異なるキャッシュを多段に装備している。このため、どのアルゴリズムがどういうサイズの計算をするときに最適なのかはもはや誰にも予測できない。 並列化なんてしたら更に訳がわ

    並列化メモ - potasiumchの日記
  • Java 6のスレッド最適化は実際に動作しているのか?

    はじめに - Java 6におけるスレッドの最適化 Sun、 IBM、BEAやその他のJVMベンダーが、それぞれのJava 6仮想マシンが提供するロック管理と同期の最適化に多くの注意を払ってきました。バイアスドロック、ロックの粗粒度化、エスケープ解析によるロックの削除、適応型スピンロックといった機能は、すべてアプリケーションのスレッド間でより効果的なオブジェクト共有を可能にし、並列性をより高めるために設計されたものです。こうした個々の機能は洗練されており、興味深いものですが、疑問があります;当にこうした約束を果たしてくれているのでしょうか?2つのパートからなるこの記事では、私はこうした機能を詳しく調査します。シングルスレッドベンチマークの助けを借りて、パフォーマンスに関する疑問に答える試みをしようと思います。 ロックは悲観的である Java でサポートされているロックの(ほとんどのスレッ

    Java 6のスレッド最適化は実際に動作しているのか?
  • PS3の「Cell」プロセッサを応用した高性能拡張カードが登場、ハイビジョン映像をガンガン楽しめるように

    以前GIGAZINEで、東芝がPS3に搭載されている高性能CPU「Cell」の技術を応用した、高度な映像処理などが可能な「SpursEngine」プロセッサを開発したことをお伝えしましたが、ついにパソコンに増設できる拡張カードとなって登場するそうです。 詳細は以下の通り。 プレスリリース:CEATEC JAPAN 2008 - 高性能画像処理カード「WinFast PxVC1100」出展のご案内 このリリースによると、Leadtekは2008年9月30日(火)~10月4日(土)にかけて開催される「CEATEC JAPAN 2008」の東芝ブースで「SpursEngine」プロセッサを搭載した拡張カード「WinFast PxVC1100」を出展するそうです。 「WinFast PxVC1100」はPCI-Express×1対応の高性能画像処理カードで、MPEG-2ならびにMPEG4-AVC/

    PS3の「Cell」プロセッサを応用した高性能拡張カードが登場、ハイビジョン映像をガンガン楽しめるように
    nowokay
    nowokay 2008/09/11
    普通の計算につかえるんだろか?
  • IT news, careers, business technology, reviews

    Heads on: Apple’s Vision Pro delivers a glimpse of the future

    IT news, careers, business technology, reviews
  • 【後藤弘茂のWeekly海外ニュース】Larrabeeに追われるNVIDIAがGT200に施したGPGPU向け拡張

    ●迫るIntelのLarrabeeに対抗して急ぐNVIDIAのCUDA戦略 Intelは、データ並列+タスク並列型プロセッサである「Larrabee(ララビー)」の準備を進めている。今夏にアーキテクチャの概要を明らかにし、来年(2009年)には製品投入の予定だ。Intelは、当初Larrabeeをハイパフォーマンスコンピューティング(HPC)向けと説明していたが、実際にはグラフィックス製品として投入する。これは、NVIDIAがグラフィックスカードとしてボリュームを出荷することで、汎用コンピューティングにも使うことができるプロセッサを普及させている戦略を踏襲するものだ。 Intelは、じつはLarrabee戦略の当初から、グラフィックス製品として普及させる計画だった。つまり、グラフィックス製品へと戦略を切り替えたのではなく、当初からグラフィックスとして売る計画だった。しかし、GPUベンダーを

  • マルチコア危機:ScalaとErlangの対立

    ブロゴスフィアでは最近Scala対Erlangの議論がややヒートし続けている。マルチコアの世界(参考記事)が訪れようとしている今、いかにマルチコア危機を解決するかが問題になっている。ScalaとErlangはその解決法たらんとしている言語だが、少し違いがある。それぞれのアプローチの長所短所はなんだろうか? 問題 ムーアの法則はもう通用しない。かつてのようなクロック周波数の向上(リンク)は見込めず、かわりにコアの数を増やそうとしている。今の時代、あなたのノートPCでさえも2つコアを搭載していることだろう。 2つ以上のコアを有効に使うには、アプリケーションが並列処理を意識してないといけない。もしあなたの顧客が8コアのマシンを買ったとしたら、たとえそれをあるアプリケーションの専用マシンにしたとしても、そのアプリケーションがCPU性能の12%しか使えなくてもおかしくない、とあなたは顧客にどうにかし

    マルチコア危機:ScalaとErlangの対立
  • 第11回 クロージャによる超軽量並行プロセスの簡単実装法

    最近,ネットの一部で「Erlang」(発音はアーランまたはエアラン)というプログラミング言語が流行している(参考リンク)。Erlangはスウェーデンの通信機器メーカーであるエリクソンにて開発された言語で,エリクソン内部や通信業界はもちろん,Twitter(関連記事)などのオンライン・サービスでも採用されているという。 Erlangの特徴は,複数のプロセスが通信をしながら計算をする「並行プログラミング」を,言語の機能として強力にサポートしていることだ。C言語などの逐次プログラミング言語は,プロセスや通信の機能を内蔵しておらず,こうした機能をオペレーティング・システムに「外注」している。しかし,そのような外付けの仕組みは,メモリー消費量や速度,開発効率などの点でオーバーへッドが大きい。Erlangのような並行プログラミング言語では,プロセスや通信といった機能をプリミティブとして実装することによ

    第11回 クロージャによる超軽量並行プロセスの簡単実装法
    nowokay
    nowokay 2007/06/13
    ocamlによるPI計算
  • 1