タグ

並列処理に関するdelegateのブックマーク (17)

  • Goルーチンとチャネルを使用した並行・並列処理 具体的なコードをよく起こるトラブルとともに紹介

    GoPythonKotlinRustTypeScript の5つの言語について「並列処理、並行処理の手法」というテーマに絞り解説する「並列処理をGo/Rust/Kotlin/Python/JSで解説!思想の違いを体感しよう」。Go編では森下篤氏が登壇。Goの並列・並行処理のやり方を紹介します。 Goの並列・並行処理 森下篤氏(以下、森下):私のところでは、Golangについて説明します。弊社は会社名もGOなので非常にわかりにくいのですが、基的には大文字で「GO」と書くと会社を示すことが多いです。(スライドを示して)小文字の「Go」やスライドのアイコンを使った時には、言語のGoと思ってもらえると助かります。 まず、Goでの並列・並行処理について話します。独自の軽量スレッドであるGoルーチンというものがあって、Goルーチン同士の同期・非同期通信の仕組みであるチャネルが構文に含まれてい

    Goルーチンとチャネルを使用した並行・並列処理 具体的なコードをよく起こるトラブルとともに紹介
  • Pythonの非同期処理の基礎とOpenAI APIへ並列リクエストする実践例

    こんにちは、commmuneでデータサイエンティストをしているひぐです。 人間が苦手なマルチタスクをLLMに任せたら、効果的に処理してくれるのではないか?というモチベーションのもと、Pythonの非同期処理を使って並列かつストリーミングでChatGPTの回答を出力するアプリを作りました🤖 例えば下記は、ある課題を入力すると、深さ・広さ・構造・時間軸という異なる観点で解像度を上げてくれるアプリケーションです。 アプリに関する登壇資料↓ このアプリ作成にあたってPythonの非同期処理を勉強したところ、最初は多くの専門用語(コルーチン、イベントループ...)や独自の記法により、全体像をつかむのに苦戦しました。一方で、学んでみると予想以上にシンプルな記法で実装できること、そして応用範囲が広くて便利だと理解しました。 この記事では、そんな少し取っつきにくけど便利なPythonの非同期処理にフォー

    Pythonの非同期処理の基礎とOpenAI APIへ並列リクエストする実践例
  • Rustによる並列処理でDynamoDBへのデータ投入を20倍高速化してみた

    はじめに 言語として高速だと謳われているRust。そのRustを使用してDynamoDBへのデータ登録処理を直列処理と複数の並列アルゴリズム処理で速度比較してみました。 DynamoDB DynamoDBは公式で以下のように謳われています。 Amazon DynamoDB の応答時間は 1 桁ミリ秒で、最も要求の厳しいアプリケーションでも一貫してこのパフォーマンスを発揮できます。例を挙げると、2022 年の Amazon プライムデーに Amazon DynamoDB は、1 桁ミリ秒のパフォーマンスで、数兆回の API コールに対して 1 秒あたり 1 億 520 万件のリクエストを確実に処理しました。 上記だけみると爆速のようにも思われますが、読み込みと書き込み双方に以下の制限があります。 BatchWriteItemのデータ投入は1回で25リクエストまで、Queryのデータ取得は1回

    Rustによる並列処理でDynamoDBへのデータ投入を20倍高速化してみた
  • 並列処理がとても苦手なPythonはプロセスを分けよう コードを書く時に意識したい2つのTipsと2つの落とし穴

    GoPythonKotlinRustTypeScript の5つの言語について「並列処理、並行処理の手法」というテーマに絞り解説する「並列処理をGo/Rust/Kotlin/Python/JSで解説!思想の違いを体感しよう」。Python編では橘氏が登壇。Pythonで並列処理を行う際の設計方針と、実装上の癖について話します。 西川氏の自己紹介 西川大亮氏(以下、西川):ここからはPython編の「ちょっとしたデータ分析の並列化」というタイトルで、西川から話します。 GOに勤める西川です。今やっているのは、タクシーやハイヤーの営業支援。「お客さんを乗っけていない時間、どこを走ったらいいの?」とか「どういうところで待っていたら注文来やすいの?」というところのナビをする、「お客様探索ナビ」というサービスのいろいろなことをしています。小さなサービスなのでいろいろやっている感じですね。 P

    並列処理がとても苦手なPythonはプロセスを分けよう コードを書く時に意識したい2つのTipsと2つの落とし穴
  • Rust はどのようにして安全な並列処理を提供するのか - Qiita

    はじめに 並列処理を安全かつ効率的に扱うことは、Rustの主な目標のひとつです。 並列処理といえば難しく不具合の起こりやすい危険なものというイメージがありますが、Rust はどのようにして安全な並列処理を提供しているのでしょうか。 (なお、ここでの安全とはデータ競合が発生しないことを指しています) 概要 Rust がどうやって安全な並列処理を提供しているのか、先に概要をまとめてみます。 Rust はスレッドをつかってコードを並列で実行します 所有権の制約によりスレッド間でのデータの共有が行われないことが保証されるためデータ競合が起こり得ず安全です スレッド同士のデータの共有をチャンネルというメッセージの送受信器を経由して行う場合、スレッド内のデータはそのスレッドからしか変更されることがないため安全です スレッド間で可変なオブジェクトを共有する場合、データ競合が発生しない仕組みを利用している

    Rust はどのようにして安全な並列処理を提供するのか - Qiita
  • TPL入門 - xin9le.net

    .NET Framework 4.0で搭載されたタスク並列ライブラリについての連載インデックス インデックス はじめに データの並列化 単純なループ 挙動の観察 ループの中断/停止 スレッドローカル変数 例外処理 ループの取り消し タスクの並列化 タスクの実行 完了の待機と結果の取得 タスクの継続 入れ子タスクと子タスク タスクの例外処理 タスクのキャンセル タスクの状態 UIコンポーネントの操作 おわりに 落ち穂拾い 以前の並列処理 スレッドプールの挙動 長いタスクの明示 非同期メソッド 進捗通知 Hokuriku.NET C# -TPL入門- ハンズオン資料

    TPL入門 - xin9le.net
  • Private Presentation

    Private content!This content has been marked as private by the uploader.

    Private Presentation
  • Python: map/filter 処理を並列化する - CUBE SUGAR CONTAINER

    今回は Python でリストなんかへの map/filter 処理をマルチプロセスで並列化する方法について。 この説明だけだと、なんのこっちゃという感じだと思うので詳しくは後述する。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G29 $ python --version Python 3.6.3 下準備 Python の REPL を使って説明していくので、まずは起動する。 $ python まずは、サンプルのデータとして 0 から 9 までの数字が入ったリストの data を用意しておく。 >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> data = list(range(10)) map/filte

    Python: map/filter 処理を並列化する - CUBE SUGAR CONTAINER
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Java並行・並列・非同期処理チートシート

    Java 1.5以降では Executorsフレームワーク 利用を優先検討のこと。 遅延実行(タイマー) クラス / メソッド 概要 Since

    Java並行・並列・非同期処理チートシート
  • もう怖くないCocoaの並列処理(GCD & NSOperation/NSOperationQueue) - $ cat /var/log/shin

    Cocoaの並列処理(GCDとNSOperation/NSOperationQueue)に関するまとめです。この記事ではいわゆる「スレッド」については扱いません。スレッドについては、前に記事を書いたのでそちらを参照してください。 Cocoaのマルチスレッドシステム - $ cat /var/log/shin スレッドによる並列処理からの脱却 スレッドは、歴史のある並列処理のための概念ですが、OSのカーネルの方にも密接に関わりがあるなど、抽象度は低めと言えます。 そこで、Cocoaでは、並列処理のための抽象度の高いインターフェースが提供されるようになりました。それがGCDとNSOperation/NSOperationQueueです。これらを使えば、スレッドを何個作成してタスクをどのように実行するか等の細かいことは、ランタイム側が全て決定してくれるので、ユーザは、並列処理したいタスクを定義し

    もう怖くないCocoaの並列処理(GCD & NSOperation/NSOperationQueue) - $ cat /var/log/shin
  • マルチスレッドを意識しないマルチスレッド・ライブラリ「Intel Concurent Collections」がおもしろい

    「Intel Concurrent Collections for C++」(CnC)とは 実際並列処理はややこしいしおっかないです。大きなキッチンで大勢のコックが包丁とフライパン振り回しているようなもので、ほっとけばしっちゃかめっちゃかになっても不思議じゃない。各人はそれぞれの役割に専念し、他人のふるまいを気にせず勝手に働きながらも全体としては統制のとれた動きを作り出さにゃなりません。mutexで排他制御したりjoinで完了を待ったり、さまざまな道具を駆使して統制のとれた動きを作り出しているのはプログラマであり、そこがいちばん難しく悩ましいところです。 C++,C#あるいはVB,Javaもそうですが、コードは原則的に並べた順に実行されます。 と書けば、まずf()、それが終わればg()、しかるのちh()の順で呼び出されます。たとえこの3つをどの順にやっても(あるいは同時にやっても)構わない

  • Parallel Studioを活用したソフトウェアの並列化:AACエンコーダを高速化する | OSDN Magazine

    プログラムの高速化が強く求められている分野の1つに、画像処理や音声処理、動画処理といったマルチメディア処理が挙げられる。これらのプログラムは処理すべきデータ量も多く、また行う処理も非常に複雑である。そのため、PCの処理速度が向上した現在でも「時間がかかる処理」の代表であり、このような処理にこそ並列化による処理速度の高速化が期待されている。記事ではフリーの音声エンコーダ「FAAC」をインテルの並列プログラミング支援ツール「Parallel Studio」を使って並列化し、その処理速度を高速化する試みを紹介する。 並列処理による高速化が期待されるマルチメディア処理 現在広く使われている音声符号化方式の1つに「AAC」がある。AACはMPEGによって規格化された音声圧縮方式で、高音質・高圧縮で音声・音楽を圧縮する目的で開発されている。AACは地上デジタル放送の音声圧縮方式として採用されているほ

    Parallel Studioを活用したソフトウェアの並列化:AACエンコーダを高速化する | OSDN Magazine
  • マルチスレッド/並列プログラミングの必携ツール「インテル Parallel Studio」徹底活用 | OSDN Magazine

    Intel Core 2シリーズの登場以来、一般的なPCにおいてもマルチコアCPUが普及しつつある。それとともに注目を浴びつつあるのが、プログラムの並列化/マルチスレッド化だ。そんな中、インテルから、並列プログラミングを強力にサポートする開発ツール「インテル Parallel Studio」(以下、Parallel Studio)が登場した。 Parallel Studioは自動並列化/最適化機能を備えた「インテル コンパイラー」やデバッガを含む「インテル Parallel Composer」と、プログラムのパフォーマンスを測定するマルチスレッド対応プロファイラ「インテル Parallel Amplifier」、メモリエラーやマルチスレッドプログラムにおけるスレッド間のデータ競合などを検出する「インテル Parallel Inspector」で構成される、新たな開発ツールである。また、今後

    マルチスレッド/並列プログラミングの必携ツール「インテル Parallel Studio」徹底活用 | OSDN Magazine
  • 並列アプリケーションを作ってみよう | OSDN Magazine

    インテルのCoreシリーズCPUが登場して以来、マルチコアCPUは爆発的に普及している。現在では比較的低価格なCPUでも複数のコアを搭載するようになり、現在販売されているPCのほとんどはマルチコアに対応しているといっても過言ではない。しかし、まだマルチコアCPUの性能を生かす、並列処理を行っているアプリケーションは多くない。 並列処理は、一般には実装が難しい、という印象があるようだ。確かにスレッドを駆使して処理を並列化する場合、スレッドの管理やスレッド毎の連携など、考慮しなければならないことが増え面倒ではある。しかし、プログラムを並列化するための言語規格「OpenMP」や、C++用の並列化ライブラリ「Threading Building Blocks」といった並列化支援技術を利用することで、プログラムの並列化へのハードルは大幅に低くなる。また、インテルの開発製品「Parallel Stud

    並列アプリケーションを作ってみよう | OSDN Magazine
  • 並列処理を行うための基礎知識(Visual C++)(1/2) - @IT

    書籍転載 文法からはじめるプログラミング言語Microsoft Visual C++入門 並列処理を行うための基礎知識(Visual C++) ――第13章 並列処理~マルチスレッドプログラミング(前編)―― WINGSプロジェクト 矢吹 太朗(監修 山田 祥寛) 2010/04/13 コーナーは、日経BPソフトプレス発行の書籍『文法からはじめるプログラミング言語Microsoft Visual C++入門』の中から、特にInsider.NET読者に有用だと考えられる章や個所をInsider.NET編集部が選び、同社の許可を得て転載したものです。基的に元の文章をそのまま転載していますが、レイアウト上の理由などで文章の記述を変更している部分(例:「上の図」など)や、図の位置などをサイトのデザインに合わせている部分が若干ありますので、ご了承ください。『文法からはじめるプログラミング言語M

  • Think Parallelで行こう! - @IT

    プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る (2017/7/20) C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。最終回は、Linuxカーネルの中では、プログラムの起動時にはどのような処理が行われているのかを探る エンジニアならC言語プログラムの終わりに呼び出されるexit()の中身分かってますよね? (2017/7/13) C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。今回は、プログラムの終わりに呼び出されるexit()の中身を探る VBAにおけるFileDial

  • 1